DEV Community

Hay Equipos
Hay Equipos

Posted on

How to export the Y Combinator company directory to a spreadsheet by batch

You want a list of Y Combinator startups in a spreadsheet: every company in the latest batch, every YC fintech company that is hiring, or the whole directory of roughly 6,300 companies for market research. The directory at ycombinator.com/companies is easy to browse but has no export button, and copying company cards by hand is slow and error prone.

The Y Combinator Company Directory: YC Startups by Batch, published by Hay Equipos on the Apify Store, reads the same public search that powers the YC directory page and returns one clean row per company. Founder names, bios, photos and emails are deliberately left out. This is company data, not people data. It is an independent tool and is not affiliated with Y Combinator.

What you get back

One row per company. Illustrative example:

{
  "name": "Example Labs",
  "slug": "example-labs",
  "ycUrl": "https://www.ycombinator.com/companies/example-labs",
  "website": "https://www.examplelabs.ai/",
  "domain": "examplelabs.ai",
  "oneLiner": "Accounting automation for small businesses",
  "description": "Example Labs connects to a company's bank and books...",
  "batch": "Summer 2025",
  "batchCode": "S25",
  "status": "Active",
  "stage": "Early",
  "industry": "Fintech",
  "subindustry": "Fintech -> Accounting",
  "industries": ["Fintech", "Accounting"],
  "tags": ["AI"],
  "regions": ["United States of America", "America / Canada"],
  "locations": "San Francisco, CA, USA",
  "teamSize": 6,
  "isHiring": true,
  "topCompany": false,
  "nonprofit": false,
  "launchedAt": "2025-07-20T16:00:00.000Z",
  "logoUrl": "https://bookface-images.s3.amazonaws.com/small_logos/....png"
}
Enter fullscreen mode Exit fullscreen mode
name batchCode industry teamSize isHiring domain
Example Labs S25 Fintech 6 true examplelabs.ai
Sample Robotics S25 Industrials 12 false samplerobotics.com

With Add company page details turned on, each row also gets yearFounded, city, country, company linkedinUrl, twitterUrl, facebookUrl, crunchbaseUrl, githubUrl, openJobs, up to 20 jobTitles, and jobsUrl. If a company page cannot be read, the row gets a detailsError instead.

Step by step in the Apify Console

  1. Open the actor on the Apify Store (link at the end) and click Try for free.
  2. In Batches, add batch codes such as W24, S25, X25 (Spring) or F25 (Fall), or full names like Winter 2024. Leave it empty for every batch.
  3. Optional filters: Industries (as named in the directory, for example B2B, Fintech, Healthcare; case does not matter), Regions (for example United States of America, Europe, India, Remote), Company status (Active, Acquired, Inactive, Public), Only companies that are hiring, Only YC top companies, and minimum or maximum team size.
  4. Use Search text for a free text search over name, one liner and description, for example AI agents.
  5. Turn on Add company page details if you need social links, year founded and open jobs. It is slower and costs a little extra per company.
  6. Set Maximum companies (default 100, up to 10,000), then click Start and export from the Output tab as CSV, Excel, JSON or HTML.

A filter value that does not exist in the directory is ignored with a warning in the log. If none of your batches, industries or regions exist, the run ends with no rows and a message rather than returning the wrong set.

Calling it from code

The actor id is pistachio_implementation/yc-company-directory. Keep your token in APIFY_TOKEN.

curl:

curl -X POST \
  "https://api.apify.com/v2/acts/pistachio_implementation~yc-company-directory/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"batches": ["S25"], "industries": ["B2B"], "maxItems": 50}'
Enter fullscreen mode Exit fullscreen mode

Python with apify-client, hiring fintech startups from two batches with details:

import os
from apify_client import ApifyClient

client = ApifyClient(os.environ["APIFY_TOKEN"])

run = client.actor("pistachio_implementation/yc-company-directory").call(
    run_input={
        "batches": ["W24", "S24"],
        "industries": ["Fintech"],
        "hiringOnly": True,
        "includeDetails": True,
        "maxItems": 200,
    }
)

for c in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(c["name"], c["batchCode"], c["domain"], c.get("openJobs"), c.get("linkedinUrl"))
Enter fullscreen mode Exit fullscreen mode

Schedule the run each season with the new batch code to get each batch as soon as YC lists it. Every run reads the directory live.

Pricing

Pay per event, with no subscription and no platform usage charge on top:

  • Company saved: $0.0009 per company ($0.90 per 1,000).
  • Company page details added: $0.001 extra per company, charged only when enrichment is on and the company page was read.
  • Actor start: Apify's standard start event of $0.00005 per run.

For example, the whole directory without details is about $5.70, and 200 companies with details is about $0.38. You can set a maximum charge per run and the actor stops when it is reached.

Limits and what it does not do

  • No founder data. Founder names, bios, photos and emails are never collected.
  • The directory search returns at most 1,000 companies per query, so larger exports are split by batch automatically, and each company appears once.
  • Detail enrichment opens one YC page per company, about one per second, so 1,000 companies with details take roughly 17 minutes. Without details, thousands of companies take well under a minute.
  • Team size, status and hiring flags are what YC shows, and they can lag behind reality.
  • The actor depends on the search settings the directory page publishes to every visitor. It reads them fresh on each run, but if YC removes them, the run fails with a clear message.

Please use the data in line with Y Combinator's terms.

Try it on the Apify Store: https://apify.com/pistachio_implementation/yc-company-directory

Top comments (0)