seed-investors
Investor Finder. Researches the best investors for your idea from public sources only (the firm's own site, public profiles found through web search, SEC EDGAR Form D filings, the press) and ranks the
SKILL.mdseed-investors/SKILL.md
GitHubseed-investors
The Investor Finder builds the list you will actually email. A good list is short and specific: people who invest at your stage, in your space, with a check that fits your round, who did a relevant deal recently. Claude does the research on the open web, writes one row per investor with the links it read, and this tool ranks the rows the same way every time and says why. Every fact keeps its source, so you can check it before you lean on it.
${CLAUDE_SKILL_DIR} below is this skill's folder (where this SKILL.md lives).
python3 "${CLAUDE_SKILL_DIR}/investors.py" formd --q "pet care" --since 2025-01-01 # who raised, how much, when
python3 "${CLAUDE_SKILL_DIR}/investors.py" import seed/research.csv # rows from public research
python3 "${CLAUDE_SKILL_DIR}/investors.py" add --name "Maya Chen" --firm "Northlight Ventures" \
--stage seed --check 250K-1M --sectors "pet care; consumer marketplaces" --geo US \
--last-deal "led a pet-care seed round" --last-deal-date 2026-04-13 --source URL --source URL
python3 "${CLAUDE_SKILL_DIR}/investors.py" rank --write # fit 0-100 with reasons
python3 "${CLAUDE_SKILL_DIR}/investors.py" show # the ranked list
python3 "${CLAUDE_SKILL_DIR}/investors.py" show maya-chen # one row, every source
investors.example.csv in this folder is the format (the reel's six
investors, all fictional, with .example addresses). rank takes --stage --sectors --geo --ask --check the first time, or reads them from
seed/config.json (startup.stage, sector, geography, raise).
What it reads and writes
| file / feed | what |
|---|---|
| your research, as CSV or JSON | name, firm, role, email, stage, check, sectors, geo, last_deal, last_deal_date, sources, warm_intro, personal_line, notes |
seed/config.json |
your stage, sectors, geography and raise; sec_user_agent for SEC |
| SEC EDGAR full-text search | efts.sec.gov/LATEST/search-index?q=...&forms=D: Form D filings in your words and dates |
each Form D primary_doc.xml |
amount offered and sold, number of investors, securities (equity, SAFE, debt), date of first sale, the names and roles of officers and directors |
seed/investors.json |
import and add write it; rank --write adds fit and reasons. /seed-closer drafts from it, /seed-coach preps calls from it |
seed/formd.json |
formd --write: the filings, the links, the summary |
How fit works
| part | points | how |
|---|---|---|
| stage | 25 | they invest at your stage; 12 if one stage off (pre-seed, seed, series a, series b, growth) |
| sectors | 25 | two or more of your sectors match theirs; 15 for one. "pets" matches "pet care", "carpet" does not |
| check | 20 | their range overlaps the check you want (default 5% to 50% of the ask); 10 within a factor of 2; 0 if their smallest check is bigger than your whole round |
| recency | 15 | their last relevant deal: 15 x (1 - days ago / 730), rounded half up |
| geography | 10 | they invest where you are, or globally |
| warm intro | 5 | someone can introduce you |
Each part prints its reason, like "checks of $250K-$1M fit the $75K-$750K you want (+20)". A row without a public source URL is refused and never ranked.
Rules
- Public sources only. The firm's own site, public Crunchbase, AngelList or LinkedIn pages that a web search turns up, SEC EDGAR, the press. Never log in anywhere, never scrape behind a login, never scrape LinkedIn: open what a search result shows, and nothing else.
- A source on every row.
importandaddrefuse a row without an https link;rankrefuses one that lost it. - Never collect phone numbers or home addresses. Such columns are dropped with a note, and a row with a phone number in its text is refused. Use the email a firm publishes for pitches; the tool warns on personal-style addresses.
- Form D is a lead, not a list of investors. It names the company that raised, the amount, the date and its officers and directors. A director who is not an officer often holds an investor's board seat: look them up in the press. A pooled fund's Form D (a venture capital fund raising money) is an investor to research. Form D has no business description, so search the words founders put in company names.
- SEC asks who is asking.
sec_user_agentinseed/config.json(orSEC_USER_AGENT) must be your real name and email. Without itformdrefuses. It pauses between requests, far under SEC's limit. - No promise of a check. A high fit means worth a careful email, nothing more.
Steps
- Make sure
seed/config.jsonhas the startup's stage, sector, geography and raise (from/seed-plan), and a realsec_user_agent. - Run
investors.py formd --q "<a word in your space>" --since <18 months ago>. Read who raised and how much: it is your comparable set, and the press coverage of those rounds names the investors who led them. - Research on the open web, from those leads and from searches like "seed
investors <your space>", "<firm> portfolio <space>". For each investor,
write a row with the facts and the URLs you read. Write the
personal_linefrom something real they did or wrote, with its source. - Save the rows as CSV and run
investors.py import FILE.csv. Fix every refusal (a missing source, a phone number) by fixing the research. - Run
investors.py rank --write(with--stage --sectors --geo --askthe first time if the config is empty). Read the top ten with their reasons and check each fact you will quote. - Show the user the ranked list with fits, reasons and links, and ask which ones to approach.
- Hand off to
/seed-closer, which drafts one email per approved investor fromseed/investors.jsonand sends nothing without the user's yes.
Example: the reel
Leashly (made up) is raising a $1.5M seed for a US dog-walking marketplace.
The six investors are fictional too (investors.example.csv). investors.py rank --stage seed --sectors "pet care; marketplaces; local services; consumer" --geo US --ask 1.5M --today 2026-10-26 --write:
Investor fit for a $1.5M seed round in US, sectors pet care, marketplaces, local services, consumer; checks of $75K-$750K wanted
fit name firm check stage id
96 Maya Chen Northlight Ventures $250K-$1M pre-seed, seed maya-chen
93 Daniel Okafor Harbor Seed Fund $100K-$500K seed daniel-okafor
91 Priya Raman Kite Hill Capital $500K-$2M seed, series a priya-raman
89 Sam Whitaker Angel investor $25K-$100K pre-seed, seed sam-whitaker
87 Elena Brooks Bluebell Ventures $250K-$750K seed elena-brooks
85 Marcus Lee Copperline VC $100K-$400K seed marcus-lee
Maya's 96 is 25 (seed) + 25 (pet care, marketplaces, consumer) + 20 (her
$250K-$1M checks fit the $75K-$750K Leashly wants) + 11 (her latest pet-care
seed round, 196 days ago) + 10 (US) + 5 (a warm intro). Her personal line,
"Saw you led two pet-care seed rounds, so you know the 20% fee problem
better than anyone.", goes to /seed-closer with her row.
What it never does
It never invents an investor, a deal or an email address, never guesses a check size it did not read, never logs in, never stores a phone number or a home address, and never contacts anyone. Not investment advice.