DEV Community

SureSignal
SureSignal

Posted on

How to find recently funded startups every morning using SEC Form D filings (and only pay for new ones)

How to find recently funded startups every morning using SEC Form D filings (and only pay for new ones)

Every US company that sells shares in a private round files a Form D with the SEC, usually within 15 days of the first sale. Those filings are public. Many of the raises never get a press release, so a Form D is often the earliest public trace that a company just got budget.

That makes Form D useful if you sell to startups: agencies, fractional CFOs, startup lawyers, recruiters, insurance brokers, dev shops. You could also be an investor who wants to see what's being raised in your sector.

Doing it by hand is the hard part. EDGAR's search is built for looking up one company, not for "show me every operating company that raised money this week, without the funds and SPVs". And if you pull a list every day, you get the same filings again and again.

This tutorial sets up a feed that:

  1. pulls new Form D filings from SEC EDGAR,
  2. drops investment funds, SPVs and real-estate syndications,
  3. returns one clean row per raise (company, amount sold, named executives, phone, website, link to the filing), and
  4. only delivers, and only charges for, filings you haven't already received.

Step 1: The free, manual way (worth knowing)

Go to EDGAR full-text search (efts.sec.gov / sec.gov/edgar/search), filter forms to D, and set a date range. You'll get the filings, but you then have to open each one, read the XML or HTML, figure out whether it's a real company or a fund, and copy the fields into a sheet. That works for five filings. It doesn't work for a few hundred a week.

Step 2: Run the feed

The SEC Form D Funding Leads Actor on Apify does the parsing and filtering. Open it, click Try for free, and leave the defaults: filings from the last 7 days, funds, SPVs and real estate excluded, Only new since last run on.

A typical narrowed-down input:

{
  "daysBack": 7,
  "states": ["CA", "NY"],
  "industries": ["Technology"],
  "minAmountSold": 1000000,
  "onlyFirstTimeFilers": true,
  "onlyNew": true,
  "monitorId": "ca-ny-tech-1m",
  "maxItems": 200
}
Enter fullscreen mode Exit fullscreen mode

onlyFirstTimeFilers keeps companies filing their first ever Form D, which is a good proxy for an early round. monitorId gives this saved search its own memory, so it doesn't mix with your other searches.

Each row looks like this (illustrative values, shortened):

{
  "companyName": "Example Robotics Inc.",
  "state": "CA",
  "totalAmountSold": 4200000,
  "dateOfFirstSale": "2026-09-30",
  "ceoName": "Jane Example",
  "ceoTitle": "Chief Executive Officer",
  "isFirstTimeFiler": true,
  "isLikelySPVOrFund": false,
  "website": "https://example-robotics.com",
  "websiteSource": "sec",
  "filingUrl": "https://www.sec.gov/Archives/edgar/data/..."
}
Enter fullscreen mode Exit fullscreen mode

Every row links to the original SEC filing, so you can show anyone where the data came from.

Step 3: Do it from code (optional)

from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("SureSignal/sec-form-d-funding-leads").call(run_input={
    "daysBack": 1,
    "industries": ["Technology"],
    "onlyNew": True,
    "monitorId": "daily-tech",
})
for lead in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(lead["companyName"], lead.get("totalAmountSold"), lead.get("ceoName"), lead["filingUrl"])
Enter fullscreen mode Exit fullscreen mode

Step 4: Schedule it, and stop paying for the same filing twice

Save the input as a Task and add a Schedule (daily at 7am, or hourly). With Only new since last run on, each run returns only filings this monitor hasn't delivered before.

That's the reason the feed is built this way:

  • Money: you're charged once per filing, not every time it shows up in a date window. Filtered-out and already-delivered filings cost nothing.
  • Time: there's no dedupe step before the list reaches your CRM or sequencer.
  • Mental effort: the morning list is only what's new, so nothing needs re-checking.

Connect it to Google Sheets, Slack, HubSpot, n8n, Make or Zapier through Apify integrations, or call it from Clay over HTTP.

What it costs

$0.03 per lead delivered, plus Apify's small run-start fee. 100 leads cost $3. 1,000 leads cost $30. Set Max leads or a run spending limit, and a run can't cost more than you intended.

Honest limits

  • US Form D only.
  • Form D doesn't state round stage ("Seed", "Series A") or name the investors.
  • No email addresses. You get names, titles, the company phone, website and LinkedIn search links.
  • Some raises never produce a Form D, or show up late.
  • Websites are best effort and come with a confidence field.
  • Fund and SPV detection is heuristic. Check spvReasons if you need to audit it.

A decision is only as good as the information behind it. Hearing about a raise two weeks after it happened is often the difference between being first in the inbox and being fifth.

SureSignal builds data feeds on Apify that only charge for new data. Built on public SEC EDGAR data. Not investment advice. Not affiliated with the SEC.



Try it: sec-form-d-funding-leads on the Apify Store. You only pay for new data: runs on a schedule skip what you've already received.

Top comments (0)