# Y Combinator Companies Directory + Startup Jobs Scraper (`arthursbuisness/y-combinator-companies-directory-jobs`) Actor

- **URL**: https://apify.com/arthursbuisness/y-combinator-companies-directory-jobs.md
- **Developed by:** [Arthur](https://apify.com/arthursbuisness) (community)
- **Categories:** Business, Jobs, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.00 / 1,000 company or job rows

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?

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 Companies Directory + Startup Jobs Scraper

The complete **Y Combinator startup directory** (≈6,000 companies since 2005) as a dataset, with the same search and filters as [ycombinator.com/companies](https://www.ycombinator.com/companies) — batch, industry, status, region, tags, hiring, top companies, nonprofits — plus, on request, **founders and social links** per company and **every open job** at companies that are hiring (from the companies' YC jobs pages, the same listings as Work at a Startup).

It reads the directory's own public search index with the public search-only key that the YC website embeds for visitors (fetched fresh each run, never hard-coded) and the public company/jobs pages. No login, no API key, no browser, no proxies.

Typical uses: investor and sales prospecting (who raised what batch, where, hiring or not), competitor and market maps by industry/tag, job hunting at YC startups (salary + equity ranges are shown), founder outreach lists, research datasets, LLM enrichment.

### What you get

One row per company (`type: "company"`):

| field | description |
|---|---|
| `id`, `name`, `slug`, `url`, `website` | YC id, name, directory URL, company website |
| `one_liner`, `long_description` | Tagline and full description |
| `batch`, `status`, `stage` | e.g. `Summer 2025`, `Active` / `Acquired` / `Public` / `Inactive`, `Early` / `Growth` |
| `industry`, `subindustry`, `industries`, `tags` | e.g. `B2B`, `B2B -> Sales`, `["AI", "SaaS"]` |
| `regions`, `all_locations` | e.g. `["United States of America", "America / Canada"]`, `San Francisco, CA, USA` |
| `team_size`, `launched_at`, `is_hiring`, `top_company`, `nonprofit`, `former_names`, `logo_url` | |

With **Include company details** each row also gets: `founders[] {name, title, bio, linkedin_url, twitter_url}`, `linkedin_url`, `twitter_url`, `github_url`, `crunchbase_url`, `facebook_url`, `location`, `city`, `country`, `year_founded`, `primary_partner`, `job_count`.

With **Include open jobs** you get one `type: "job"` row per open position at each hiring company: `title`, `url`, `apply_url`, `company`, `company_slug`, `company_url`, `company_website`, `company_batch`, `company_one_liner`, `company_team_size`, `location`, `remote`, `job_type`, `role`, `role_type`, `salary_range` (e.g. `$140K - $175K`), `equity_range` (e.g. `0.25% - 1.20%`), `min_experience`, `visa`, `skills`, `ask_us`.

If the directory cannot be read (YC changed the page or search is unavailable) the run stores one `type: "error"` row — free.

Export as JSON, CSV or Excel, or push rows to Google Sheets, Make, Zapier, webhooks or your code via the Apify API.

### Input

| field | default | meaning |
|---|---|---|
| `query` | — | free-text search (name, tagline, description, website) |
| `batches` | all | e.g. `["Summer 2025", "Winter 2025"]` |
| `industries` | all | industry or sub-industry names as on the site |
| `statuses` | all | `Active`, `Acquired`, `Public`, `Inactive` |
| `regions` | all | e.g. `["Europe", "United Kingdom"]` |
| `tags` | all | e.g. `["AI", "Developer Tools"]` |
| `isHiring` / `topCompaniesOnly` / `nonprofitOnly` | false | flag filters |
| `includeDetails` | false | founders, socials, year founded (1 request per company) |
| `includeJobs` | false | open jobs for hiring companies (1 request per hiring company) |
| `maxItems` | 1000 | max companies (job rows are extra) |

Example — hiring AI companies from the two latest batches, with founders and jobs:

```json
{
  "batches": ["Summer 2025", "Spring 2025"],
  "tags": ["AI"],
  "isHiring": true,
  "includeDetails": true,
  "includeJobs": true,
  "maxItems": 500
}
```

Whole directory: leave all filters empty and set `maxItems` to 10000 — the actor walks batch by batch to get past the search index's 1,000-hit page limit (≈6,000 rows, a couple of minutes).

### Pricing

Pay per event: **$0.001 per stored row** — a company row or a job row ($1 per 1,000). Only rows actually written to the dataset are charged; error rows are free. Apify platform usage is billed separately by Apify (a full directory run is a few minutes of compute).

### Limitations — please read

- Data is what YC publishes publicly: no funding amounts, valuations, revenue or contact e-mails. `team_size` and `status` are self-reported by companies and can be stale.
- Filter values must match the directory's own labels (`Summer 2025`, not `S25`; `United States of America`, not `US`). Unknown labels simply return 0 companies.
- Jobs come from each company's YC jobs page; job descriptions are not included (only the structured fields listed above and the link). Applying requires a Work at a Startup account, as on the site.
- Details and jobs cost one polite request per company (~2/s): 1,000 companies with both options ≈ 15–20 minutes.
- The public search key rotates; the actor reads it from the page on every run. If YC changes its site the run ends with a free error row instead of bad data.

Not affiliated with Y Combinator. Uses only the public website and the public search index it exposes to every visitor.

# Actor input Schema

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

Free-text search over company name, one-liner, description and website — same search box as ycombinator.com/companies. Leave empty to list every company matching the filters.

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

YC batch names exactly as shown on the site, e.g. 'Summer 2025', 'Winter 2024', 'Spring 2025', 'Fall 2024'. Empty = all batches.

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

Industry or sub-industry names, e.g. 'B2B', 'Fintech', 'Healthcare', 'Consumer', 'Industrials', 'Education', 'Real Estate and Construction', 'Government', or sub-industries like 'Engineering, Product and Design', 'Infrastructure', 'Security'.

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

Company status: Active, Acquired, Public, Inactive. Empty = all.

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

Region names as used by the directory, e.g. 'United States of America', 'Europe', 'United Kingdom', 'India', 'Latin America', 'Remote', 'Canada', 'Southeast Asia', 'Africa'.

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

Company tags such as 'AI', 'SaaS', 'Developer Tools', 'Marketplace', 'Fintech', 'Open Source', 'Climate', 'Hardware'.

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

Keep only companies with the 'Is hiring' flag in the directory.

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

Keep only companies YC lists as top companies by valuation/revenue.

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

Keep only nonprofit companies.

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

Fetch each company's profile page for founders (name, title, bio, LinkedIn/X), LinkedIn/X/GitHub/Crunchbase links, city, country, year founded, YC partner and open-job count. One extra request per company (~2 per second).

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

For every company that is hiring, also store one 'job' row per open position from its YC jobs page (title, location, type, role, salary and equity range, experience, visa sponsorship, skills, apply link). One extra request per hiring company.

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

Stop after this many companies (job rows are extra). The whole directory is about 6,000 companies.

## Actor input object example

```json
{
  "batches": [
    "Summer 2025"
  ],
  "isHiring": false,
  "topCompaniesOnly": false,
  "nonprofitOnly": false,
  "includeDetails": false,
  "includeJobs": false,
  "maxItems": 1000
}
```

# Actor output Schema

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

All items as JSON

## `resultsCsv` (type: `string`):

Same dataset as CSV — open in Excel/Sheets

# 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": [
        "Summer 2025"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("arthursbuisness/y-combinator-companies-directory-jobs").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": ["Summer 2025"],
}

# Run the Actor and wait for it to finish
run = client.actor("arthursbuisness/y-combinator-companies-directory-jobs").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": [
    "Summer 2025"
  ]
}' |
apify call arthursbuisness/y-combinator-companies-directory-jobs --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,arthursbuisness/y-combinator-companies-directory-jobs"
        }
    }
}

```

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/RwkOaBPxcx78um7Pa/builds/gQWEV9byA7g913K4Z/openapi.json
