The Raisy Blog
Your Investor Database Keeps Dying. Here's the Fix.
A generic scraper reads one VC's site and hears “Early stage capital for developers” instead of “Abstraction Capital.” Here's the enrichment strategy that keeps an investor database accurate, fresh, and self-maintaining.
Investor databases rot. Every one of them. A fund changes its check size, adds a sector, moves a team member, or quietly edits its thesis, and your list still shows what someone scraped eighteen months ago. The standard fix is a re-scrape, which costs money, takes time, and usually repeats the original sin: a scraper that trusted a tagline and wrote the wrong name into your database.
What we saw in the live data
We caught that exact mistake live. A fund in our own database, Abstraction Capital, has a website whose <title> reads "Early stage capital for developers." That is a tagline, not a name. A naive scraper (including the first version of our own) would have written "Early stage capital for developers" as the entity name. That breaks dedup, breaks search, and makes the whole list untrustworthy.
The strategy: scrape once, enrich each column in its own way
- Emails come from Hunter.io. Verifying an email address is a solved task with a dedicated tool. We do not reinvent it.
- Every other column is found "in its own way" by an LLM. Stage focus lives in the thesis text. Check size lives in the "how we invest" section. Sector focus lives in the portfolio. LinkedIn lives in the page's social links. The enrichment prompt asks each column its own question against the fund's own website, and only fills empty cells, never overwriting data a human or a dedicated tool already provided.
- Run once, track it. Every enrichment run stamps the profile with its time; the next run skips it. No re-scraping what we already did, accuracy and cost both come from not repeating work.
- The user is the curator. Paste a fund's URL to find & add it; take the name from the page's own declared brand, and a tiny fast model only when the page hides it. Then one click per investor completes the details.
Full control, not a black box
The results are a filter bar, not a frozen list: geography down to a specific country, sector/focus, only investors with verified emails, a data-quality floor, and a name search. Every change re-runs the query with hard filters: the user decides who is in the list, not a scoring formula. A shrinking funnel shows it live: 116 in the database → 38 in your geography → 12 after filters → top 10 ranked. When a column is absent, the user sees exactly which one and fills it with one click.
Why this is the part clients value
A database you can maintain is a database you can trust, and a database you can trust is one you will actually use: which is what makes outreach, CRM, and analytics work at all. The strategy is cheap by design (LLM calls only where a page hides its facts), honest by design (if the name is not there, we say so instead of inventing a name), and user-controlled by design (hard filters, one-click fills, loud failures). See the cost model for what that trust is worth. Browse the blog.
FAQ
How is email enrichment different from the rest?
Email verification is a solved task with a dedicated tool (Hunter.io), so it stays on that service. The LLM enrichment covers every other column: stage, check size, sector, description, city, LinkedIn.
Will Raisy re-scrape investors I already enriched?
No. Every run is stamped, and the next run skips investors already enriched unless you explicitly force it. Nothing is re-scraped without a reason.
What if a page does not declare its name?
A tiny, fast model reads the page content to name the fund. If the name still does not emerge, Raisy says so loudly instead of inventing one: a wrong name is worse than no name.
Can I control the list myself?
Yes. Hard filters for geography (down to a country), sector, verified-email-only, and data quality, plus a name search. The user decides who is in the list.
Does enrichment overwrite data I entered?
Never. The LLM fills only empty cells. Anything a human or a dedicated tool has already provided is left untouched.
Sources
Raisy Project-080/090 (investor outreach + investor database harvesting) execution notes; live verification of the enrichment ladder (fetch → deterministic identity → flash-lite name fallback → per-column fill) on real fund URLs; decision records D-060 (name sourcing) and D-062 (full-control filters) in project080_investor_outreach_e2e.md.
Keep reading

Multi-Agent Supervisor Architecture, Compared
J.P. Morgan runs one supervisor over three sub-agents. Raisy runs a Chief of Staff over process rooms that own state. Where the two designs diverge.

An OpenAI Dots Alternative for Companies
Dots gives one person their own computer. A company needs one owner for a function, a gate before anything leaves, and a number somebody watches.