How Recent Funding sources and verifies startup funding data
Where Recent Funding's companies and funding amounts come from, the rules that decide whether a news headline counts as a raise, and how review corrections removed valuations and acquisition prices stored as rounds.
Recent Funding tracks recently funded startups. On September 26, 2026 it listed 1575 active companies, and 536 of them had a known amount for their latest round. This post explains where those records come from, how an amount gets attached to a company, and what we do when an amount turns out to be wrong. Everything here describes Recent Funding's code as of that date.
The short version
- Companies are discovered by scanning startup and crypto fundraising sources.
- An amount is either taken from the source listing itself or found later by an enrichment pipeline that reads the company's website and news headlines.
- Every amount keeps a link to the page it came from. The site shows it as a SOURCE link, the API returns it as
raise_source_url, and every figure on this blog links to it. - Wrong amounts get corrected or cleared by a review step. Each correction is recorded with the previous value so it can be audited and undone.
Where companies come from
Each time a source lists a company, Recent Funding stores a discovery record with the source name, the source URL, and the raw listing. A company found by several sources keeps all of them. These are the sources in the snapshot behind this post, with the number of companies each one listed:
| Source | Companies |
|---|---|
Frontrun VC startup database (frontrun-startupdb) | 742 |
Dropstab (dropstab) | 197 |
pipeline (pipeline) | 188 |
accel:mvb (accel:mvb) | 178 |
Frontrun VC site (frontrun-site) | 112 |
Frontrun VC on X (frontrun-tweet) | 57 |
accel:longhashx (accel:longhashx) | 49 |
accel:xrpl (accel:xrpl) | 49 |
CoinCarp (coincarp) | 40 |
accel-watch:orange (accel-watch:orange) | 22 |
accel:superteam-usa (accel:superteam-usa) | 21 |
accel:antler (accel:antler) | 18 |
Crypto-Fundraising.info (crypto-fundraising) | 17 |
accel:base-batches (accel:base-batches) | 8 |
accel:seedcamp (accel:seedcamp) | 7 |
accel-watch:colosseum (accel-watch:colosseum) | 3 |
accel-watch:pnp (accel-watch:pnp) | 3 |
accel-watch:solana-incubator (accel-watch:solana-incubator) | 3 |
accel-watch:superteam-black (accel-watch:superteam-black) | 3 |
accel:skydeck (accel:skydeck) | 2 |
accel-watch:alliance (accel-watch:alliance) | 1 |
accel-watch:nitro (accel-watch:nitro) | 1 |
accel-watch:sui-hydropower (accel-watch:sui-hydropower) | 1 |
accel-watch:superteam-usa (accel-watch:superteam-usa) | 1 |
accel:pear (accel:pear) | 1 |
The UI names the scanned sources as Frontrun VC, Crypto-Fundraising.info, Dropstab, and CoinCarp. Frontrun VC appears under three keys: its startup database, its site, and its posts on X. The API's sources and source_links fields show which sources listed each company and where.
The companies, their discoveries, funding rounds, investors, and the evidence behind each field live in a private Postgres schema (vc_radar). The public API reads from it and serves only records whose status is active.
Where amounts come from
A company's amount is the amount of its most recent funding round. The raise_provider field says how that amount was found:
| Provider | Companies |
|---|---|
Source listing (scan) | 303 |
News headline (google-news) | 201 |
Manual review (agent-review) | 20 |
Company website (website) | 3 |
- Source listing (
scan): the fundraising source listed the amount, and the source URL is the listing itself. - News headline (
google-news) and company website (website): the amount was unknown after scanning, and the enrichment pipeline found it. The source URL is the article or page. - Manual review (
agent-review): a reviewer confirmed or corrected a match the pipeline had held back. The source URL is the page the reviewer cited.
The table counts amounts that have a source URL. 9 amounts in the snapshot have none, so they appear on the site without a SOURCE link and are left out of every table on this blog.
How the enrichment pipeline matches headlines
The funding pipeline (scripts/enrich-funding.mjs) is scheduled to run daily. It only looks at companies whose rounds have no known amount, and it tries three providers in order of trust:
- The company's own website. Only first-person or self-named claims count, such as "we raised" or "announcing our seed round". Customer quotes and logo walls do not.
- Google News headlines, where the company must be the subject of the raise.
- The round's source page, to record that a source lists the amount as undisclosed.
A news headline only counts when it matches one of two shapes: <Name> raises <amount> (with verbs like secures, lands, closes, or emerges from stealth with), or <Name>: <amount> Seed…. On top of that:
- Headlines about debt, loans, credit facilities, IPOs, bonds, grants, donations, token sales, buybacks, or contracts are rejected as not venture rounds.
- An amount described as a valuation is not a raise. For
raises $100M at $4B valuationthe pipeline keeps the first number, and it skips an amount followed directly by "valuation" or "market cap". - Brand names keep their capital letter, so "Massachusetts town secures…" does not match a company called Town.
- A capitalised word right before the name means a longer name. "Electric Twin raises…" is not a match for Twin.
- Short or common one-word names collide constantly, so they also need topic words in the headline that fit the company's industry. For a robotics company that could be "robot", "hardware", or "humanoid".
Only high-confidence matches are written. Each write adds an evidence row with the provider, publisher, URL, headline, matching rule, pipeline version, and any competing amounts. Weaker matches go into a report for review instead. If a news lookup fails or is throttled, it is retried, and a lookup that still fails is not recorded as "no raise found".
When a reviewer spots a wrong amount, a reject command clears it and blocks the claim, meaning the same company with the same amount from any outlet, so a wire story repeated by other publishers cannot bring it back. A stats command reports how many amounts were applied and how many rejected, and the precision, per provider, publisher, matching rule, and pipeline version. That way accuracy is measured rather than assumed.
Review corrections
Some amounts that look like raises are not. The review on September 25, 2026 found valuations, acquisition prices, debt, trading volume, and figures quoted in tweets stored as funding rounds. The review script (scripts/apply-review.mjs) applies researched verdicts, and the code records the reviewer as an AI agent:
- Suspicious large rounds. When the number was a valuation, it moves to a separate valuation field. When it was cumulative funding, belonged to another company, or was otherwise wrong, the real amount replaces it if known. Otherwise the amount is cleared, so the site shows it as unknown rather than wrong.
- Held-back funding matches. Correct matches are written with the provider
agent-review. Wrong ones become rejections that the pipeline will never propose again. - X accounts. A founder's personal account, or another company's account, stops being the company's primary handle, and the official handle takes its place.
- Records that are not startups. Records that turned out to be people get the status
person. Other non-startups, such as an investment firm, are archived. The API serves onlyactiverecords, so both drop off the site.
Every correction writes an evidence row with the previous value, the verdict, a note, and the source URL, so it can be audited and rolled back.
The pipeline also keeps watching for this kind of error. Its report lists large early-stage amounts that review has not confirmed yet: 100 million USD or more at an unknown, pre-seed, seed, or stealth stage, 250 million or more at Series A, and 500 million or more at any stage. Treat such figures with care until you have checked the source.
Known limitations
- Stage labels come from the sources, and outlets do not agree on what counts as seed. Some very large "seed" rounds on Recent Funding are labelled that way by the source.
- Only the latest round shows as the company's amount. The API's
/api/v1/companies/{slug}endpoint returns every round. - The same company can appear twice when two sources spell its name differently (for example "Orthogonal" and "Orthogonal (YC W26)").
- A missing amount means unknown, not zero or undisclosed.
Check it yourself
The same data is available through the public API. Each company's raise_source_url, raise_publisher, and raise_provider fields tell you where its amount came from. If you find an amount that its source does not support, the evidence trail described above means it can be corrected without losing the record of what changed.