# Funding Stage Company Finder — Startups by Stage & Industry (`inovaflow/funding-stage-company-finder`) Actor

Startups by funding stage, industry and location: one company per row with stage + confidence, last round, amount, date, investors, HQ, team size, description, website and executives — from SEC Form D, the Y Combinator directory and funding press. No login, dataset-only, MCP-ready.

- **URL**: https://apify.com/inovaflow/funding-stage-company-finder.md
- **Developed by:** [inovaflow](https://apify.com/inovaflow) (community)
- **Categories:** Lead generation, Business, News
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $30.00 / 1,000 companies

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

If you sell to startups, the list you want is "every seed-stage fintech in California" or "Series A biotech in Texas and the UK" — not a news feed of yesterday's rounds. **Funding Stage Company Finder** answers that query: pick the **funding stages**, type **industry keywords** and **locations**, and get **one company per row** with its stage (and how sure we are), the last round type, amount and date, investors, HQ, founded year, team size, description, website and executives — merged from three free public sources: **SEC Form D filings**, the **Y Combinator directory** and **funding press**. No login, no API key, no Crunchbase seat.

- **Sales teams selling to startups** — SaaS, fintech, recruiting, payroll, security: the right stage is the right buyer.
- **VC and corporate-development ops** — sourcing lists by stage × sector × geography, with the filing or article as evidence.
- **Recruiters and agencies** — companies that just raised are the ones hiring and buying.
- **Analysts and founders** — market maps of a niche at a given stage, refreshed on a schedule.

### What does Funding Stage Company Finder do?

It is a **startup database query** built from public sources, not a scrape of one site:

1. **SEC Form D** (EDGAR full-text search + each filing) — every US private raise: issuer, address, phone, year of incorporation, industry group, amount sold, offering size, first-sale date, the securities offered (often "Series A Preferred Stock") and the executives who signed. Investment funds, SPVs and real-estate vehicles are filtered out; only operating companies remain.
2. **Y Combinator directory** — every YC company with website, one-liner, description, tags, locations, batch, team size and YC's own stage bucket.
3. **Funding press** (news search) — "raises $12M Series A" headlines per stage × industry, parsed into company, round, amount, currency, date and investors.

Companies found by more than one source are **merged into one row** (by domain, else by name). Every row states **where its stage comes from**: `stageConfidence` is `high` when a source names the round, `medium` for a strong structural signal (YC "Early", a SAFE/convertible note), `low` when it is inferred from the amount alone — and `stageBasis` spells it out. With **Look up the last named round** on, companies whose stage is only inferred get one news lookup that can upgrade them to a named round.

### Why use this startup finder?

- **A query, not a feed.** Stage × industry × location → list. Companion to `recently-funded-companies` (what raised this week).
- **Honest stages.** A stage is a labelled inference, never a bare claim; amounts and dates are only what a source stated.
- **Merged, deduplicated rows.** A YC company that also filed a Form D and made the news is one row with three source links.
- **Evidence on every row.** The SEC filing folder, the YC profile and the article URL.
- **Executives included.** Form D lists the officers and directors who signed — names and roles are on the row.
- **Fair pricing.** One small price per delivered company; filtered-out companies, duplicates and empty runs are free.
- **Runs anywhere.** Schedule weekly refreshes, call it from the API, Zapier / Make / n8n, or from an AI agent through MCP.

### What data does it extract?

| Field | Description |
| --- | --- |
| `company`, `domain`, `website`, `websiteConfidence` | Company name; website as given by the source (`source`) or resolved by a strict name-matching web search (`resolved`), else null |
| `stage` | `pre-seed`, `seed`, `series-a`, `series-b`, `series-c-plus`, `unknown` |
| `stageConfidence`, `stageBasis` | `high` (round named by the source) / `medium` (YC "Early", SAFE or convertible note) / `low` (amount band only), and the reason in words |
| `lastRoundType`, `lastRoundAmountUsd`, `lastRoundDate` | The round as written ("Series A Preferred", "Seed"), the amount in USD (Form D amount sold, or the headline amount converted at an approximate rate), the first-sale or article date |
| `offeringAmountUsd` | Form D total offering size (null when "Indefinite") |
| `totalRaisedUsd`, `investors` | Only when a source states them (investors: from headlines; "Y Combinator" for YC companies) |
| `industries` | YC industries + tags, the Form D industry group, or the keywords the headline matched |
| `hq`, `city`, `state`, `country`, `foundedYear` | From the filing address or the YC location; `foundedYear` from Form D only |
| `employeeBand`, `teamSize` | From the YC directory |
| `description`, `linkedin`, `twitter`, `emails`, `phone`, `contactStatus` | Description (YC); phone (Form D); emails/socials only with **Extract emails & socials** on |
| `people`, `peopleNames` | Executives and directors from the Form D signature block, with roles |
| `ycBatch`, `ycStatus`, `secCik`, `secFilingUrl`, `secIndustryGroup`, `secRevenueRange`, `pressUrl`, `pressTitle` | Source facts and links |
| `sellTo` | Who typically sells to a company at this stage (derived hint, not a fact about the company) |
| `sources`, `sourceUrls`, `key`, `scrapedAt` | Provenance |

### How to find startups by funding stage

1. Open the Actor and click **Try for free**.
2. Pick **Funding stages** (e.g. Seed, Series A), type **Industries / keywords** (`fintech`, `AI`, `biotech`, `climate`, `developer tools` …) and **Locations** (`CA`, `New York`, `Austin`, `United Kingdom`, `Europe`).
3. Set **Raised within the last N months** and **Max companies**. Leave **Look up the last named round** and **Resolve websites** on; turn **Extract emails & socials** on if you want contacts.
4. Click **Start**. A 30-company run takes about half a minute; 100 companies about 1–3 minutes.
5. Open the **Companies** or **Leads & who to sell to** view, or download `COMPANIES.csv`, JSON or Excel.

#### Look up a list of companies

Put names (or domains) into **Look up specific companies** — each is checked in the YC directory, SEC filings (three years) and the press; you get one row per company found with its stage and last named round. Names that match nothing produce no row and no charge.

#### Tips

- SEC Form D covers **US filers** — for non-US locations the YC directory and the press do the work.
- With **Locations** set, a company known only from a headline is kept only when the headline itself names the place ("UK's …", "North Texas' …"); leave locations empty for the widest press coverage.
- Confidence-first ordering: named rounds come first, then YC "Early", then amount-only filings. Raise **Max companies** to reach the long tail of Form D filers.
- Setting a **minimum or maximum amount** drops companies whose source states no amount (accuracy over coverage).

### How much does it cost?

Pay-per-event, no subscription: **$0.03 per company delivered** plus a small run-start fee. 100 companies ≈ $3; 1,000 ≈ $30. Companies removed by your filters, duplicates and empty runs are never charged. All sources are free public endpoints, so the Apify free plan covers hundreds of companies a month.

### Input

Give at least one of stages, industries, locations or companies. Example:

```json
{
    "stages": ["seed", "series-a"],
    "industries": ["fintech"],
    "locations": ["CA", "NY"],
    "raisedWithinMonths": 6,
    "maxCompanies": 30
}
```

All options: `stages[]`, `industries[]`, `locations[]`, `raisedWithinMonths` (12), `maxCompanies` (100), `foundedAfter`, `minAmountUsd`, `maxAmountUsd`, `companies[]`, `sources[]` (`sec-form-d`, `y-combinator`, `press-search`), `enrichRounds` (true), `resolveWebsites` (true), `enrichContacts` (false), `maxConcurrency` (6), `proxyConfiguration` (residential fallback).

### Output sample

```json
{
    "company": "Labs Companies, Inc.",
    "domain": null,
    "website": null,
    "industries": ["Other Technology"],
    "stage": "series-a",
    "stageConfidence": "high",
    "stageBasis": "SEC Form D: source text names \"Series A Preferred\"",
    "lastRoundType": "Series A Preferred",
    "lastRoundAmountUsd": 1500000,
    "lastRoundDate": "2026-09-03",
    "offeringAmountUsd": 5000000000,
    "investors": [],
    "hq": "Beverly Hills, CA",
    "city": "Beverly Hills",
    "state": "CA",
    "country": "United States",
    "foundedYear": null,
    "phone": "424-234-1083",
    "people": [
        { "name": "Durand F. Davis Jr.", "title": "Executive Officer, Director" },
        { "name": "Maya E. Davis", "title": "Executive Officer, Director" }
    ],
    "secCik": "2064977",
    "secFilingUrl": "https://www.sec.gov/Archives/edgar/data/2064977/000206497726000001/",
    "secIndustryGroup": "Other Technology",
    "secRevenueRange": "Decline to Disclose",
    "sellTo": ["sales & CRM tooling", "HR, benefits & payroll", "SOC 2 / security & compliance", "recruiting firms (first sales & engineering hires)", "marketing automation & data"],
    "sources": ["sec-form-d"],
    "sourceUrls": ["https://www.sec.gov/Archives/edgar/data/2064977/000206497726000001/"],
    "key": "name:labs companies",
    "scrapedAt": "2026-09-26T12:56:16.000Z"
}
```

The key-value store holds `OUTPUT` (a run summary: companies by stage / confidence / source, what was filtered out and why, enrichment stats, the per-source report) and `COMPANIES.csv`.

### FAQ

**How is the stage decided?** From the source's own words when it has them (a Form D that says "Series Seed Preferred Stock", a headline that says "raises $12M Series A") — `stageConfidence: high`. YC "Early" companies are `seed` at `medium` confidence (YC's own pre-Series-A bucket). When only an amount is known, the usual US bands apply at `low` confidence: under $1.5M pre-seed, under $8M seed, under $30M Series A, under $80M Series B, above that Series C+. Series C, D, E… are all `series-c-plus`; `lastRoundType` keeps the letter.

**Why does a company have no website?** Form D filings and headlines carry no URL. The Actor runs one web search per such company and accepts a result only when the domain spells the company name (`wildwestsystems.com` for "Wild West Systems, Inc.") — and, for a one-word name such as "Halcyon", only when the search result is also about the company's industry. Anything less certain stays null — better no website than someone else's. Expect a website for most YC companies and for roughly one in ten filers.

**Why are Series C+ YC companies listed at low confidence?** The directory's "Growth" bucket only says the company raised beyond seed; the Actor buckets it by team size and marks it `low`. Turn on **Look up the last named round** (default) to replace it with the actual round when the press named one.

**Does it use Crunchbase, PitchBook or Dealroom?** No — those need paid seats or block automated access. The three sources here are public and free, and the row shows exactly which one said what.

**Is the `sellTo` field a fact about the company?** No — it is a hint derived from the stage and industry (who typically sells to a company at that point), meant for the agent or rep planning outreach.

**Can it run on a schedule?** Yes. Schedule it weekly with your stage × industry × location query and export to your CRM; use `raisedWithinMonths` to keep only fresh rounds.

# Actor input Schema

## `stages` (type: `array`):

Which stages to deliver. Leave empty for every stage. `unknown` = the source states neither a round nor an amount (bootstrapped or undisclosed).

## `industries` (type: `array`):

Industry keywords, one per line — e.g. `fintech`, `AI`, `biotech`, `climate`, `developer tools`, `real estate`. Each keyword is expanded to its usual synonyms and matched against company descriptions, tags and the Form D industry group. Leave empty for all industries.

## `locations` (type: `array`):

US states (`CA`, `New York`), well-known cities (`San Francisco`, `Austin`), countries or regions (`United Kingdom`, `Europe`, `India`). SEC Form D covers US filers; the YC directory and press cover the world.

## `raisedWithinMonths` (type: `integer`):

Keeps companies whose last round (Form D first-sale date, press date) falls inside this window. Companies whose source gives no round date (YC directory entries) are kept regardless.

## `maxCompanies` (type: `integer`):

Stop after this many companies. Only delivered companies are charged.

## `foundedAfter` (type: `integer`):

Keep only companies incorporated in or after this year (Form D year of incorporation; the YC batch year is used for directory entries).

## `minAmountUsd` (type: `integer`):

Keep only companies whose last round amount is at least this. Companies with no stated amount are dropped when a min/max is set.

## `maxAmountUsd` (type: `integer`):

Keep only companies whose last round amount is at most this.

## `companies` (type: `array`):

Company names (or domains) to look up instead of searching — each one is checked in the YC directory, SEC filings and the press for its stage and last round.

## `sources` (type: `array`):

Which public sources to read. Default: all three.

## `enrichRounds` (type: `boolean`):

For companies whose stage is only inferred (from a Form D amount or the YC stage bucket), search the news for a headline naming the round — upgrades `stageConfidence` to `high` and fills amount, date and investors. One news request per company.

## `resolveWebsites` (type: `boolean`):

Form D filings and headlines carry no URL: run one web search per such company and accept a result only when the domain spells the company name. Otherwise `website` stays null.

## `enrichContacts` (type: `boolean`):

Reads the homepage and contact-like pages of each company website for email addresses, LinkedIn and X profiles. Slower; off by default.

## `maxConcurrency` (type: `integer`):

Parallel requests for enrichment and website reads. SEC requests are always kept under 10 per second.

## `proxyConfiguration` (type: `object`):

Every source is read through the run's own connection first; the proxy is used only when a host blocks that path. Residential is the recommended fallback.

## Actor input object example

```json
{
  "stages": [
    "seed",
    "series-a"
  ],
  "industries": [
    "fintech"
  ],
  "locations": [
    "CA",
    "NY"
  ],
  "raisedWithinMonths": 6,
  "maxCompanies": 30,
  "sources": [
    "sec-form-d",
    "y-combinator",
    "press-search"
  ],
  "enrichRounds": true,
  "resolveWebsites": true,
  "enrichContacts": false,
  "maxConcurrency": 6,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `companies` (type: `string`):

One row per company: stage with confidence, last round type, amount and date, investors, industries, HQ, founded year, team size, website and sources.

## `leads` (type: `string`):

The lead view: the signal and its basis, executives, emails, socials, description, suggested sellers and the source links.

## `summary` (type: `string`):

Companies delivered and charged, by stage / confidence / source, what was filtered out and why, enrichment stats and the per-source report.

## `csv` (type: `string`):

A spreadsheet-ready copy of the dataset (first 5,000 rows).

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "stages": [
        "seed",
        "series-a"
    ],
    "industries": [
        "fintech"
    ],
    "locations": [
        "CA",
        "NY"
    ],
    "raisedWithinMonths": 6,
    "maxCompanies": 30,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("inovaflow/funding-stage-company-finder").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "stages": [
        "seed",
        "series-a",
    ],
    "industries": ["fintech"],
    "locations": [
        "CA",
        "NY",
    ],
    "raisedWithinMonths": 6,
    "maxCompanies": 30,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("inovaflow/funding-stage-company-finder").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "stages": [
    "seed",
    "series-a"
  ],
  "industries": [
    "fintech"
  ],
  "locations": [
    "CA",
    "NY"
  ],
  "raisedWithinMonths": 6,
  "maxCompanies": 30,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call inovaflow/funding-stage-company-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,inovaflow/funding-stage-company-finder"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/AehHuSaNqlf72FyW7/builds/UX3re9VMCpUyq4YqM/openapi.json
