# YC Startup Directory Scraper — Companies, Founders & Jobs (`leorochasantos/yc-directory-scraper`) Actor

Search, filter, or fully export the Y Combinator startup directory: ~6,000 companies with batch, status, industry, team size, founders (no emails) and open jobs with salary/equity — clean typed JSON at $0.0005 per company.

- **URL**: https://apify.com/leorochasantos/yc-directory-scraper.md
- **Developed by:** [Leonardo Santos](https://apify.com/leorochasantos) (community)
- **Categories:** Business, Jobs, Developer tools
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.33 / 1,000 company records

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/platform/actors/running/actors-in-store#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

## YC Startup Directory Scraper — Companies, Founders & Jobs

Get the **entire Y Combinator startup directory** as clean, typed JSON: every company
with batch, status, industry, team size and tags — plus founders (names, bios,
LinkedIn) and open jobs with salary and equity ranges. Search it, filter it, or export
all ~6,000 companies for about **$3**. No login, no browser, no per-run minimum.

### Why this actor?

- **One actor, the whole directory** — companies, founder profiles, and job postings.
  Most alternatives cover only one of the three.
- **Aggressive pricing** — $0.0005 per company and $0.001 per job, no start fee. The
  field charges $0.001–$0.05 per record plus run fees.
- **No founder emails, ever.** Founder items carry public directory data only (name,
  title, bio, LinkedIn/Twitter). If you need contact harvesting, this is not your tool.
- **Typed, flat, LLM/agent-ready output** — numeric `team_size`, ISO dates, absolute
  URLs, explicit booleans (`is_hiring`, `top_company`, `nonprofit`), classified error
  items instead of junk rows.
- **Fast and cheap to run** — HTTP-only against YC's own public search API and pages,
  256 MB memory, seconds per query. Usage costs stay pennies.
- **Maintained by an automated monitor** that runs contract checks against the live
  actor and flags drift the day it happens — reliability is the product.

### Input

Search + filters (all optional, combine freely):

```json
{
  "search": "fintech",
  "batch": ["W25", "Summer 2024"],
  "industry": ["B2B"],
  "region": ["Europe"],
  "tags": ["AI"],
  "status": ["Active"],
  "hiringOnly": true,
  "maxCompanies": 100,
  "includeDetails": true,
  "includeJobs": true
}
```

Or direct lookup by slug/URL:

```json
{
  "companySlugs": ["airbnb", "https://www.ycombinator.com/companies/stripe"],
  "includeDetails": true
}
```

**Full directory export:** empty `search`, no filters, `maxCompanies: 0` → ~6,000
company records.

Batch short forms are accepted: `W25` = Winter 2025, `S24` = Summer 2024, `F24` =
Fall 2024, `SP25`/`X25` = Spring 2025.

### Output

One item per company (`type: "company"`), one per job (`type: "job"`), and free
classified error items (`type: "error"`).

```json
{
  "type": "company",
  "slug": "airbnb",
  "name": "Airbnb",
  "batch": "Winter 2009",
  "status": "Public",
  "one_liner": "Book accommodations around the world.",
  "website": "http://airbnb.com",
  "yc_url": "https://www.ycombinator.com/companies/airbnb",
  "team_size": 6132,
  "industry": "Consumer",
  "regions": ["America / Canada", "United States of America"],
  "tags": ["Marketplace", "Travel"],
  "is_hiring": false,
  "top_company": true,
  "launched_at": "2012-01-17T08:20:56.000Z",
  "year_founded": 2008,
  "linkedin_url": "https://www.linkedin.com/company/airbnb/",
  "founders": [
    { "name": "Brian Chesky", "title": "CEO", "bio": "…", "linkedin_url": "…", "twitter_url": null }
  ],
  "error": null,
  "scraped_at": "2026-07-19T12:00:00.000Z"
}
```

```json
{
  "type": "job",
  "company_slug": "artifact-2",
  "company_name": "Artifact",
  "title": "Software Engineer",
  "url": "https://www.ycombinator.com/companies/artifact-2/jobs/7189rpl-software-engineer",
  "location": "Los Angeles, CA, US",
  "employment_type": "Full-time",
  "role": "Engineering",
  "salary_range": "$95K - $140K",
  "equity_range": "0.10% - 0.70%",
  "visa": "US citizen/visa only",
  "skills": ["Python", "React", "TypeScript"],
  "error": null,
  "scraped_at": "2026-07-19T12:00:00.000Z"
}
```

### Pricing

| Event | Price |
|---|---|
| Company record | **$0.0005** |
| Job record | **$0.001** |
| Error items | free |

No actor-start fee. A 100-company filtered pull costs $0.05; the full ~6,000-company
directory export costs about $3.

### Use cases

- **Deal sourcing / market maps** — every YC company in a sector, batch, or region as
  one dataset.
- **Recruiting and job search** — live YC startup roles with salary, equity, visa and
  skills, filterable by batch and industry.
- **Sales intelligence** — hiring startups by industry with team size and socials
  (signal, not scraped emails).
- **Research & LLM agents** — typed JSON that drops straight into a RAG index,
  spreadsheet, or agent tool call.

### FAQ

**Where does the data come from?** YC's own public directory
(ycombinator.com/companies) and its public search index — the same data any visitor
sees, fetched politely over plain HTTP.

**Do you return founder emails?** No, and we never will. Public founder profiles only.

**Can results change between runs?** Yes — the directory is live (team sizes, hiring
flags, statuses and new batches change). Each item carries `scraped_at`.

**What about Work at a Startup (workatastartup.com)?** Out of scope for v1; job data
comes from each company's public YC page.

# Actor input Schema

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

Free-text search over the YC directory (company names, descriptions, keywords). Leave empty to list companies by filters only — an empty search with no filters and Max companies = 0 exports the whole ~6,000-company directory.

## `batch` (type: `array`):

YC batches to include, e.g. "Winter 2025" or the short form "W25" (S=Summer, F=Fall, SP/X=Spring). Multiple values are OR-ed.

## `industry` (type: `array`):

Industries as listed on ycombinator.com/companies, e.g. "B2B", "Healthcare", "Fintech", "Consumer". Multiple values are OR-ed.

## `region` (type: `array`):

Regions, e.g. "America / Canada", "Europe", "South Asia", "Remote". Multiple values are OR-ed.

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

Directory tags, e.g. "AI", "SaaS", "Developer Tools". Multiple values are OR-ed.

## `status` (type: `array`):

Company status: Active, Acquired, Public, Inactive. Multiple values are OR-ed.

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

Only companies currently marked as hiring.

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

Only companies on YC's Top Companies list.

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

Only nonprofit companies.

## `companySlugs` (type: `array`):

Look up specific companies by slug or ycombinator.com/companies/... URL (e.g. "airbnb", "stripe"). When set, search and all filters are ignored.

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

Maximum company records to deliver. 0 = no cap (full directory export, ~6,000 companies ≈ $3).

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

Fetch each company's YC page for founders (name, title, bio, LinkedIn/Twitter — never emails), LinkedIn/Twitter/GitHub/Crunchbase links, year founded, and group partner. One extra page fetch per company.

## `includeJobs` (type: `boolean`):

Fetch each company's open roles (title, salary and equity ranges, location, visa, skills) as separate job items ($0.001 each). One extra page fetch per company.

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

Proxy to use for outgoing requests.

## Actor input object example

```json
{
  "search": "fintech",
  "hiringOnly": false,
  "topCompaniesOnly": false,
  "nonprofitOnly": false,
  "maxCompanies": 100,
  "includeDetails": false,
  "includeJobs": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (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 = {
    "search": "fintech"
};

// Run the Actor and wait for it to finish
const run = await client.actor("leorochasantos/yc-directory-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 = { "search": "fintech" }

# Run the Actor and wait for it to finish
run = client.actor("leorochasantos/yc-directory-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "search": "fintech"
}' |
apify call leorochasantos/yc-directory-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=leorochasantos/yc-directory-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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