# Y Combinator Companies Scraper - YC Startup Directory (`fabrikit/ycombinator-companies-scraper`) Actor

Scrape the Y Combinator startup directory: company, website, one-liner, description, batch, status, industries, regions, team size, hiring flag, tags and company social links. Optional open jobs add-on. From US$1.00 per 1,000 companies.

- **URL**: https://apify.com/fabrikit/ycombinator-companies-scraper.md
- **Developed by:** [Fabrikit](https://apify.com/fabrikit) (community)
- **Categories:** Lead generation, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 company scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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 Companies Scraper

Export the Y Combinator startup directory (about 6,300 companies) to JSON, CSV or Excel: company name, website, one-liner, long description, batch, status, industries, regions, team size, hiring flag, tags and the company's own social links. Optionally add every company's **open job postings**.

Filter by batch, industry, region, team size, hiring status, company status (active / acquired / public / inactive), tags and free-text search. No login, no API key.

### What you get

| Field | Example |
|---|---|
| `name`, `slug`, `url` | `DoorDash`, `doordash`, `https://www.ycombinator.com/companies/doordash` |
| `website`, `logo` | company website and logo URL |
| `oneLiner`, `longDescription` | short pitch and full description |
| `batch`, `status`, `stage` | `Summer 2013`, `Public`, `Growth` |
| `industry`, `industries`, `subindustry`, `tags` | `Consumer`, `["Consumer","Food and Beverage"]`, `["Marketplace"]` |
| `regions`, `locations`, `city`, `country` | `["United States of America"]`, `San Francisco, CA, USA` |
| `teamSize`, `launchedYear`, `foundedYear` | `8600`, `2013`, `2013` |
| `isHiring`, `topCompany`, `nonprofit` | booleans |
| `linkedinUrl`, `twitterUrl`, `facebookUrl`, `crunchbaseUrl`, `githubUrl` | the company's own pages |
| `jobsCount`, `jobs[]` | with the jobs add-on: title, location, type, role, salary range, equity range, experience, visa, URL |

Company data only: founders and other people are never collected.

### Input examples

AI companies from the last two batches that are hiring, with their open jobs:

```json
{ "batches": ["Summer 2026", "Winter 2026"], "tags": ["AI"], "hiring": "yes", "includeJobs": true, "maxItems": 200 }
```

Fintech startups with 10 to 100 people:

```json
{ "industries": ["Fintech"], "teamSizeMin": 10, "teamSizeMax": 100, "maxItems": 500 }
```

The whole directory, fast (no company pages, so social links are empty):

```json
{ "fetchCompanyPage": false, "maxItems": 20000 }
```

### Output example

```json
{
  "id": "531",
  "name": "DoorDash",
  "url": "https://www.ycombinator.com/companies/doordash",
  "website": "http://doordash.com",
  "oneLiner": "Restaurant delivery.",
  "batch": "Summer 2013",
  "status": "Public",
  "industries": ["Consumer", "Food and Beverage"],
  "teamSize": 8600,
  "isHiring": true,
  "tags": ["Marketplace", "E-commerce"],
  "linkedinUrl": "https://www.linkedin.com/company/doordash/",
  "twitterUrl": "http://twitter.com/doordash",
  "jobsCount": null,
  "jobs": null
}
```

### Pricing (pay per event)

| Event | Price |
|---|---|
| `company-result` - one company saved | **US$1.00 per 1,000** |
| `jobs-addon` - one company enriched with its open jobs (only if `includeJobs` is on) | **US$0.50 per 1,000 companies** |

Plus a tiny run-start fee. Set a maximum cost per run in the Apify console and the Actor stops cleanly at that limit.

### FAQ

**How fresh is the data?** It is read live from the directory on every run.

**Can I get more than 1,000 companies in one run?** Yes. Large result sets are split by batch automatically and de-duplicated.

**Does it include founders or their contact details?** No. Only company-level data.

**Why are some social links empty?** Not every company lists them, or `fetchCompanyPage` is off.

**A filter returns 0 companies.** Names must match the directory: batches like `Winter 2025`, industries like `B2B` or `Fintech`, regions like `Europe`. The run log says how many companies matched.

### Use cases

Lead lists of funded startups by niche, market maps, investor and recruiter sourcing (hiring flag plus open jobs), tracking new batches, competitor monitoring.

### En espanol

Exporta el directorio de startups de Y Combinator (unas 6.300 empresas): nombre, web, descripcion, batch, estado, industrias, regiones, tamano del equipo, si estan contratando, etiquetas y redes sociales de la empresa. Opcionalmente suma las ofertas de empleo abiertas. Filtros por batch, industria, region, tamano, estado y texto. Solo datos de empresas, nunca de personas. Desde US$1 por 1.000 empresas.

# Actor input Schema

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

Free-text search over company name, one-liner, description and tags (e.g. `payments`, `LLM`, `climate`). Leave empty to list everything.

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

YC batches such as `Winter 2025`, `Summer 2024`. Several values are OR-ed. Leave empty for all batches.

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

Industry or sub-industry names as shown in the directory: `B2B`, `Fintech`, `Healthcare`, `Consumer`, `Industrials`, `Infrastructure`, `Engineering, Product and Design`, `Real Estate and Construction`, `Education`, `Government`... OR-ed.

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

Region facets from the directory: `United States of America`, `America / Canada`, `Europe`, `United Kingdom`, `South Asia`, `Remote`, `Partly Remote`, `Fully Remote`... OR-ed.

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

Directory tags such as `SaaS`, `AI`, `Developer Tools`, `Marketplace`, `Generative AI`. A company must have every tag listed.

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

Any of `Active`, `Acquired`, `Public`, `Inactive`. Leave empty for all.

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

Only companies with at least this many people.

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

Only companies with at most this many people.

## `hiring` (type: `string`):

Filter by the directory's `Is hiring` flag.

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

Only the companies YC flags as `Top company`.

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

Only nonprofit companies.

## `sort` (type: `string`):

`relevance` is the directory default. `newest` orders by launch date, newest first. Result sets over 1,000 companies are read batch by batch (newest batch first).

## `fetchCompanyPage` (type: `boolean`):

Open each company's YC page (1 extra request per company) to add the company's social links, founding year, city and country. Turn off for the fastest run; those fields are then null.

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

Adds the company's open job postings (title, location, type, role, salary and equity range, experience, visa, URL). Billed with the separate `jobs-addon` event per company.

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

Stop after this many companies. The whole directory is about 6,300 companies.

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

Apify datacenter proxy by default; the Actor switches to residential proxies by itself if it gets blocked.

## Actor input object example

```json
{
  "query": "",
  "batches": [],
  "industries": [],
  "regions": [],
  "tags": [],
  "statuses": [],
  "hiring": "any",
  "topCompaniesOnly": false,
  "nonprofitOnly": false,
  "sort": "relevance",
  "fetchCompanyPage": true,
  "includeJobs": false,
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

All records collected during the run

# 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 = {
    "query": "",
    "batches": [],
    "industries": [],
    "regions": [],
    "tags": [],
    "statuses": [],
    "maxItems": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("fabrikit/ycombinator-companies-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 = {
    "query": "",
    "batches": [],
    "industries": [],
    "regions": [],
    "tags": [],
    "statuses": [],
    "maxItems": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("fabrikit/ycombinator-companies-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 '{
  "query": "",
  "batches": [],
  "industries": [],
  "regions": [],
  "tags": [],
  "statuses": [],
  "maxItems": 50
}' |
apify call fabrikit/ycombinator-companies-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,fabrikit/ycombinator-companies-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/w6E4ipKOpELWSuBlW/builds/dgnWmfeYodXcRMkXs/openapi.json
