| name | discover-investors |
| description | Discover a batch of new investor targets from the public web and propose them into the round.sh CRM. Use when the founder wants to build or grow the pipeline — "find pre-seed B2B funds in NYC", "build a target list of 30 angels in fintech", "fill out the pipeline with seed AI infra investors". Outputs round CLI proposals, never writes the CRM directly. |
Discover Investors
Bulk discovery + enrichment of investor targets via Exa Websets, landing each as a round investors add
proposal the founder approves. This is the pipeline-building counterpart to the single-firm
investor-researcher agent.
When to use (and when not)
Use this when the founder wants new rows in the pipeline from a profile, e.g.:
- "Find seed-stage B2B SaaS funds in NYC writing $250k–$1M checks."
- "Build a target list of 30 fintech angels."
- "Who else should be in my pipeline for an agent-infrastructure seed round?"
Reach for a sibling instead when:
- They want to deep-research one firm/partner already in mind → the
investor-researcher agent (via /prep or directly).
- They want generic company/people research, not investors-into-the-CRM →
company-research / people-research.
- They want a CSV of sales leads (customers to sell to, not investors) →
exa-lead-gen.
Tools
exa-websets MCP (ships in this workspace's .mcp.json) — async discover → enrich → verify loop.
Load via ToolSearch if absent: mcp__exa-websets__preview_webset, mcp__exa-websets__create_webset,
mcp__exa-websets__get_webset, mcp__exa-websets__list_webset_items.
- The
round CLI (via Bash) to propose rows. Proposal-only: never --yes, never write round.db directly.
Flow
- Pin the ICP, then confirm before spending API. Settle on entity (funds/CVCs → company; angels → person),
stage, sector, geography, check size, and target count. Echo it back and get a yes — Websets calls cost money.
- Preview the parse. Call
preview_webset with the natural-language query (e.g. "Pre-seed B2B SaaS funds
in NYC writing $250k–$1M checks") and show the founder the parsed entity + criteria. Adjust if Exa misread it.
- Create the webset.
create_webset with searchQuery (confirmed), searchEntity, searchCount
(default 25; confirm if > 50), searchCriteria (what the founder emphasized), and enrichments — one per
field you want filled, mapped to a settable CRM column (see the table below).
- Wait for idle — in a spawned Task agent. Polling
get_webset until status: "idle" and reading items
is token-heavy; do it in a Task subagent that returns only the distilled rows, so the main context stays lean.
- Dedupe against the existing pipeline. Pull
round investors list and match by name (case-insensitive;
strip "Capital"/"Ventures"/"Fund"/"LP"). For a match, enrich the existing row with round investors update --id <n> ... rather than proposing a duplicate.
- Show a preview table, then propose. One
round investors add per genuinely new target.
Mapping Websets output → round investors add
Only these flags are settable from the CLI — map enrichments to them:
round investors add --name "<firm>" \
--type "Fund|Accelerator|Angel|Strategic / CVC" \
--tier <A|B|C> --fit <1-10> \
--hq "City, Country" --check-size "$250k–$1M" \
--website <url> --linkedin <url> --x <handle> \
--fund-vintage "Fund III, $80M, 2024" \
--talking-points "<thesis fit in their language, 1-2 lines>"
Richer fields the CLI has no flag for — stage, why-fit rationale, notable bets, warm path, lead capability —
go into the investor's investors/<slug>.md profile or are edited in-app after the row lands. Note them in the
preview; don't pretend a flag exists.
Honesty & guardrails
- Proposal-only. Every
round investors add records a proposal in the approval queue. Never pass --yes
unless the founder explicitly says apply now. Never touch round.db directly.
- Don't fabricate
fit. Score 1–10 only from real signal; if enrichments don't support a score, leave it
off and say so. A low/honest score is useful.
- Don't propose dupes or overwrite founder-curated rows (
status, tier, warm-path, notes) on enrich-updates.
- Don't push contacts you can't verify publicly. Prefer a public
Investments@firm.com or leave --contact empty.
- Keep the founder in the loop: discovery proposes; the founder approves in the app.