Automation · Playbook 01

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.

Sourcing

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.

Flow (per newsletter)
01 · Trigger
New email matching the newsletter's subject lands in the shared inbox
Outlook 'new email matching search' — one Zap per source. StrictlyVC and VC Deals run as separate Zaps so a parser change to one never breaks the other.
02 · Clean
Strip HTML tags from the email body
Zapier Formatter → string.strip_html. Newsletters are heavy HTML; the LLM works better on flat text and the token cost drops by 60–80%.
03 · Extract & filter (LLM)
Ask the model to return only deep-tech deals, in a strict delimiter format
System prompt names the in-scope sectors (space, defense, advanced manufacturing, semis, power, nuclear/energy, robotics, quantum, critical materials, deep biotech, AI infra) and the out-of-scope ones (consumer, generic fintech, SaaS, app-layer AI). Output shape: `title ||| summary` per deal, separated by `===`.
04 · Split
Split the model output into one item per deal
Zapier Formatter → utilities → split on `===`, then on `|||` to separate title from summary. The whole rest of the Zap iterates over this line-item set.
05 · Write to deals database
Create a row in the Notion 'Deals' database for each surviving deal
Columns: Title · Summary · Source (StrictlyVC | VC Deals) · Date · Status = 'New'. Dedupe is handled inside Notion via a company-name + date formula — the Zap is intentionally dumb.

What the flow writes

One destination, structured for the second automation to pick up.

Notion columnShape
TitleSingle-sentence rewrite of the deal — '{Company} raised ${amount} {round} led by {lead}'.
Summary2–4 sentence plain-English summary of what the company does, why it matters, who else is in the round.
SourceStrictlyVC | VC Deals — drives downstream filtering and tells the team where the original email lives.
DateEmail send date. Used with company name as the dedupe key.
StatusDefaults 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.