How this works

The system turns monitored companies into a weekly list of companies worth re-engaging, while keeping the source data, validation status, and reviewer feedback inspectable.

System design

Each weekly snapshot is built from source systems, normalized into monitoring records, validated, ranked per investor, then published as static review surfaces.

Inputs
Affinityownership, status, tag date, Last Contact
Harmonicfunding, headcount, executives, contacts
Websiteslaunches, customer wins, product updates
Normalize
Company stateone investor-company row per owner
Signal eventstyped, dated, sourced evidence records
Crawl provenancepages processed, signals found, run history
Decide
Validation gatesreject unclear, duplicate, or weak evidence
Investor rankingscore by status, signal strength, recency, contact timing
Run snapshotpersist selected placements and score context
Outputs
Digest pagesranked companies for each investor
Signal Feedbroader signal universe plus selected placements
Email + feedbackgated delivery, inline review, missing-signal flags
Deployment is separate from generation: a run can be rendered and inspected locally before Cloudflare Pages or email delivery is touched.

Universe

Starts from companies in Monitoring or Preactive with active investor ownership in Affinity.

Ownership

Ownership is imported from the Affinity monitoring view. Each row becomes one investor/company state: company, owner, status, owner role, tag date, last contact, and recent contact count. The feed is seeded from these eligible ownership rows first, so companies with no discovered signals still appear for transparency.

Sources

Validation gates

Website signals pass through a validation stage before ranking. In enforce mode, rejected, unclear, duplicate, or missing-evidence website signals are held out of recommendations. Signal Events also need to be recent and after the investor's tag date. Very recent Last Contact suppresses noisy outreach suggestions.

Ranking ingredients

The score formula is shared globally, but ranks are assigned inside each investor's eligible universe. Ranking combines company status, signal importance, signal recency, days since Last Contact, corroboration, and penalties for recent contact or low confidence. The Signal Feed shows the score breakdown inside Details for companies used in a digest.

Feedback

Digest and company-level feedback is collected inline on each digest page, and missing-signal flags can be submitted from digest cards or the Signal Feed. Feedback is stored separately for review; it does not update Affinity or change deal records.

Publishing

The weekly EC2 run syncs Affinity and Harmonic, crawls websites, validates website signals, ranks companies, renders Markdown and HTML digests, builds the portal, and can deploy the static site to Cloudflare Pages. Live email delivery remains separately gated.