Juniper Ventures · internal

CRM review — what exists, and where the sourcing engine fits.

Reviewed the live Juniper CRM: Airtable base appbL6ewYvsnzG67e driven by the crm-updater agent (repo Juniper-Ventures/agents). Bottom line: it's an excellent backward-looking relationship tracker — and it is not a sourcing engine. That's the gap P01 fills, and they should hand off cleanly at "first contact."

Update — Aug 14, live check against the base: the base ALREADY has a rich, populated Sourcing table (26 fields) — Name, Type (pre-founder→raised), Thesis Fit (Safeguarding / Auditing / Governing / Verifying = the AIAT taxonomy), Score + Score Reasoning, Status (New→Promoted to Deal), Source Channels (incl. arXiv/Scholar), Warm Path, Draft Email, Outreach log — plus a Watchlist table (14f) and Sourcing Ops, Venture Partners, Co-Investors, Submissions, and Ref: LP-Prospects (Pitchbook). So the "build the schema" task was already done and the pipeline is actively curated. The arXiv sourcing engine now writes into the live Sourcing table (deduped, tagged) — proven with one test record. Section 4's "recommended table" below is retained only as a field-mapping reference; treat the live Sourcing table as the target.

1 · What exists today

A headless, scheduled system — not just tables:

2 · The schema (5 tables)

TableKey fieldsRole
PeopleName, Type (multi: Founder/LP/Investor/Community/Philanthropy/Grantee/Donor/Funder), Last Contacted, Email, Phone, Company→Orgs, Interactions, Deals, Locations→LocationsEvery human in the network
OrganizationsName, Website, Type (multi: Portco/LP Firm/VC Firm/Angel Co/Community/Philanthropy…), Contacts, Deals, LocationsEvery company/institution
InteractionsName {Type} — {Contact} — {date}, Type (Meeting/Email/Call/Message/Note), Date, Summary, Granola Link, Contact→People, Logged ByEvery touchpoint (the activity log)
DealsName, Stage, Type (LP Commitment/Portfolio Investment/Angel/Grant/Philanthropic Commitment), Check, Next Step, NS Date, Close Date, Vehicle (Fund I/II/SPV/Angel/Foundation), Company, ContactsThe pipeline (invest + LP + Foundation)
LocationsLocation (City, ST), People, CompaniesDeduped geography

3 · What it does well

4 · The gap = the sourcing engine's job

The existing CRM is backward-looking: it records people you already talk to. The sourcing engine (P01) is forward-looking: a watchlist of founders you should reach — programmatically sourced from talent programs, arXiv, "fire towns" — before any comms exist. They don't overlap; they hand off.

The clean handoff: the sourcing engine populates a Watchlist of prospects with a status funnel. The moment a prospect enters real comms (a reply, a meeting), the crm-updater already picks them up as an Interaction and, if it's a pitch, a Deal. So the sourcing engine owns pre-contact; the crm-updater owns post-contact. The boundary is "first touch."

Recommended: a Watchlist table (spec for the P01 schema task)

Add one table to the same base (keeps it unified, reuses People/Orgs links):

FieldTypePurpose
Nametext / link→Peoplethe prospect (link if already a Person)
Sourcesingle-selectMATS / ARENA / Apart / arXiv / LessWrong / referral / other
Program / cohorttexte.g. "MATS 8.0", "ARENA 5"
Signallong textwhy they're worth sourcing (the paper, the demo, the exit)
Warm pathtext / link→Peoplewho can intro (the network edge)
Statussingle-selectsourced → researched → outreach → meeting → passed/deal
Ownertextwho's driving it (operator)
Linksurl(s)Scholar / GitHub / X / site

The engine writes rows into sourced; you work them right; when Status hits meeting, the crm-updater's Interaction/Deal machinery takes over. The "MVP" milestone (write a check into a machine-sourced deal) is literally one row completing that funnel.

5 · One access note

I can read the CRM code (gh access as esbenkc; repo cloned locally). To let me query/build against the live Airtable base directly — count deals, prototype the Watchlist table, validate the schema — put an Airtable PAT in ~/.zshrc as AIRTABLE_PAT (the Aug-10 to-do). Until then I'm working from the committed schema in agents/crm-updater/CLAUDE.md, which is authoritative.