# Y Combinator Scraper - YC Companies, Founders & Startup Jobs (`automly/ycombinator-scraper`) Actor

Scrape the Y Combinator startup directory by batch, industry, region, team size, status, tags or keyword: company profiles with social links, the founders shown on each company page, and open jobs with salary, equity and posting date.

- **URL**: https://apify.com/automly/ycombinator-scraper.md
- **Developed by:** [Automly](https://apify.com/automly) (community)
- **Categories:** Lead generation, Jobs
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.60 / 1,000 companies

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## Y Combinator Scraper - YC Companies, Founders & Jobs

### What is Y Combinator Scraper?

**Y Combinator Scraper** is a tool that lets you **scrape the Y Combinator startup directory**: every YC company with its batch, status, team size, location, industries, tags, website and one-liner, plus, on request, **social links, year founded, founders and open jobs from each company page**. It also gives you **the founders** listed on each company page (name, title, bio and public LinkedIn and X links) and **open jobs at YC startups** with salary, equity, experience, visa terms and the exact posting date. Pick a batch, an industry or a keyword, click **Start**, and download the results as Excel, CSV or JSON.

- ⚡ **Fast:** the whole directory of 6,268 YC companies in under a minute; 1,000 full company profiles in about 30 seconds, 1,000 founders in about 20 seconds and 1,000 jobs in about 70 seconds (our tests)
- 🎯 **Every filter of the directory:** batch, industry, sub-industry, region, team size, status, tags, hiring, nonprofit and top companies
- 👥 **Founders and jobs in the same tool:** one row per founder or per job, with the company it belongs to
- 🔓 **No login:** no Y Combinator or Work at a Startup account needed

### What can Y Combinator Scraper do?

- **Export the YC company directory** to Excel or CSV, the whole list or one batch at a time
- **Scrape YC companies by batch**, like Winter 2025 or Summer 2024, or by the short form W25 and S24
- **Filter YC startups by industry and sub-industry**: B2B, Fintech, Healthcare, Payments, Developer Tools and more
- **Find YC companies by region and team size**: remote teams, companies in Europe or India, startups with 1 to 10 people
- **List acquired, public or inactive YC companies**, or only top companies, nonprofits or companies hiring now
- **Get YC founders** for any batch or company: name, title, bio and the LinkedIn and X links shown on the company page
- **Scrape YC startup jobs**: title, location, salary range, equity, experience, visa sponsorship, skills and posting date
- **Look up single companies** by pasting their Y Combinator links
- Export to Excel, CSV, JSON, HTML or XML, or send the data to Google Sheets, Make, Zapier and more

### What data can you extract from Y Combinator?

| | | |
|---|---|---|
| 🏢 Company name, one-liner, description | 🌐 Website and logo | 🎓 YC batch |
| 🚦 Status: active, acquired, public, inactive | 👥 Team size | 📍 Location, city, country, regions |
| 🏭 Industry and sub-industry | 🏷️ Tags | 💼 Hiring now and open jobs count |
| ⭐ Top company and nonprofit flags | 📅 Year founded and launch date | 🔗 LinkedIn, X, Facebook, Crunchbase, GitHub |
| 🧑‍💼 Founders: name, title, bio | 🔗 Founder LinkedIn and X links | 🤝 Primary YC partner |
| 💻 Job title, role, specialty, type | 💰 Salary and equity range | 🗓️ Job posting date and description |

### How to scrape Y Combinator

1. [Create a free Apify account](https://console.apify.com/sign-up).
2. Open **Y Combinator Scraper**.
3. Choose **Companies**, **Founders** or **Jobs** under **What to scrape**.
4. Pick filters (batch, industry, region, status...), type a keyword, or paste YC company links.
5. Click **Start**, then download the results as Excel, CSV, JSON or HTML.

### ⬇️ Input

| Setting | What it does |
|---|---|
| **What to scrape** | Companies (one row per company), Founders (one row per founder) or Jobs (one row per open job) |
| **Keyword** | Words to search company names and descriptions for, like `developer tools` |
| **Batches** | YC batches, like `Winter 2025` or `W25`, `S24`, `F25` (Fall), `P26` (Spring) |
| **Industries** and **Sub-industries** | Like `B2B`, `Fintech`, `Healthcare`, or narrower ones like `Payments` and `Infrastructure` |
| **Regions** | Countries or regions, like `United States of America`, `Europe`, `India`, `Remote` |
| **Status** | Active, Acquired, Public or Inactive |
| **Tags** | Topic tags, like `Artificial Intelligence`, `SaaS`, `Developer Tools` |
| **Team size from / to** | Smallest and largest team size |
| **Hiring now**, **Nonprofits only**, **Top companies only** | Narrow the list to these companies |
| **Company or job links** | YC company links (`https://www.ycombinator.com/companies/airbnb`), short names (`airbnb`) or job links |
| **Company details** | Companies only: adds year founded, city, social links, founders, primary partner and open jobs count from each company page |
| **Job roles**, **Job types**, **Job location contains** | Jobs only: keep Engineering, Sales, Design... jobs, Full-time, Internship or Contract, and jobs whose location contains words like `Remote` |
| **Max results** | Most rows to save in the whole run (default 100). Set 0 for no limit |

Every Winter 2025 company:

```json
{
  "dataType": "companies",
  "batches": ["Winter 2025"],
  "maxResults": 0
}
```

Founders of active fintech companies with 1 to 20 people:

```json
{
  "dataType": "founders",
  "industries": ["Fintech"],
  "statuses": ["Active"],
  "teamSizeMin": 1,
  "teamSizeMax": 20,
  "maxResults": 500
}
```

Remote engineering jobs at YC startups:

```json
{
  "dataType": "jobs",
  "jobRoles": ["Engineering"],
  "jobLocation": "Remote",
  "maxResults": 200
}
```

Full profiles of a few companies:

```json
{
  "dataType": "companies",
  "startUrls": ["https://www.ycombinator.com/companies/stripe", "airbnb", "doordash"]
}
```

### ⬆️ Output

Each run saves one kind of row; the `type` field says which. A company with **Company details** on:

```json
{
  "type": "company",
  "id": 240,
  "name": "Stripe",
  "slug": "stripe",
  "url": "https://www.ycombinator.com/companies/stripe",
  "oneLiner": "Economic infrastructure for the internet.",
  "longDescription": "Launched out of Y Combinator’s 2009 Summer batch, Stripe is a global technology company that builds economic infrastructure for the internet...",
  "website": "http://stripe.com",
  "batch": "Summer 2009",
  "status": "Active",
  "stage": "Growth",
  "teamSize": 7000,
  "location": "San Francisco, CA, USA",
  "city": "San Francisco",
  "country": "US",
  "regions": ["United States of America", "America / Canada", "Remote", "Partly Remote"],
  "industry": "Fintech",
  "subindustry": null,
  "industries": ["Fintech"],
  "tags": ["Banking as a Service", "Fintech", "SaaS"],
  "isHiring": true,
  "topCompany": true,
  "nonprofit": false,
  "yearFounded": 2009,
  "launchedAt": "2012-01-17T08:56:24Z",
  "formerNames": [],
  "logoUrl": "https://bookface-images.s3.amazonaws.com/small_logos/e5ccedd9995f6524b4a0379062eb67f7c991613e.png",
  "linkedinUrl": "https://www.linkedin.com/company/stripe/",
  "twitterUrl": "https://twitter.com/stripe",
  "facebookUrl": null,
  "crunchbaseUrl": null,
  "githubUrl": "https://github.com/stripe",
  "primaryPartner": null,
  "founders": [
    {"name": "Patrick Collison", "title": "Founder/CEO", "linkedinUrl": "https://www.linkedin.com/in/patrickcollison/", "twitterUrl": "https://twitter.com/patrickc"},
    {"name": "John Collison", "title": "Founder/President", "linkedinUrl": "https://www.linkedin.com/in/johnbcollison/", "twitterUrl": "https://twitter.com/collision"}
  ],
  "openJobs": 3,
  "source": "https://www.ycombinator.com/companies/stripe",
  "scrapedAt": "2026-10-02T14:37:21Z"
}
```

Without details, a company row has the same fields with `yearFounded`, `city`, `country`, the social links, `primaryPartner`, `founders` and `openJobs` empty.

A founder:

```json
{
  "type": "founder",
  "founderId": 1455159,
  "name": "Hammad Malik",
  "title": "Founder/CEO",
  "bio": "CEO at Uplift AI. Building Voice Models for regional languages...",
  "linkedinUrl": "https://www.linkedin.com/in/hammad2",
  "twitterUrl": null,
  "currentFounder": true,
  "companyId": 30806,
  "companyName": "Uplift AI",
  "companySlug": "uplift-ai",
  "companyUrl": "https://www.ycombinator.com/companies/uplift-ai",
  "companyBatch": "Summer 2025",
  "companyStatus": "Active",
  "companyWebsite": "https://upliftai.org/",
  "source": "directory search: Summer 2025, Active",
  "scrapedAt": "2026-10-02T14:36:53Z"
}
```

A job:

```json
{
  "type": "job",
  "jobId": 15934,
  "title": "Machine Learning Engineer",
  "url": "https://www.ycombinator.com/companies/tempo/jobs/9yHUaZmrv-machine-learning-engineer",
  "location": "San Francisco, CA",
  "jobType": "Full-time",
  "role": "Engineering",
  "specialty": "Machine learning",
  "salaryRange": "$100K - $200K",
  "salaryMin": 100000,
  "salaryMax": 200000,
  "salaryCurrency": "USD",
  "equityRange": "0.10% - 1.00%",
  "experience": "1+ years",
  "visa": "US citizen/visa only",
  "skills": ["C++", "Python", "Machine Learning", "CUDA"],
  "postedAt": "2019-05-31T19:05:51Z",
  "description": "At SmartSpot, you'll be responsible for improving our pipeline for processing 3D data of human exercise...",
  "descriptionHtml": "<p>At SmartSpot, you'll be responsible for improving our pipeline for processing 3D data...",
  "applyUrl": "https://account.ycombinator.com/authenticate?continue=...",
  "companyName": "Tempo",
  "companySlug": "tempo",
  "companyUrl": "https://www.ycombinator.com/companies/tempo",
  "companyBatch": "Winter 2015",
  "companyOneLiner": "Live home fitness training powered by computer vision.",
  "source": "directory search (all companies)",
  "scrapedAt": "2026-10-02T14:46:47Z"
}
```

The **Overview** tab lists every row, and the **Companies**, **Founders** and **Jobs** tabs show each kind as its own table. The run report names any company or job link that does not exist.

### How can I use Y Combinator data?

- **Lead generation:** build lists of YC startups by batch, industry, region and size, with websites and LinkedIn pages
- **Investor and market research:** map a sector across batches, see which companies were acquired, went public or shut down
- **Founder outreach and recruiting:** reach founders through the LinkedIn and X links they publish on their YC page
- **Job search and salary research:** compare salary and equity ranges, visa terms and experience asked across YC startups
- **Competitor tracking:** follow which startups in your space are hiring and how fast their teams grow
- **Datasets for analysis:** every YC company since 2005 with consistent fields, ready for a spreadsheet or a database

### How many results can I get?

All of them. The whole directory (6,268 companies when we tested) comes out in one run; a single filter is never cut short. Founders and jobs runs read the company pages of the companies your filters match, so their size follows the filters: in our tests 554 company pages gave 1,000 founders, and 327 hiring companies gave 1,000 jobs. A company or job found twice in one run is saved once.

### ❓FAQ

#### How much does it cost to scrape Y Combinator?

You pay per row saved: per company, per company with details, per founder or per job. See the **Pricing** tab for the current prices. **Max results** keeps the cost of a run under control, and you can also set a maximum cost per run.

#### Do I get founders' emails or phone numbers?

No. The founders rows hold what Y Combinator publishes on each company page: name, title, bio, and the LinkedIn and X links the founder chose to show. Contact details that are not shown publicly are not collected.

#### What is the difference between a company row with and without details?

Without details, a row comes straight from the directory list and is the fastest and cheapest way to export many companies. With **Company details** on, each company page is read too, adding year founded, city and country, LinkedIn, X, Facebook, Crunchbase and GitHub links, founders, the primary YC partner and the number of open jobs.

#### Which jobs are included?

Open jobs that YC startups list publicly on their Y Combinator company pages. Jobs runs only look at companies that are hiring, and you can keep only some roles, job types or locations.

#### Do I need a Y Combinator account?

No. The scraper reads the public directory, company pages and job pages anyone can see without signing in.

#### What happens with a wrong link or a company that no longer exists?

The run goes on with the other inputs and the run report lists the links that do not exist. A filter value the directory does not know, like a misspelled batch, is named in the error message before the run starts, with the values you can use.

#### Can I call it as an API?

Yes. Run it through the Apify API from any language, or use its real-time endpoints `/companies?batch=W25&q=ai`, `/founders?batch=W25` and `/jobs?role=Engineering` that answer with the rows directly.

#### Is it legal to scrape Y Combinator?

This scraper collects publicly available information. Make sure your use follows applicable laws, including data protection rules when you contact founders, and Y Combinator's terms. This tool is not affiliated with or endorsed by Y Combinator.

#### Something is not working, or I need another field

Open an issue in the **Issues** tab with your input and what you expected. We read every one and usually reply within a day.

#### Did it help?

If Y Combinator Scraper saved you time, we would be grateful if you left a short review on its Store page. It helps other people find it and tells us what to build next.

# Actor input Schema

## `dataType` (type: `string`):

Companies: one row per company. Founders: one row per founder shown on each company page. Jobs: one row per open job at the companies found.

## `search` (type: `string`):

Words to search company names and descriptions for, like "developer tools" or "ai agents". Leave empty to list every company that matches the filters.

## `batches` (type: `array`):

Y Combinator batches, like "Winter 2025", "Summer 2024" or the short form W25, S24, F25 (Fall), P26 (Spring).

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

Main industries to include.

## `subindustries` (type: `array`):

Narrower industries to include, like Payments or Healthcare IT.

## `regions` (type: `array`):

Countries or regions the companies are listed under, like "United States of America", "Europe", "India", "Remote" or "Fully Remote".

## `statuses` (type: `array`):

Company status.

## `tags` (type: `array`):

Topic tags as the directory shows them, like "Artificial Intelligence", "SaaS" or "Developer Tools".

## `teamSizeMin` (type: `integer`):

Smallest team size.

## `teamSizeMax` (type: `integer`):

Largest team size.

## `hiringOnly` (type: `boolean`):

Only companies with open jobs.

## `nonprofitOnly` (type: `boolean`):

Only nonprofit companies.

## `topCompaniesOnly` (type: `boolean`):

Only Y Combinator's top companies.

## `startUrls` (type: `array`):

Y Combinator company links (https://www.ycombinator.com/companies/airbnb), company short names (airbnb) or job links. With filters too, both are scraped.

## `includeDetails` (type: `boolean`):

Companies only: also read each company page for its year founded, city, social links, founders, primary partner and number of open jobs. Company links always include details.

## `jobRoles` (type: `array`):

Jobs only: roles to keep.

## `jobTypes` (type: `array`):

Jobs only: job types to keep.

## `jobLocation` (type: `string`):

Jobs only: keep jobs whose location contains these words, like "Remote", "San Francisco" or "London".

## `maxResults` (type: `integer`):

Most rows to save in the whole run (0 = no limit).

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

The default works for most runs. If results come back empty, try a different proxy option.

## Actor input object example

```json
{
  "dataType": "companies",
  "batches": [
    "Summer 2025"
  ],
  "hiringOnly": false,
  "nonprofitOnly": false,
  "topCompaniesOnly": false,
  "includeDetails": false,
  "maxResults": 20,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

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

No description

## `founders` (type: `string`):

No description

## `jobs` (type: `string`):

No description

## `results` (type: `string`):

No description

## `report` (type: `string`):

No description

# 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 = {
    "dataType": "companies",
    "batches": [
        "Summer 2025"
    ],
    "maxResults": 20,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("automly/ycombinator-scraper").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 = {
    "dataType": "companies",
    "batches": ["Summer 2025"],
    "maxResults": 20,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("automly/ycombinator-scraper").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 '{
  "dataType": "companies",
  "batches": [
    "Summer 2025"
  ],
  "maxResults": 20,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call automly/ycombinator-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,automly/ycombinator-scraper"
        }
    }
}
```

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/CTxbgEJoq37dZZo5L/builds/SgKyf7s1LTFrQoMQf/openapi.json
