Extract thesis-fit deals from VC newsletters into the deals database.
Turn two daily VC-deal newsletters into a structured, thesis-filtered deal log in Notion — without an analyst reading the emails.
Prompts used
The exact LLM prompts this automation calls — system instructions and user messages, in execution order, with the model each step uses.
- Deal Newsletter Filter (thesis-fit deals only) →1 prompts
Reads the full text of a high-volume deal-announcement newsletter (StrictlyVC, Term Sheet, Axios Pro Rata, etc.) and extracts only the rounds that fit the firm's thesis, dropping the rest silently. Ships with the thesis sectors and the exclusion list as fill-in placeholders so any firm can clone it: state the sectors you do invest in, state the categories you actively don't, and the model returns just the relevant deals in a strict TITLE|||SUMMARY===TITLE|||SUMMARY shape that drops straight into a CRM, a Slack post, or the Ingest Newsletter Deals automation without any post-processing.
Reference build
Two newsletters do most of the aggregation work the venture industry already does for itself: StrictlyVC (Connie Loizos) and John Gannon's VC Deals. Both land in a shared inbox each morning as a single email with dozens of funding announcements. This flow reads them, filters down to the ones that match the firm's deep-tech thesis, and writes each surviving deal as a row in a Notion "Deals" database. No analyst opens either email.
This is the ingestion half of a two-automation loop. The other half — Promote new deals-database entries into the CRM — listens to this database and creates the company in the CRM only if it isn't already there.
What the flow writes
One destination, structured for the second automation to pick up.
| Notion column | Shape |
|---|---|
| Title | Single-sentence rewrite of the deal — '{Company} raised ${amount} {round} led by {lead}'. |
| Summary | 2–4 sentence plain-English summary of what the company does, why it matters, who else is in the round. |
| Source | StrictlyVC | VC Deals — drives downstream filtering and tells the team where the original email lives. |
| Date | Email send date. Used with company name as the dedupe key. |
| Status | Defaults to 'New'. The second automation flips this to 'Synced to CRM' or 'Already in CRM' once it processes the row. |
Gotchas
- 01Two newsletters, two Zaps — not one. Each source has a different HTML shape, different category headers, different cadence. Forcing them through one filter step means one parser change breaks both.
- 02Pause the formatter and writer steps while iterating on the LLM prompt. The default Zap layout has the extract step in the middle; turning off downstream writes lets you re-run the trigger cheaply without polluting Notion with half-baked rows.
- 03Delimiters in the LLM output are load-bearing. The prompt asks for `title ||| summary` per deal, separated by `===`. Any model that ignores the format silently breaks the splitter — pin the model version and keep temperature low (≤0.7).
- 04Filter is in the prompt, not in a Zapier filter step. The model decides what counts as 'deep tech' using an explicit include/exclude list. Cheaper than running a filter step per deal, and easier to tune — change the list, re-run the day's email.
- 05Idempotency lives in Notion. The trigger is 'new email matching subject = StrictlyVC' — re-sending the same newsletter would re-fire. We dedupe by company name + raise date as a Notion formula, not in the Zap.
- 06Empty days are normal. Some newsletters have zero deep-tech deals. The split step must tolerate an empty output without erroring — handle the no-match case explicitly or the whole Zap shows as failed in run history.
Swap matrix
Every layer is replaceable. The shape — newsletter → cleaner → LLM filter → splitter → structured DB — is what matters.