# Y Combinator Scraper (`fabri.ce/y-combinator-scraper`) Actor

Extract Y Combinator companies, founders, open jobs, and Launch YC posts from the public YC directory. Native filters or a pasted directory URL, no browser, CRM-ready output.

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

## Pricing

from $2.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
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?

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

## 🚀 Y Combinator Scraper

Extract public Y Combinator directory data from native filters or a pasted directory URL. Get clean, structured companies, founders, open jobs, and Launch YC posts for lead generation, founder outreach, recruiting, and startup market research.

The [YC directory](https://www.ycombinator.com/companies/) lists 6,200+ funded startups with rich public detail—batch, industry, team size, location, YC partner, social links, hiring status, founders, and job openings—but reviewing them one by one does not scale. This Actor works through the directory for you and returns clean, normalized records ready to export. No login, YC account, browser extension, or manual copying required.

### 🎯 Who uses it?

#### 📇 Sales and lead-generation teams

Build targeted lists of startups by batch, industry, region, or hiring status, with founder names and LinkedIn profiles for outreach.

#### 🧑‍💼 Recruiters and talent teams

Track which YC companies are hiring, pull full job descriptions with salary, equity, visa, and skills, and reach the hiring manager.

#### 📈 VCs and market researchers

Monitor new batches, map categories and trends across the portfolio, and analyze team sizes, stages, and locations.

#### 🗂️ Data analysts and journalists

Build exportable datasets about YC companies, founders, launches, and hiring across every batch since 2005.

### ✨ What it does

- **Native filters:** Select companies by batch, industry, region, tag, keyword, hiring status, top-company, or non-profit—no URL needed.
- **Directory URL:** Paste a link from the YC directory address bar (including `/companies/industry/...`) to reuse filters you set on the site.
- **Founder detail:** Fetches every company profile for founders, YC partner, location, year founded, social links, photos, and videos.
- **Open jobs:** Optionally attach each open role with full description, interview process, location, remote flag, salary, equity, experience, visa, skills, and hiring manager.
- **Launch YC posts and news:** Optionally attach launch posts with full body text and press mentions.
- **Handles any size:** collect a single batch or the entire directory in one run — you never manage pages or limits by hand.
- **CRM-ready layout:** Choose one row per company (founders and jobs nested) or one row per founder (company flattened onto every contact).

### 📦 What data you get

Each record exposes the public fields YC provides at collection time. Key fields include:

| Entity | Useful data |
| --- | --- |
| Company | Name, YC profile URL, website, tagline and full description, batch, industry, sub-industry, tags, stage, status, team size, year founded, top-company and non-profit flags, location, city, country, regions, YC partner, hiring status, open-job count, LinkedIn, X, GitHub, Crunchbase, Facebook, logo, photos, demo-day and product videos, former names, launch date. |
| Founders | Name, title, bio, LinkedIn, X, avatar, YC founder ID. |
| Open jobs | Title, role, type, location, remote flag, salary range, equity range, experience, minimum school year, visa, skills, full description, interview process, hiring manager, posting age, job URL, apply URL. |
| Launch YC posts | Title, tagline, full body, URL, date. |
| News | Title, URL, date. |

Every record includes `scraped_at`, the UTC time it was collected, and `source` (`listing` or `profile`). Download your Dataset from Apify as CSV, JSON, Excel, or XML.

### 💡 Use cases

#### 📇 Build a lead list for the latest batch

Filter to a batch and companies that are hiring, then take founders for outreach.

```json
{
  "searchMode": "filters",
  "batches": ["Summer 2026"],
  "isHiring": true,
  "maxItems": 500,
  "scrapeFounders": true
}
```

#### 🧑‍💼 Pull every open engineering role in a batch

Attach jobs with full descriptions and export one row per founder for your CRM.

```json
{
  "searchMode": "filters",
  "batches": ["Winter 2025"],
  "scrapeJobs": true,
  "outputMode": "founder"
}
```

#### 📈 Snapshot an industry across all batches

Leave the batch empty and filter by industry; the Actor shards the directory automatically.

```json
{
  "searchMode": "filters",
  "industries": ["Healthcare"],
  "maxItems": 2000,
  "scrapeFounders": true
}
```

#### 🔗 Reuse a filter you built on the site

```json
{
  "searchMode": "url",
  "directoryUrl": "https://www.ycombinator.com/companies?batch=Summer%202026&isHiring=true",
  "maxItems": 250
}
```

### ⚙️ Quick setup

Set **`searchMode`** and fill in **one** block—`filters` or `directoryUrl`. The unused block is ignored.

- **How to select companies:** `filters` builds the search from the fields below; `url` reads them from a pasted directory link.
- **Filters:** `batches`, `industries`, `regions`, `tags`, `query`, `isHiring`, `topCompany`, `nonprofit`. Leave all empty to take the whole directory (~6,200 companies).
- **Maximum companies:** Total company ceiling for the run, helping control run size and cost. Free Apify plan is capped at 10.
- **Row layout:** One row per company, or one row per founder for direct CRM import.
- **Enrichment:** `scrapeFounders` (on by default), `scrapeJobs`, `scrapeLaunches`, `scrapeNews`. Turn them all off for the fastest, listing-only run.
- **Concurrent profile requests:** Parallelism when fetching company profiles (default 20).

Pagination, batch sharding, asset-version handling, retries, and deduplication are handled automatically. You do not need to configure them.

### 🛡️ Limits and responsible use

This Actor collects only publicly available information from the Y Combinator directory. It never signs in and never touches private, internal, or paywalled pages.

Founder **email addresses** are not published by Y Combinator and are not part of this Actor's output. Founder and job data are personal data — use them in line with the YC site terms and applicable law (GDPR/CCPA).

Y Combinator may rate-limit heavy traffic. The Actor paces itself, retries temporary errors, and stops at the limits you set. If one company's page can't be loaded, its row is still saved with the directory data plus an `error` field. Site protections are never bypassed.

### 🧪 Local development

```powershell
bun install
bun test
bun run typecheck
apify run
```

Local results are stored in `storage/datasets/default`.

# Actor input Schema

## `searchMode` (type: `string`):

Pick one. **Use filters** builds the search from the fields below. **Paste a directory link** reuses the filters from a URL you copied from the YC directory. Whichever one you don't pick is ignored.

## `directoryUrl` (type: `string`):

Only used if you picked "Paste a directory link" above. Open https://www.ycombinator.com/companies, choose your filters there, then copy the whole link from your browser's address bar and paste it here. Industry pages like https://www.ycombinator.com/companies/industry/artificial-intelligence also work.

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

One or more YC batches, written exactly like the site shows them: "Summer 2026", "Winter 2025", "Spring 2025". Leave empty to include every batch.

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

Keep only companies in these industries, e.g. "B2B", "Consumer", "Healthcare", "Fintech", "Education".

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

Keep only companies operating in these regions, e.g. "United States of America", "Europe", "India", "Latin America".

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

Keep only companies with these topic tags, e.g. "Artificial Intelligence", "Developer Tools", "Climate", "Fintech".

## `query` (type: `string`):

Optional. Only keep companies whose name or description mentions this word or phrase.

## `isHiring` (type: `boolean`):

Keep only companies with at least one open role.

## `topCompany` (type: `boolean`):

Keep only companies YC marks as top companies.

## `nonprofit` (type: `boolean`):

Keep only nonprofit organizations.

## `maxItems` (type: `integer`):

Stop after this many companies. Leave empty to get all of them. Note: the Apify Free plan is always limited to 10.

## `outputMode` (type: `string`):

**One row per company** puts founders and jobs inside each company row. **One row per founder** repeats the company details on every founder, so the file is ready to import straight into a CRM as contacts.

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

Opens each company's YC page to add founders, YC partner, exact location, year founded, all social links, photos, and videos. Turn this off (and the options below) for the quickest run with only the basics.

## `scrapeJobs` (type: `boolean`):

Add every open role for each company: title, location, remote, salary, equity, required experience, visa, skills, the full job description, and the hiring manager.

## `scrapeLaunches` (type: `boolean`):

Add the company's Launch YC announcements, including the full post text.

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

Add the press mentions listed on the company's YC page (title, link, date).

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

Higher is faster but more likely to be rate-limited by YC. Lower it if you see "didn't respond" warnings.

## Actor input object example

```json
{
  "searchMode": "filters",
  "directoryUrl": "https://www.ycombinator.com/companies?batch=Summer%202026&isHiring=true",
  "batches": [
    "Summer 2026",
    "Winter 2025"
  ],
  "industries": [
    "B2B",
    "Healthcare"
  ],
  "regions": [
    "United States of America"
  ],
  "tags": [
    "Artificial Intelligence"
  ],
  "maxItems": 10,
  "outputMode": "company",
  "scrapeFounders": true,
  "concurrency": 20
}
```

# Actor output Schema

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

One row per company, or one row per founder when that layout is selected.

# 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 = {
    "searchMode": "filters",
    "directoryUrl": "https://www.ycombinator.com/companies?batch=Summer%202026&isHiring=true",
    "maxItems": 10,
    "outputMode": "company",
    "scrapeFounders": true,
    "scrapeJobs": false,
    "scrapeLaunches": false,
    "scrapeNews": false,
    "concurrency": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("fabri.ce/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 = {
    "searchMode": "filters",
    "directoryUrl": "https://www.ycombinator.com/companies?batch=Summer%202026&isHiring=true",
    "maxItems": 10,
    "outputMode": "company",
    "scrapeFounders": True,
    "scrapeJobs": False,
    "scrapeLaunches": False,
    "scrapeNews": False,
    "concurrency": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("fabri.ce/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 '{
  "searchMode": "filters",
  "directoryUrl": "https://www.ycombinator.com/companies?batch=Summer%202026&isHiring=true",
  "maxItems": 10,
  "outputMode": "company",
  "scrapeFounders": true,
  "scrapeJobs": false,
  "scrapeLaunches": false,
  "scrapeNews": false,
  "concurrency": 20
}' |
apify call fabri.ce/y-combinator-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,fabri.ce/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/TVMAUqnGf8xZRsHWU/builds/Vw6fsdJEIUjFczRD1/openapi.json
