# Y Combinator Scraper (`insights_data/y-combinator-scraper`) Actor

Turn Y Combinator's public directory into investor-grade data. Extract company profiles, founders, open roles, press, and Launch YC posts—filter by batch or scrape the full catalog. Built for lead gen, recruiting, and deal sourcing. Export ready: JSON, CSV, Excel.

- **URL**: https://apify.com/insights\_data/y-combinator-scraper.md
- **Developed by:** [Insights Data](https://apify.com/insights_data) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $8.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

### What does Y Combinator Scraper do?

This **Y Combinator scraper** turns the public [YC startup directory](https://www.ycombinator.com/companies) into clean, structured **YC companies data** you can export, schedule, and reuse. Paste a filtered directory URL, a single company profile, or collect the full catalog — then pull company profiles, founders, open jobs, press mentions, and **Launch YC** posts in one run. ✅

As a **YC companies scraper** and **Y Combinator directory scraper**, it helps you **extract YC company data** without coding: sales teams doing **startup lead generation**, investors building pipelines, recruiters tracking hiring startups, and analysts maintaining a living **startup database**.

Open it in [Apify Console](https://console.apify.com), paste a URL, hit **Start** — results stream into your dataset as they arrive.

#### ✨ What can this YC scraper do?

- 🔗 **Flexible bulk input** — mix directory search URLs and company profile URLs in one list with this **YC scraper**
- 🎛️ **Choose what to include** — founders, open jobs, news, and Launch YC posts, each on its own toggle
- 🎯 **Refine your list** — team size range, launch date window, newest-first sort, or max company cap
- 🌍 **Full directory mode** — collect thousands of **YC-backed startups** / **YC portfolio companies** when you need the complete picture
- 📊 **Five tidy output views** — Overview · Founders · Open Jobs · News · Launch Posts
- ⚡ **Live results** — watch companies land in Output while the run is still going
- 🧩 **Apify platform powers** — scheduling, monitoring, API access, webhooks, and 1,000+ integrations

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

| 🗂️ Section | 📌 What you get |
|---|---|
| 🏢 Company profile | Name, descriptions, batch, industry & sub-industry, stage, status, tags, regions, year founded, team size, location, website, socials, partner, hiring flag |
| 🧑‍💼 Founders | Name, title, bio, email-availability flag, LinkedIn, X — **founder contact data** for research and outreach prep |
| 💼 Open jobs | Title, description, location, remote, type, role, salary, equity, skills, experience, visa — a built-in **startup job listings scraper** for **YC job postings** |
| 📰 News & press | Title, URL, date |
| 🎉 Launch YC posts | Title, tagline, URL, date, upvotes, optional full body text |

### 🌟 Why scrape the YC startup directory?

The **YC startup directory** is one of the richest public maps of early-stage companies. A dedicated **Y Combinator startups scraper** helps you:

- 📈 Build ICP lists of **YC-backed startups** by batch, industry, or team size for **B2B lead generation** and **sales prospecting**
- 💼 Monitor fresh **YC batch data** for **venture capital data** workflows and **deal sourcing**
- 🧭 Map industries and regions for **startup market research** and **competitive intelligence**
- 🧑‍💻 Find hiring companies and roles with focused **YC job postings** for recruiting pipelines
- 🚀 Archive **Launch YC** activity to see how startups position products over time

### 🚀 How to scrape Y Combinator companies

1. Open **Y Combinator Scraper** in [Apify Console](https://console.apify.com)
2. Paste one or more YC directory or company URLs into **YC Directory URLs** — or turn on **Scrape All Companies**
3. Toggle Founders / Open Jobs / News / Launch Posts as needed
4. Set **Maximum Companies** (default `10`) for a safe first run
5. Click **Start** and follow live progress in the log
6. Open **Output**, pick a view, and export JSON / CSV / Excel / HTML / XML — or pull via API

💡 Tip: apply filters on [ycombinator.com/companies](https://www.ycombinator.com/companies) (batch, industry, region, hiring), copy the address bar URL, and paste it here — this **Y Combinator companies scraper** follows that filtered list.

### 📥 Input

Simple JSON — no coding required:

```json
{
    "startUrls": [
        { "url": "https://www.ycombinator.com/companies?batch=Summer%202026" },
        { "url": "https://www.ycombinator.com/companies/airbnb" }
    ],
    "scrapeFounders": true,
    "scrapeOpenJobs": false,
    "scrapeNews": true,
    "scrapeLaunchPosts": true,
    "maxCompanies": 10,
    "scrapeAllCompanies": false
}
```

| Field | Description |
|---|---|
| 🔍 `startUrls` | Directory search URLs and/or company profile URLs. Not required if `scrapeAllCompanies` is on. |
| 💯 `maxCompanies` | Stop after N companies. Default `10`. Ignored in full-directory mode. |
| 🧑‍💼 `scrapeFounders` | Include founders (**YC founders scraper** mode). Default `true`. |
| 💼 `scrapeOpenJobs` | Include full open-job details. Default `false`. |
| 📰 `scrapeNews` | Include press mentions. Default `true`. |
| 🎉 `scrapeLaunchPosts` | Include Launch YC posts. Default `true`. |
| 📝 `includeLaunchBody` | Include full Launch YC post text. Default `false`. |
| 🚀 `scrapeAllCompanies` | Collect the entire directory. Default `false`. |
| 🕒 `sortByLaunchDate` | Newest launch first. Default `false`. |
| 👥 `teamSizeMin` / `teamSizeMax` | Team size filter. |
| 📅 `launchedAfter` / `launchedBefore` | Launch date range (`YYYY-MM-DD`). |

See the **Input** tab for every option with helpful defaults.

### 📤 Output

Every company becomes one dataset item — ready for CRM import, spreadsheets, or your own **startup database** / **YC alumni dataset**:

```json
{
    "url": "https://www.ycombinator.com/companies/example",
    "company_id": 12345,
    "company_name": "Example Inc.",
    "company_image": "https://bookface-images.s3.amazonaws.com/small_logos/example.png",
    "short_description": "One-line pitch",
    "long_description": "Longer description...",
    "batch": "Summer 2026",
    "industry": "B2B",
    "subindustry": "Developer Tools",
    "stage": "Early",
    "status": "Active",
    "tags": ["Artificial Intelligence", "Developer Tools"],
    "regions": ["United States of America", "America / Canada"],
    "website": "https://example.com/",
    "year_founded": "2026",
    "team_size": "4",
    "company_location": "San Francisco",
    "company_country": "US",
    "company_linkedin": null,
    "company_x": "https://x.com/example",
    "primary_partner": "Jane Doe",
    "top_company": false,
    "is_hiring": true,
    "number_of_open_jobs": 1,
    "open_jobs": null,
    "news": null,
    "launch_posts": [
        { "title": "Example Inc. Launch", "tagline": "...", "url": "...", "date": "2026-06-01T00:00:00.000Z", "upvotes": 10 }
    ],
    "founders": [
        {
            "id": 1,
            "name": "Jane Founder",
            "title": "Founder/CEO",
            "bio": "...",
            "emails": { "available": true, "email": null, "status": null },
            "linkedin": "https://www.linkedin.com/in/example/",
            "x": null
        }
    ]
}
```

> ℹ️ **Founder emails:** YC public pages only show whether an email is on file (`emails.available`). Addresses are not exposed. Pair LinkedIn / X with your own enrichment if you need verified emails.

#### 🗂️ Output views

| View | Shows |
|---|---|
| 🏢 **Overview** | Full company record |
| 🧑‍💼 **Founders** | Founder-focused columns |
| 💼 **Open Jobs** | Job listings (when enabled) |
| 📰 **News & Press** | Press mentions |
| 🎉 **Launch Posts** | Launch YC posts |

### 🤖 Use via API (Y Combinator API style)

Call the Actor like a lightweight **Y Combinator API** and get dataset items back:

```bash
curl -X POST "https://api.apify.com/v2/acts/<YOUR_USERNAME>~y-combinator-scraper/run-sync-get-dataset-items" \
     -H "Authorization: Bearer $APIFY_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "startUrls": [{ "url": "https://www.ycombinator.com/companies?batch=Summer%202026" }],
           "scrapeFounders": true
         }'
```

Prefer one view? Append `?view=founders` (or `jobs`, `news`, `launches`, `overview`) to the dataset items URL. Schedule runs, connect Zapier / Make / n8n, or pipe results into agents via [Apify MCP](https://docs.apify.com/platform/integrations/mcp).

### 🎯 Best use cases for this startup data scraper

- 🧲 **Startup lead generation & B2B lead generation** — filter by batch, industry, or team size; export to CRM for **sales prospecting**
- 🧑‍💼 **YC founders scraper workflows** — names, titles, bios, LinkedIn / X for founder outreach research
- 🏦 **Venture capital data & deal sourcing** — watch new batches and flag companies for deeper diligence
- 📊 **Startup market research** — industry, sub-industry, team-size, and regional trends across **YC batch data**
- 🕵️ **Competitive intelligence** — track peers by batch, tags, and Launch YC momentum
- 🧑‍💻 **Recruiting** — surface hiring **YC portfolio companies** and detailed **YC job postings**

### 🔗 Integrations & related Actors

This **Y Combinator directory scraper** works with Apify’s API, schedules, webhooks, and popular destinations (Sheets, Slack, HubSpot, warehouses, and more).

| Actor | What it helps with |
|---|---|
| [Google Ads Transparency Center Scraper & API](https://apify.com) | Competitor ad creatives and brand ad tracking across Google surfaces |

Need a custom pipeline (enrichment, CRM sync, or a private **YC alumni dataset** feed)? Email **hello.insights.data@gmail.com**.

### ❓ FAQ

#### Can I scrape every company in a YC batch?

Yes. Paste a directory URL like `?batch=Summer%202026`, or enable newest-first sorting for fresh **YC batch data**.

#### Can I scrape just one company?

Yes. Put its profile URL (e.g. `https://www.ycombinator.com/companies/airbnb`) in `startUrls`.

#### Is this good for startup lead generation?

Yes. Many teams use this **startup data scraper** as a **lead generation** source for **YC-backed startups**, then enrich websites or founder profiles downstream.

#### Does it include a founder email finder?

No. It reports exactly what YC publishes (`emails.available`). Use your own enrichment for verified addresses.

#### Why is `open_jobs` null when `number_of_open_jobs` is greater than 0?

Turn on `scrapeOpenJobs` to fetch full listings; otherwise only the count is included.

#### Can I get results in Python or JavaScript?

Yes. Use the Apify API / SDKs to pull **YC companies data** into Python, Node.js, or any HTTP client — the same pattern as calling a lightweight **Y Combinator API**.

#### Is scraping Y Combinator allowed for research?

This Actor collects only publicly available directory and profile pages. Use the data responsibly and in line with Y Combinator’s terms and applicable laws. For compliance questions on a custom deployment, contact **hello.insights.data@gmail.com**.

### 🛟 Support & custom solutions

Bugs or feature ideas? Open an issue on this Actor’s **Issues** tab in Apify Console.

For custom scrapers, private enrichment, scheduled **startup database** syncs, or enterprise exports of **YC companies data**, email **hello.insights.data@gmail.com** — we build tailored solutions on top of this Actor.

***

*Data is collected only from Y Combinator’s publicly available directory and company pages. Intended for legitimate startup market research, competitive intelligence, recruiting, and B2B lead generation.*

# Actor input Schema

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

One or more Y Combinator URLs to scrape. Two kinds are supported, and you can mix both in the same list:

- 🗂️ **A directory search URL**, e.g. `https://www.ycombinator.com/companies?batch=Summer%202026` — go to the [YC directory](https://www.ycombinator.com/companies), apply filters, copy the address bar URL, paste it here.
- 🏢 **A single company's profile URL**, e.g. `https://www.ycombinator.com/companies/airbnb` — scrapes just that company.

⚠️ Not required if 🚀 **Scrape All Companies** below is turned on.

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

Stop after collecting this many companies. Increase this for larger runs, or turn on 🚀 Scrape All Companies for the full directory.

## `scrapeFounders` (type: `boolean`):

Include each company's founders — name, title, bio, email availability, LinkedIn and X (Twitter).

## `scrapeOpenJobs` (type: `boolean`):

Include full open-job details — title, description, location, salary, equity, skills, visa. Off by default because it fetches one extra page per job.

## `scrapeNews` (type: `boolean`):

Include press/media mentions found on the company's profile — free to collect, no extra requests.

## `scrapeLaunchPosts` (type: `boolean`):

Include the company's Launch YC posts (title, tagline, URL, date, upvotes) — free to collect, no extra requests.

## `includeLaunchBody` (type: `boolean`):

Also include the full text of each Launch YC post. Off by default since it can be long. Only applies when 🎉 Scrape Launch YC Posts is on.

## `sortByLaunchDate` (type: `boolean`):

Order results by launch date instead of relevance.

## `launchedAfter` (type: `string`):

Only include companies launched on or after this date.

## `launchedBefore` (type: `string`):

Only include companies launched on or before this date.

## `scrapeAllCompanies` (type: `boolean`):

Scrape every company in the directory, ignoring 🔍 YC Directory URLs and 💯 Maximum Companies above. This can take a long time and produce a very large dataset.

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

Only include companies with at least this many team members.

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

Only include companies with at most this many team members.

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

Apify Proxy powers the 🟡 Datacenter and 🔴 Residential fallback tiers. Requests still start 🟢 Direct (no proxy) for maximum speed — proxies only kick in automatically if Y Combinator blocks a request.

## `concurrency` (type: `integer`):

How many companies to scrape in parallel.

## `maxRetries` (type: `integer`):

How many times to retry a blocked or failed request on the Residential proxy tier before giving up on it.

## `requestDelay` (type: `number`):

Polite random delay added between requests to reduce the chance of being blocked. 0 = as fast as possible.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.ycombinator.com/companies?batch=Summer%202026"
    }
  ],
  "maxCompanies": 10,
  "scrapeFounders": true,
  "scrapeOpenJobs": false,
  "scrapeNews": true,
  "scrapeLaunchPosts": true,
  "includeLaunchBody": false,
  "sortByLaunchDate": false,
  "scrapeAllCompanies": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "concurrency": 5,
  "maxRetries": 3,
  "requestDelay": 0
}
```

# Actor output Schema

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

All scraped companies, one row each.

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

Company rows focused on founder details.

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

Company rows focused on open job listings.

## `news` (type: `string`):

Company rows focused on press/media mentions.

## `launches` (type: `string`):

Company rows focused on Launch YC posts.

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

The complete, unfiltered dataset items as JSON.

## `runSummary` (type: `string`):

Quick counts for this run (companies, founders, jobs, news, launch posts).

# 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 = {
    "startUrls": [
        {
            "url": "https://www.ycombinator.com/companies?batch=Summer%202026"
        }
    ],
    "maxCompanies": 10,
    "scrapeFounders": true,
    "scrapeOpenJobs": false,
    "scrapeNews": true,
    "scrapeLaunchPosts": true,
    "includeLaunchBody": false,
    "sortByLaunchDate": false,
    "scrapeAllCompanies": false,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("insights_data/y-combinator-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 = {
    "startUrls": [{ "url": "https://www.ycombinator.com/companies?batch=Summer%202026" }],
    "maxCompanies": 10,
    "scrapeFounders": True,
    "scrapeOpenJobs": False,
    "scrapeNews": True,
    "scrapeLaunchPosts": True,
    "includeLaunchBody": False,
    "sortByLaunchDate": False,
    "scrapeAllCompanies": False,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("insights_data/y-combinator-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 '{
  "startUrls": [
    {
      "url": "https://www.ycombinator.com/companies?batch=Summer%202026"
    }
  ],
  "maxCompanies": 10,
  "scrapeFounders": true,
  "scrapeOpenJobs": false,
  "scrapeNews": true,
  "scrapeLaunchPosts": true,
  "includeLaunchBody": false,
  "sortByLaunchDate": false,
  "scrapeAllCompanies": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call insights_data/y-combinator-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,insights_data/y-combinator-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/Re7ZZKVTQd7lK4wVJ/builds/wiEOBxJiBU9HBjO8N/openapi.json
