DEV Community

Paopao Studio
Paopao Studio

Posted on

Find companies that just raised money, straight from SEC Form D filings

When a startup raises a round, its press release is optional. Its SEC filing usually is not. A US company that sells securities under Regulation D (most seed, Series A/B, SAFE and convertible-note rounds) has to file a Form D with the SEC within 15 days of the first sale. Those filings are public on EDGAR, the same day they are disseminated.

That makes Form D one of the cheapest "who just got budget" signals available for B2B sales, recruiting, and deal-flow research. The catch is that EDGAR gives you a daily index and an XML file per filing, mixed in with funds, SPVs and real-estate vehicles.

This post shows how to get a clean, filtered list with an Apify Actor I maintain, SEC Form D Funding Tracker (disclosure: I built it). All output below is from real runs on 2026-10-31 (JST), covering filings from 2026-10-28 to 2026-10-30.

Step 1: free sample

Switch on Free sample mode ("sampleMode": true). It returns 5 filings from operating companies in the last 3 days, ignores your filters, and is not charged. One row, trimmed:

{"company_name": "Faex Technologies Inc.", "form_type": "D", "filed_date": "2026-10-29",
 "date_of_first_sale": "2026-10-14", "total_amount_sold_usd": 2500000.0,
 "total_offering_amount_usd": 4500000.0, "stage_hint": "seed ($1-5M)",
 "securities_offered": ["equity", "option to acquire"], "investors_count": 2,
 "industry_group": "Other", "issuer_city": "LAFAYETTE", "issuer_state": "CO",
 "year_of_inc": 2024, "related_persons_count": 3, "category": "operating_company",
 "filing_url": "https://www.sec.gov/Archives/edgar/data/2148280/000214828026000003/0002148280-26-000003-index.htm"}
Enter fullscreen mode Exit fullscreen mode

Form D lists executives and directors by name and address. The Actor drops those and keeps only counts (related_persons_count, related_person_roles), so the output is company-level data. stage_hint is an amount-based guess, not an SEC field.

Step 2: a filtered, scored run

Tech and health companies that raised at least $500k in the last 3 days, with scoring and change tracking on:

{
  "daysBack": 3,
  "categories": ["operating_company"],
  "industries": ["Other Technology", "Computers", "Biotechnology", "Other Health Care"],
  "minAmountSold": 500000,
  "maxResults": 5,
  "signalScoring": true,
  "changeTracking": true,
  "stateKey": "devto-demo",
  "requestsPerSecond": 2
}
Enter fullscreen mode Exit fullscreen mode

The run summary (RUN_SUMMARY in the key-value store):

{"days_requested": 3, "days_with_index": 2, "index_rows": 315, "after_prefilter": 167,
 "xml_fetched": 80, "xml_failed": 0, "matched": 5, "skipped_by_max_results": 87,
 "is_baseline_run": true, "new_issuer_rows": 5, "pushed": 5}
Enter fullscreen mode Exit fullscreen mode

Two business days of index, 315 Form D rows, 167 left after the cheap pre-filter, 80 filings checked in full, 5 returned because I set maxResults: 5. skipped_by_max_results: 87 is the number of candidate filings the run skipped once the output was full, so they were not checked against the filters. With change tracking on, those 87 are still saved as seen and will not show up later, so for a real baseline raise maxResults on the first run.

The top two rows by score:

{"company_name": "Stardust Semiconductors Inc.", "filed_date": "2026-10-29",
 "date_of_first_sale": "2026-10-16", "days_first_sale_to_filing": 13,
 "total_amount_sold_usd": 2700000.0, "stage_hint": "seed ($1-5M)", "investors_count": 2,
 "industry_group": "Other Technology", "year_of_inc": 2026,
 "change_type": "new", "is_first_edgar_filing": true,
 "signal_score": 80, "signal_tier": "hot",
 "score_reasons": [
   "+20 first filing: this is the issuer's first EDGAR filing (new to SEC filings)",
   "+17 amount: $2,700,000 sold so far (log scale: $100k = 0, $100M+ = 35)",
   "+15 young company: incorporated in 2026",
   "+15 industry: Other Technology (technology)",
   "+10 freshness: filed 13 days after the first sale",
   "+3 traction: 100% of the offering sold, 2 investors"]}

{"company_name": "Swep Bio, Inc.", "issuer_city": "SCARSDALE", "issuer_state": "NY",
 "filed_date": "2026-10-29", "days_first_sale_to_filing": 1,
 "total_amount_sold_usd": 2499989.0, "industry_group": "Biotechnology", "year_of_inc": 2026,
 "change_type": "new", "is_first_edgar_filing": true, "signal_score": 75, "signal_tier": "hot"}
Enter fullscreen mode Exit fullscreen mode

And one that ranked lower, with the reason visible:

{"company_name": "Bluesonde Technologies, Inc.", "total_amount_sold_usd": 1000000.0,
 "date_of_first_sale": "2025-11-11", "days_first_sale_to_filing": 352,
 "signal_score": 68, "signal_tier": "warm",
 "score_reasons": ["...", "+1 freshness: filed 352 days after the first sale"]}
Enter fullscreen mode Exit fullscreen mode

The score adds six capped parts: amount raised (35, log scale), first EDGAR filing (20), incorporated within 5 years (15), industry (15), days from first sale to filing (10), and round progress / investor count (5). It helps you decide what to look at first. It does not predict anything.

Step 3: schedule it

Keep the same stateKey and schedule the Actor daily. Later runs only push filings you haven't received:

  • change_type: "new": an issuer you've never seen under this key
  • change_type: "changed": a new Form D or a D/A amendment from an issuer you already have, with previous_amount_sold_usd and amount_sold_delta_usd (how much more they raised since the filing you saw)

Form D has no "closed" event, so there are no closed rows.

What to do with the list

  • B2B sales: a company that just closed a round has new budget and usually a hiring plan. Filter by industry, state and amount to match your ICP.
  • Recruiting / staffing BD: freshly funded startups hire next. Pair it with a job-board monitor to see who raised and opened roles.
  • VC / analysts: spot rounds that were never announced, with security type (equity, SAFE, debt) and investor count.

Limits worth knowing: only Reg D offerings that actually file a Form D appear; there are no investor names or valuations (Form D doesn't have them); industry_group is the issuer's own choice and many pick "Other"; EDGAR publishes the daily index on business-day evenings (US Eastern).

Data source and pricing

The Actor reads only SEC's public /Archives/ paths (the daily form index and each filing's primary_doc.xml), sends a declared User-Agent with a contact email, and stays under SEC's fair-access rate limit (5 requests/second by default, I used 2 here).

Pricing is pay per event: $0.008 per filing returned ($8 per 1,000). No start fee. Sample mode, filtered-out filings and errors are free, and change tracking never charges twice for the same filing. The scored run above would have cost 5 × $0.008 = $0.04.

Try it on the Apify Store: SEC Form D Funding Tracker. Source: paopao-studio-ai/sec-form-d-funding-signals.

Top comments (0)