# 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)
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.50 / 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.
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?

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

### 🚀 What is Y Combinator Scraper?

**Y Combinator Scraper** helps sales teams, investors and recruiters with B2B lead generation, deal sourcing and startup recruiting, using the public [YC startup directory](https://www.ycombinator.com/companies). It extracts company profiles, founders, open jobs, press mentions and Launch YC posts, so you can build a clean YC companies list. Paste a directory search URL or a company profile URL (or switch on **Scrape All Companies**), click **Start**, and get one row per company. You can try it on the Apify Free plan, which includes $5 of monthly credit.

You don't need to write or maintain your own ycombinator scraper script: the Actor runs in the cloud and saves the data you see on each company page as structured rows, ready to export.

- 🤝 **Sales prospecting and B2B lead generation:** build target lists of YC backed startups by batch, industry, region or team size, with founder names, titles and LinkedIn profiles.
- 💰 **Deal sourcing and startup scouting:** follow new batches and recently launched YC portfolio companies, and sort the matches by launch date.
- 💼 **Startup recruiting:** find companies with open roles and pull job details such as salary, equity, skills, visa and location.
- 🆚 **Competitor analysis:** list the YC companies in your industry or tag, with their descriptions, stage, team size, website and Launch YC posts.
- 🗺️ **Startup market research:** map industries, regions, stages and statuses (Active, Acquired, Inactive) across the directory.
- 📰 **Media monitoring:** collect press mentions and Launch YC posts with dates and upvotes.

#### What can Y Combinator Scraper do?

- 🔍 **Scrape YC companies** from directory search URLs, single company profile URLs, or the whole directory, and mix both URL kinds in one list
- 🎯 **Filter results** with the filters in your directory URL (search text, batch, industry, sub-industry, tags, region, stage, status, Top Companies, hiring, nonprofit), plus team size and launch date ranges
- 👤 **Choose what to collect:** founders, full open-job details, news and press mentions, Launch YC posts, and the full Launch post text
- ⚡ **Live results:** each company is saved to the dataset as soon as it is done
- 📦 **Export** to JSON, CSV, Excel, XML, or HTML, with five ready-made views: Overview, Founders, Open Jobs, News & Press, and Launch Posts
- 🔌 **Run it as an API**, schedule runs, monitor them, and connect Make, Zapier, Google Sheets and more
- 🛡️ Uses Apify Proxy when needed, with your own proxy settings in the input

***

### 📊 What data can Y Combinator Scraper extract?

Here is the Y Combinator data you get for every company. Field names match the dataset exactly, so your Y Combinator companies list is easy to filter and join with other tools.

| | |
|---|---|
| 🔗 Profile URL (`url`) | 🆔 Company ID (`company_id`) |
| 📝 Company name (`company_name`) | 📸 Logo (`company_image`) |
| 📝 Short description (`short_description`) | 📝 Long description (`long_description`) |
| 📅 Batch (`batch`) | 🏭 Industry and sub-industry (`industry`, `subindustry`) |
| 📈 Stage (`stage`) | 🚦 Status (`status`) |
| 🏷️ Tags (`tags`) | 📍 Regions (`regions`) |
| 🌐 Website (`website`) | 📅 Year founded (`year_founded`) |
| 👥 Team size (`team_size`) | 📍 Location and country (`company_location`, `company_country`) |
| 🔗 LinkedIn, X, Facebook (`company_linkedin`, `company_x`, `company_facebook`) | 🔗 Crunchbase, GitHub (`company_crunchbase`, `company_github`) |
| 👤 YC partner (`primary_partner`, `primary_partner_url`) | ⭐ Flags (`top_company`, `nonprofit`, `is_hiring`) |
| 💼 Open job count (`number_of_open_jobs`) | 💼 Open jobs (`open_jobs`) |
| 📰 News and press mentions (`news`) | 🚀 Launch YC posts (`launch_posts`) |
| 👤 Founders (`founders`) | |

**Founders** give you startup founders data for each company: `name`, `title`, `bio`, `linkedin`, `x`, and an email-availability flag (whether YC lists an email; the address itself is not returned). That makes it easy to collect YC founders LinkedIn profiles for outreach. To add each founder's public headline, experience and education, pass those links to [LinkedIn Profile Extractor & Enricher (No Login Required)](https://apify.com/insights_data/linkedin-profile-extractor-enricher).

**Open jobs** turn the Actor into a Y Combinator jobs scraper: each job has `title`, `description_url`, `description`, `location`, `remote`, `type`, `role`, `salary`, `equity`, `skills`, `years_experience` and `visa`. It is a quick way to collect startup job listings from YC companies.

> **Note:** Some fields can be empty. `open_jobs` is filled only when **Scrape Open Jobs** is on, while `number_of_open_jobs` is always filled. `news` and `launch_posts` are empty when their switch is off or the company has none. Companies added by a direct company URL have no `industry`, `subindustry`, `stage`, `tags` or `regions`, and their `top_company`, `nonprofit` and `is_hiring` flags are always `false`.

#### What data can't Y Combinator Scraper extract?

- **Founder email addresses.** You only get `emails.available` (whether YC lists an email). `emails.email` and `emails.status` are always empty.
- **Funding amounts, valuations and investors.** They are not part of the output.
- **Hacker News posts or comments.**
- **YC job board pages as input.** Only directory URLs and company profile URLs are accepted.

***

### 🧭 How to scrape Y Combinator companies

You don't need any coding experience. A quick first run takes six steps and works on the Free plan:

1. [Create a free Apify account](https://console.apify.com/sign-up) using your email.
2. Open [Y Combinator Scraper](https://apify.com/insights_data/y-combinator-scraper). **YC Directory URLs** already contains an example batch URL (Summer 2026).
3. To use your own list, open the [YC directory](https://www.ycombinator.com/companies) and pick your filters, for example a batch. Copy the page address (your filters are part of it, as in `?batch=Summer%202026`) and paste it into **YC Directory URLs** in place of the example.
4. Leave everything else as it is. **Maximum Companies** stays at 10.
5. Click **Start**. Results appear while the run is still going.
6. Open the **Output** tab and switch to the **Founders** view to see founder names, titles and LinkedIn links. Download the data in JSON, CSV, Excel, XML, or HTML.

Other options for later runs: paste single company profile URLs, or switch on **Scrape All Companies**.

***

### 💲 How much does it cost to scrape Y Combinator?

Y Combinator Scraper uses **pay-per-event** pricing. You pay for what the run produces, plus Apify platform usage:

| Event | Price | When it is charged |
|---|---|---|
| 💲 Result | **$8.00 per 1,000 results** ($0.008 per company) on the Free plan (lower on paid plans, see below) | Each company saved to the dataset |
| 💲 Actor start | $0.00005 per GB of run memory | Once per run, at start: **$0.00005 per run** at the default 1 GB of memory (you don't need to change it) |

| Apify plan | Price per company | Price per 1,000 companies |
|---|---|---|
| 🆓 Free | $0.008 | $8.00 |
| 🌱 Starter | $0.0072 | $7.20 |
| 📶 Scale | $0.0064 | $6.40 |
| 🏛️ Business and higher | $0.0055 | $5.50 |

Paid Apify plans get a lower result price. The plan discount applies to the result price only. The start fee is the same on every plan, and platform usage is billed at your Apify plan's own rates.

**Apify platform usage** (the computing resources your run uses) is billed on top of these event prices and is not included in the examples below. It depends on the run, for example on how many companies you scrape and whether **Scrape Open Jobs** is on. To see your real total, do a 10-company test run, then open that run in Apify Console: the run's detail page shows what it actually cost.

**Example costs (event prices only, Free plan prices):**

- 10 companies (the default **Maximum Companies**): 10 × $0.008 = **$0.08**, plus $0.00005 for the start at the default memory.
- 1,000 companies: 1,000 × $0.008 = **$8.00**, plus the start event.

See the [pricing tab](https://apify.com/insights_data/y-combinator-scraper/pricing) for the current prices.

#### Is scraping Y Combinator free?

You can try it for free. The [Apify Free plan](https://apify.com/pricing) gives you $5 of monthly credit, which pays for both the events and the platform usage. Free-plan runs of this YC scraper work the same as paid runs: the number of companies per run is set by `maxCompanies` (or **Scrape All Companies**) and your filters. Set a maximum charge limit when you start a run, and do a small test run first.

***

### ⬇️ Y Combinator Scraper input

To run Y Combinator Scraper, you need **at least one URL in YC Directory URLs**, or **Scrape All Companies** switched on. Everything else is optional and has a default (see the table below). Set the input in the Actor's form or send it as JSON via the API.

Here's an example that scrapes the first 10 companies of the Summer 2026 batch, with founders, press mentions and Launch YC posts:

```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 }
}
```

See the [input tab](https://apify.com/insights_data/y-combinator-scraper/input-schema) for a full description of all fields.

| Field | Default | What it does |
|---|---|---|
| `startUrls` | (empty) | Directory search URLs and/or company profile URLs |
| `maxCompanies` | 10 | Stop after this many companies (ignored with Scrape All Companies) |
| `scrapeFounders` | true | Add founders |
| `scrapeOpenJobs` | false | Add full open-job details (one extra page per job) |
| `scrapeNews` | true | Add news and press mentions (no extra requests) |
| `scrapeLaunchPosts` | true | Add Launch YC posts (no extra requests) |
| `includeLaunchBody` | false | Add the full text of each Launch YC post |
| `sortByLaunchDate` | false | Pick the newest launches first when Maximum Companies cuts the list |
| `launchedAfter` / `launchedBefore` | (empty) | Launch date range, `YYYY-MM-DD` |
| `scrapeAllCompanies` | false | Scrape every company in the directory |
| `teamSizeMin` / `teamSizeMax` | (empty) | Team size range |
| `proxyConfiguration` | Apify Proxy on | Proxy settings. Apify Proxy is used when needed; you don't need to change anything |
| `concurrency` | 5 | Companies scraped in parallel (1 to 20) |
| `maxRetries` | 3 | Limits how many times a failing request is retried before the Actor gives up (1 to 10) |
| `requestDelay` | 0 | Optional pause in seconds before each company profile is loaded (0 to 10) |

#### YC Directory URLs (startUrls)

Two kinds of URLs work, and you can mix them:

- A **directory search URL** with your filters. This is how you get YC companies by batch, YC companies by industry, by region, by tag, by stage or by status. Set the filters on the directory page, then copy the URL.
- A **company profile URL** for one company.

Other URLs, such as other ycombinator.com pages or other websites, are skipped with a warning. Unsupported filters in a directory URL are skipped too.

- ✅ Good: `https://www.ycombinator.com/companies?batch=Summer%202026`
- ✅ Good: `https://www.ycombinator.com/companies/airbnb`
- ❌ Bad: `https://www.ycombinator.com/jobs`
- ❌ Bad: `https://news.ycombinator.com/`

> ⚠️ Leave `startUrls` empty only when **Scrape All Companies** is on. Otherwise the run ends with no results.

#### Maximum Companies and Scrape All Companies

`maxCompanies` (default 10) caps the combined list from all your URLs. Direct company URLs are queued first, then the directory search matches. **Scrape All Companies** ignores both `startUrls` and `maxCompanies`.

Duplicates are removed across directory search URLs and across repeated company URLs. A company that you add as a direct company URL **and** that also matches one of your directory URLs is kept twice: it is saved and charged twice, and both copies count toward `maxCompanies`.

- ✅ Good: keep the default `"maxCompanies": 10` for a first test. Raise it, for example to 50, once the test looks right.
- ❌ Bad: `"scrapeAllCompanies": true` for a quick test

> ⚠️ Scrape All Companies can take a long time and creates a very large dataset, which also costs more.

#### Team size and launch date filters

Use `teamSizeMin` and `teamSizeMax` to narrow the YC companies team size range, and `launchedAfter` / `launchedBefore` to keep only companies launched in a date range. Dates must use the `YYYY-MM-DD` format.

These filters apply to directory search results (directory URLs and Scrape All Companies). Companies you add by a direct company URL are not filtered by them.

- ✅ Good: `"launchedAfter": "2026-01-01"`
- ❌ Bad: `"launchedAfter": "01/01/2026"`

> ⚠️ The input form rejects other date formats. A well-formed but impossible date, such as `2026-02-30`, ends the run at start with an error and no results.

#### Open jobs: use it as a YC jobs scraper

`number_of_open_jobs` is always filled. Switch on **Scrape Open Jobs** (`scrapeOpenJobs`) when you need the full YC companies jobs data: salary, equity, skills, visa, experience and remote flag. The Actor loads one extra page per job, so runs with this option are slower.

#### Sort by launch date

`sortByLaunchDate` orders the directory search matches by launch date (newest first) instead of relevance. It decides **which** companies are picked when Maximum Companies cuts the list. It does not set the order of rows in the dataset, because companies are saved as they finish.

***

### ⬆️ Y Combinator Scraper output

Results are stored in a dataset in the **Output** or **Storage** tab. You can view them as a table or JSON, switch between the five views (Overview, Founders, Open Jobs, News & Press, Launch Posts), pick only the fields you need, and download your YC companies dataset in JSON, CSV, Excel, XML, or HTML.

A short run summary is also saved in the key-value store record `OUTPUT`, with counts such as `companiesSaved`, `foundersCollected` and `openJobsCollected`.

#### JSON example

Here is an **illustrative example record for the input above**. The company and values are made up; the field names and structure of the YC company data are exact:

```json
{
  "url": "https://www.ycombinator.com/companies/example-inc",
  "company_id": 12345,
  "company_name": "Example Inc.",
  "company_image": "https://example.com/example-inc-logo.png",
  "short_description": "AI assistant for small accounting teams",
  "long_description": "Example Inc. helps small accounting teams close their books faster…",
  "batch": "Summer 2026",
  "industry": "Fintech",
  "subindustry": "Accounting",
  "stage": "Early",
  "status": "Active",
  "tags": ["AI", "Fintech", "B2B"],
  "regions": ["United States of America", "America / Canada"],
  "website": "https://example.com",
  "year_founded": "2026",
  "team_size": "3",
  "company_location": "San Francisco, CA, USA",
  "company_country": "US",
  "company_linkedin": "https://www.linkedin.com/company/example-inc",
  "company_x": "https://x.com/exampleinc",
  "company_facebook": null,
  "company_crunchbase": "https://www.crunchbase.com/organization/example-inc",
  "company_github": null,
  "primary_partner": "Jane Partner",
  "primary_partner_url": "https://www.ycombinator.com/people/jane-partner",
  "top_company": false,
  "nonprofit": false,
  "is_hiring": true,
  "number_of_open_jobs": 2,
  "open_jobs": null,
  "news": [
    {
      "title": "Example Inc. raises its first round",
      "url": "https://example.com/news/example-inc",
      "date": "2026-08-20"
    }
  ],
  "launch_posts": [
    {
      "title": "Launch YC: Example Inc.",
      "tagline": "Close the books in hours, not weeks",
      "url": "https://www.ycombinator.com/launches/example-inc",
      "date": "2026-07-15",
      "upvotes": 42
    }
  ],
  "founders": [
    {
      "id": 67890,
      "name": "Alex Founder",
      "title": "Founder/CEO",
      "bio": "Former accountant and software engineer.",
      "emails": { "available": true, "email": null, "status": null },
      "linkedin": "https://www.linkedin.com/in/alex-founder",
      "x": null
    }
  ]
}
```

In this illustrative example record for the input above, `open_jobs` is `null` because `scrapeOpenJobs` is off. Turn it on to get the job list.

***

### 💡 Y Combinator Scraper tips and advanced usage

#### How many results can you scrape with Y Combinator Scraper?

There is no fixed maximum. The number of companies depends on your directory filters, the team size and launch date filters, `maxCompanies` and your run spending limit. If the spending limit is reached, the Actor stops and keeps everything saved so far. The best way to know for your use case is a quick test run.

#### How to get faster or cheaper results

- Keep **Scrape Open Jobs** off unless you need full job details. It loads one extra page per job.
- News, press mentions and Launch YC posts come from the company page itself, without extra requests.
- Narrow the list with directory filters and the team size or launch date filters, and set a small `maxCompanies` for tests.
- Use either a directory URL **or** direct company URLs for the same companies, not both, to avoid paying twice.
- Raise `concurrency` (up to 20) to scrape more companies in parallel.

#### Run it on a schedule: track a batch every week

A weekly run keeps your Y Combinator startups list current without copy-pasting, and shows which companies are new to it and which started hiring:

1. Open the [YC directory](https://www.ycombinator.com/companies), set your filters (for example a batch and an industry), and paste the page address into **YC Directory URLs**. Switch on **Sort by Launch Date (Newest First)** (`sortByLaunchDate`) and set **Maximum Companies** to a number that covers the list, for example 50.
2. Save the input as a [task](https://docs.apify.com/platform/actors/running/tasks) in Apify Console, so every run uses the same filters.
3. Open the task, choose **Schedule**, and add an [Apify schedule](https://docs.apify.com/platform/schedules) that runs it every week.
4. Compare runs: match this week's dataset with last week's on `company_id` (or `url`). Rows with a new `company_id` are companies new to your filter; changes in `is_hiring`, `number_of_open_jobs`, `team_size` or `status` show who is growing. The Actor doesn't compare runs itself, so do this in your sheet, CRM or workflow tool.

#### Known limitations

- **Row order:** companies are saved as they finish, so the dataset order can differ from the directory order.
- **Direct company URLs:** no `industry`, `subindustry`, `stage`, `tags` or `regions`, and the flags are `false`. Check `number_of_open_jobs` instead of `is_hiring`.
- **Founder emails:** only the availability flag is returned.

For failed runs, missing profile data or fewer results than expected, see **What should I do if a run fails or returns fewer results?** in the FAQ below.

***

### 🔌 Integrations and API

#### Can I use Y Combinator Scraper as a YC companies API?

Yes. The [Apify API](https://docs.apify.com/api/v2) lets you start runs, schedule them and fetch results as JSON, so you can call the Actor as a Y Combinator API from your own apps, and it works like a YC startup directory API that returns one record per company. Use the `apify-client` [NPM package](https://apify.com/insights_data/y-combinator-scraper/api/javascript) for Node.js or the `apify-client` [PyPI package](https://apify.com/insights_data/y-combinator-scraper/api/python) for Python. The [API tab](https://apify.com/insights_data/y-combinator-scraper/api) has ready-to-use code.

#### How to scrape Y Combinator with Python

This short example uses the Apify Python client to run the Actor and print the results:

```python
from apify_client import ApifyClient  # scrape Y Combinator Python script: first 10 Summer 2026 companies

client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("insights_data/y-combinator-scraper").call(run_input={
    "startUrls": [{"url": "https://www.ycombinator.com/companies?batch=Summer%202026"}],
    "maxCompanies": 10,
    "scrapeFounders": True,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["company_name"], item["batch"], item["website"])
```

#### Can I integrate Y Combinator Scraper with other apps?

Yes. Connect it with almost any cloud service through [Apify integrations](https://apify.com/integrations): **Make, Zapier, Slack, Google Sheets, Google Drive, Airbyte, GitHub, LangChain**, and more. Use [webhooks](https://docs.apify.com/integrations/webhooks) to trigger actions when a run finishes.

Example workflows:

- **Google Sheets for deal sourcing:** schedule the weekly task from the tip above and add the Google Sheets integration, so each run adds the batch's companies to a sheet your investment team reviews.
- **CRM for sales:** a webhook on the "run succeeded" event starts a Zapier or Make flow that reads the dataset and creates a company record (name, website, industry, team size) and one contact per founder (name, title, LinkedIn link) in your CRM.
- **Slack for recruiters:** run with **Scrape Open Jobs** on, and let a Make scenario post each company with `is_hiring` set to true and its open roles to a Slack channel.
- **Your own startup database:** call the Actor through the Apify API from your backend and load the results into your own startup database of YC companies.

#### Can I use Y Combinator Scraper with AI agents (MCP)?

Yes. Connect Y Combinator Scraper to Claude and other AI assistants through the Apify MCP server. Open the [MCP tab](https://apify.com/insights_data/y-combinator-scraper/api/mcp) for setup steps.

***

### 🔗 Other recruiting and startup research scrapers

These Actors from the same developer pair well with Y Combinator Scraper for founder research, hiring research and market research:

- 👤 [LinkedIn Profile Extractor & Enricher (No Login Required)](https://apify.com/insights_data/linkedin-profile-extractor-enricher): extract public LinkedIn profiles from URLs or IDs without login. Get name, headline, location, current role, experience, education and skills as clean JSON. Useful for the founder `linkedin` links.
- 💼 [Advanced LinkedIn Job Search API](https://apify.com/insights_data/advanced-linkedin-job-search-api): scrape public LinkedIn jobs by search URL, job URL or title + location, with title, company, salary, seniority, applicants and the full description. No login or cookies needed.
- 👔 [LinkedIn Company Employees Scraper](https://apify.com/insights_data/linkedin-company-employees-scraper): find public employees of any company on LinkedIn by link or name, with name, headline, title, seniority, department, location and followers. No login or cookies needed.
- 💼 [Welcome to the Jungle Jobs Scraper](https://apify.com/insights_data/welcome-to-the-jungle-jobs-scraper): scrape WTTJ jobs by keyword, location, salary or remote, with titles, companies, salaries, skills and apply links.
- 💹 [Stocktwits Scraper](https://apify.com/insights_data/stocktwits-scraper): scrape Stocktwits for live stock and crypto messages, bullish/bearish sentiment, price targets and trending symbols, for market sentiment and trading research.
- 📢 [Google Ads Transparency Center Scraper & API](https://apify.com/insights_data/google-ads-transparency-center-scraper-api): extract ads across Search, YouTube, Shopping, Maps and Play by brand, domain or advertiser ID, with no login. Competitor ad intelligence, monitor mode and JSON/CSV/Excel export.

***

### ❓ FAQ

#### Is it legal to scrape Y Combinator?

Scraping publicly available data is generally legal, and the YC directory is public. You should still **respect personal data** such as founder names and profiles (for example under GDPR), collect it only with a legitimate reason, and take Y Combinator's [Terms of Use](https://www.ycombinator.com/legal) into account. Read more in Apify's guide [Is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/) This is not legal advice.

#### How does Y Combinator Scraper work?

Y Combinator Scraper is a Y Combinator directory scraper that reads the same public pages a visitor sees. It finds the companies that match your URLs and filters (or all companies), then opens each public company page to collect the profile, founders, press mentions and Launch YC posts. With **Scrape Open Jobs** on, it also opens each job page. Each company is saved as soon as it is done.

#### Why scrape Y Combinator data?

The YC directory is public, but browsing it company by company is slow. A Y Combinator companies scraper turns it into structured rows you can sort, filter and enrich:

- **Lead lists:** target YC backed startups that fit your ideal customer profile.
- **Investor research:** spot new batches and recent launches early.
- **Hiring:** see who is growing and what they pay.
- **Research:** compare industries, regions and company outcomes.

#### How do I find YC backed startups hiring?

Add the hiring filter on the directory page and use that URL, or check `is_hiring` and `number_of_open_jobs` in the output. To list the jobs of YC companies hiring, switch on **Scrape Open Jobs**.

#### How do I export YC companies to CSV?

Open the run's **Output** tab and download the dataset as CSV. To export YC companies to Excel, choose the Excel format instead. You can also pick a view, such as Founders or Open Jobs, before downloading.

#### Does Y Combinator Scraper return founder email addresses?

No. You only get `emails.available` (true or false), which tells you whether YC lists an email for that founder. The `email` and `status` fields are always empty. Use the founder `linkedin` and `x` links for outreach instead.

#### What should I do if a run fails or returns fewer results?

Start with the run log: in Apify Console, open the run and switch to the **Log** tab. It shows how many companies matched your filters and a warning for every URL or company profile that was skipped.

**Fewer results than expected:**

- Check `maxCompanies`. The default is 10.
- Your directory filters, team size range or launch date range may match fewer companies than you think. If the log says no companies matched, try different filters or double-check your URLs.
- URLs that are not directory or company profile URLs are skipped with a warning in the log.
- If you set a spending limit, the run stops when it is reached and keeps everything saved so far.

**Rows with missing data:** if a company profile could not be loaded, the company is still saved, and charged, with the directory search data only. You can spot these rows because `founders`, `news` and `launch_posts` are empty, location, social links and `year_founded` are empty, and `number_of_open_jobs` is 0. For a direct company URL, such a record is almost empty. The log shows a warning for each of these companies; running the same URL again later is worth a try.

**Run ends at start with no results:**

- **YC Directory URLs** is empty and **Scrape All Companies** is off. Add a URL or switch it on.
- A launch date is impossible, such as `2026-02-30`. Use a real date in `YYYY-MM-DD` format.
- The log says the Actor could not reach Y Combinator. Try again in a few minutes.

If the run shows a **Failed** status, or the log doesn't explain the problem, open an issue on the [Issues tab](https://apify.com/insights_data/y-combinator-scraper/issues/open) and include the link to the run.

#### Why do I see the same company twice?

You probably added it as a direct company URL and it also matched one of your directory URLs. In that case the company is saved, and charged, twice. Use only one of the two inputs for the same company.

***

### 📧 Support and feedback

Found a bug or have a feature request? Please create an issue on the [Issues tab](https://apify.com/insights_data/y-combinator-scraper/issues/open).

Need a **custom solution**, a different YC dataset, or more data? Contact us at hello.insights.data@gmail.com.

Built and maintained by [insights_data](https://apify.com/insights_data).

# Changelog

This Actor's version history is a separate document: https://apify.com/insights_data/y-combinator-scraper/changelog.md

# 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/4ww5FGev0H5boaV1l/openapi.json
