# Y Combinator Companies & Jobs Scraper (`deltaspider/y-combinator-scraper`) Actor

A high-performance web scraper for extracting comprehensive company data from Y Combinator - the world's leading startup accelerator.
Whether you're an investor, founder, researcher, or developer, this tool helps you gather detailed data on 5000+ YC-backed companies.

- **URL**: https://apify.com/deltaspider/y-combinator-scraper.md
- **Developed by:** [delta spider](https://apify.com/deltaspider) (community)
- **Categories:** Lead generation, Jobs, News
- **Stats:** 27 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.50 / 1,000 companies

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

### Every Y Combinator company and job in one dataset

Export the whole [YC startup directory](https://www.ycombinator.com/companies), or any filtered slice of it, to JSON, CSV, or Excel. On September 23, 2026 that was **6,248 companies across 51 batches**, from Summer 2005 to the latest batch. Add founders, socials, news, and every open job with one checkbox.

**Every YC company, not the first 1,000. $0.50 per 1,000 companies, founders and company details included. Same price on every plan, no start fee.**

### Before you pick a YC scraper, check five things

| Ask                                                                          | Here                                                                                                    |
| ---------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| Does it return every company, or stop at the 1,000 that YC's search shows?   | Every company: 6,248 on September 23, 2026, across all batches.                                         |
| Is the company count on the page dated, so you can tell whether it is stale? | Yes, above.                                                                                             |
| Do free-plan users pay more, or pay a start fee?                             | No. Same price on every plan, no start fee. The whole directory costs $3.12, inside the free plan's $5. |
| Are founders, socials, and company details extra?                            | Included.                                                                                               |
| Are full job postings available, and priced per posting or per company?      | Available, $0.0005 per posting, only when you ask for them.                                             |

Run it once with the default input and count the rows.

### How to use it

1. Filter the [YC directory](https://www.ycombinator.com/companies) by batch, industry, region, team size, or hiring status.
2. Paste the page URL into **Companies search URL**. Clear **Max results** to get every match.
3. Run the Actor and download the dataset.

No filters? Leave the default URL to export the whole directory. The Console fields under **Alternative filters** do the same without leaving Apify; when any of them is set, the pasted URL is ignored.

```json
{
  "url": "https://www.ycombinator.com/companies?batch=Winter%202026&isHiring=true",
  "scrape_company_details": true
}
```

### What you get

| Option                       | Adds                     | Example fields                                                                                                                                                                                |
| ---------------------------- | ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Default                      | One row per company      | `name`, `slug`, `batch`, `one_liner`, `long_description`, `website`, `team_size`, `industries`, `subindustry`, `regions`, `status`, `stage`, `isHiring`, `top_company`, `launched_at`, `tags` |
| `scrape_company_details`     | The company's YC profile | `founders` (name, title, bio, LinkedIn), `year_founded`, `city`, `country`, `linkedin_url`, `twitter_url`, `cb_url`, `github_url`, `newsItems`, `launches`, `jobPostings` (summaries)         |
| `scrape_job_posting_details` | Each open job in full    | `description`, `interview_process`, `salaryRange`, `equityRange`, `visa`, `skills`, `hiringManager`                                                                                           |

A complete default row, from a run on September 23, 2026:

```json
{
  "id": 88,
  "name": "Segment",
  "slug": "segment",
  "former_names": [],
  "small_logo_thumb_url": "https://bookface-images.s3.amazonaws.com/small_logos/99f5abd1f15fa4ca4394b5781c98d8ff23db6f7b.png",
  "website": "http://segment.com",
  "all_locations": "San Francisco, CA, USA",
  "long_description": "Segment is one place to collect customer data and send it to your tools for analytics, marketing automation, and raw data access with SQL. Implement all of your event tracking with Segment’s single API instead of wrangling a new API for every new tool or database. Segment's integrations let you send your data to hundreds of tools and databases.",
  "one_liner": "Software and APIs to collect, clean, and control customer data.",
  "team_size": 550,
  "industry": "B2B",
  "subindustry": "B2B -> Analytics",
  "launched_at": "2012-01-17",
  "tags": ["SaaS", "B2B"],
  "top_company": true,
  "isHiring": false,
  "nonprofit": false,
  "batch": "Summer 2011",
  "status": "Acquired",
  "industries": ["B2B", "Analytics"],
  "regions": ["United States of America", "America / Canada", "Remote", "Partly Remote"],
  "stage": "Growth",
  "app_video_public": false,
  "demo_day_video_public": false,
  "app_answers": null,
  "question_answers": false,
  "objectID": "88"
}
```

<details>
<summary>Fields added by <code>scrape_company_details</code> for the same company</summary>

`logo_url` and founder `avatar_thumb_url` are signed links that expire one hour after the run; they are shortened below. Use `small_logo_thumb_url` for a permanent logo. With details on, `batch` holds YC's short code (`S11`) and `batch_name` the full name.

```json
{
  "batch": "S11",
  "app_answers": [],
  "batch_name": "Summer 2011",
  "small_logo_url": "https://bookface-images.s3.amazonaws.com/small_logos/99f5abd1f15fa4ca4394b5781c98d8ff23db6f7b.png",
  "ycdc_status": "Acquired",
  "logo_url": "https://bookface-images.s3.us-west-2.amazonaws.com/logos/192b03cb1bd8027bbeddedbe24dd630239632c01.png?X-Amz-Expires=3600&... (signed link, expires 1 hour after the run)",
  "year_founded": 2011,
  "location": "San Francisco",
  "city": "San Francisco",
  "city_tag": "san-francisco-bay-area",
  "country": "US",
  "linkedin_url": "https://www.linkedin.com/company/segment-io/",
  "twitter_url": "https://twitter.com/segment",
  "fb_url": "",
  "cb_url": "https://www.crunchbase.com/organization/segment-io",
  "github_url": null,
  "free_response_question_answers": [],
  "dday_video_url": null,
  "app_video_url": null,
  "ycdc_url": "https://www.ycombinator.com/companies/segment",
  "company_photos": [],
  "primary_group_partner": null,
  "founders": [
    {
      "user_id": 25396,
      "is_active": true,
      "founder_bio": "",
      "full_name": "Ilya Volodarsky",
      "title": "Founder",
      "avatar_thumb_url": "https://bookface-images.s3.us-west-2.amazonaws.com/avatars/34414e818e9deded4682e7116971440c259e6165.jpg?X-Amz-Expires=3600&... (signed link, expires 1 hour after the run)",
      "twitter_url": "",
      "linkedin_url": "https://www.linkedin.com/in/ilyavolodarsky/",
      "has_email": true,
      "latest_yc_company": {
        "name": "Segment",
        "href": "https://www.ycombinator.com/companies/segment"
      }
    }
  ],
  "jobPostings": [],
  "disabledPublicVisibility": null,
  "jobsUrl": "https://bookface.ycombinator.com/workatastartup",
  "newsItems": [
    {
      "title": "Segment founder on future of customer data management and acquisition by Twilio | VentureBeat",
      "url": "https://venturebeat.com/business/segment-founder-on-future-of-customer-data-management-and-acquisition-by-twilio/",
      "date": "Apr 06, 2021"
    },
    {
      "title": "How Segment survived its brush with death to become a customer data infrastructure unicorn | VentureBeat",
      "url": "https://venturebeat.com/business/how-segment-survived-its-brush-death-become-customer-data-management-unicorn/",
      "date": "Dec 04, 2019"
    }
  ],
  "newsUrl": "https://bookface.ycombinator.com/company/88/company_news",
  "launches": []
}
```

</details>

<details>
<summary>One complete job posting from <code>scrape_job_posting_details</code></summary>

```json
{
  "id": 14822,
  "title": "Android Engineer",
  "url": "/companies/instacart/jobs/ZBDBmG17B-android-engineer",
  "applyUrl": "https://account.ycombinator.com/authenticate?continue=https%3A%2F%2Fwww.workatastartup.com%2Fapplication%3Fsignup_job_id%3D14822&defaults%5BsignUpActive%5D=true&defaults%5Bwaas_company%5D=468",
  "location": "San francisco, CA",
  "askUs": true,
  "type": "Full-time",
  "role": "eng",
  "roleSpecificType": "Android",
  "prettyRole": "Engineering",
  "salaryRange": "",
  "equityRange": "",
  "minExperience": "3+ years",
  "minSchoolYear": null,
  "visa": "Will sponsor",
  "skills": ["Android", "Java"],
  "isIncomplete": false,
  "companyUrl": "/companies/instacart",
  "companyLogoUrl": "https://bookface-images.s3.amazonaws.com/small_logos/9750fca21baaee75e035f1baaf58df8e2f5dcc67.png",
  "companyName": "Instacart",
  "companyBatchName": "S12",
  "companyOneLiner": "Marketplace for grocery delivery and pickup",
  "hiringManager": {
    "id": 271833,
    "first_name": "Sam",
    "last_name": "Guzman",
    "avatar_thumb": "/avatars/thumb/missing.png",
    "avatar_medium": "/avatars/medium/missing.png"
  },
  "createdAt": "about 8 years",
  "lastActive": null,
  "description": "### Responsibilities\r\n\r\n* You will be part of a small team, with a large amount of ownership and responsibility for managing things directly\r\n* Collaboration with product managers, other teams, and both internal and external stakeholders, owning a large part of the process from problem understanding to shipping the solution\r\n* Shipping high quality solutions with urgency\r\n* Championing Android: educating colleagues about subtleties & unique capabilities of the platform and leveraging them when building new features\r\n\r\n### Requirements\r\n\r\n* Bachelor's degree in computer science is preferred with 2-3 years of software development experience and at least 2 years of Android app development experience\r\n* Strong development skills in Java and with Android SDK, and good general programming and algorithm skills\r\n* A strong sense of ownership\r\n* An ability to balance a sense of urgency with shipping high quality and pragmatic solutions\r\n\r\n### Desired\r\n\r\n* Experience with RxJava\r\n* Interest in Kotlin\r\n* Data Driven mindset\r\n* Automated testing experience",
  "interview_process": null
}
```

</details>

### Pricing

On every Apify plan, with no start fee and no separate platform usage charge:

- **$0.50 per 1,000 companies** ($0.0005 each), including founders and company details.
- **$0.50 per 1,000 full job postings** ($0.0005 each), only when `scrape_job_posting_details` is on.

| Run                                                                  | Cost  |
| -------------------------------------------------------------------- | ----- |
| 100 companies                                                        | $0.05 |
| One batch (Winter 2026: 199 companies)                               | $0.10 |
| 1,000 companies                                                      | $0.50 |
| Whole directory (6,248 companies on Sep 23, 2026)                    | $3.12 |
| 100 hiring companies with their 449 full job postings (Sep 23, 2026) | $0.27 |

A run that finds nothing costs nothing. Set a maximum total charge on the run: each company's full cost, job postings included, is reserved before its pages are fetched, so the run stops at the budget without delivering a company with some of its jobs missing. Apify's free plan includes $5 of monthly usage, enough for the whole directory. See the [Pricing tab](https://apify.com/deltaspider/y-combinator-scraper/pricing) for the terms that apply to your run.

### FAQ

**Do I get more than 1,000 companies?** Yes. YC's search returns at most 1,000 results per query, so when a search matches more, the Actor runs it once per batch and combines the results. Rows are sorted within each batch, not across batches.

**Can I filter by the newest batches?** Yes. Pick them under **Alternative filters**, or paste a directory URL filtered on ycombinator.com.

**Which URL filters are supported?** Batch, industry, region, team size, search text, hiring, top company, nonprofit, public demo day video, public application video, application answers, and bonus questions. Other URL parameters are ignored.

**How long does a run take?** Directory rows arrive in seconds. Details add one page per company and one per job, so a full-directory detail run takes longer.

**Can I call it from code or schedule it?** Yes. The [API tab](https://apify.com/deltaspider/y-combinator-scraper/api) has ready-made requests for Python, JavaScript, and cURL. Schedule runs in Apify, or connect Make, Zapier, n8n, Google Sheets, or an MCP client.

**Is it legal?** The Actor collects data YC publishes openly. Founder names and profile links are personal data, so handle them under the privacy laws that apply to you (for example GDPR). This independent Actor is not affiliated with Y Combinator.

**Something wrong?** Open an issue on the [Issues tab](https://apify.com/deltaspider/y-combinator-scraper/issues) with the run ID.

# Actor input Schema

## `url` (type: `string`):

Companies search URL.

Go to the [Y Combinator directory](https://www.ycombinator.com/companies/), select any filters of your choice, and once you are done, copy the full URL from the address bar and paste it here.

## `sort_by` (type: `string`):

Sort by

## `max_results` (type: `integer`):

Max number of companies to scrape

## `scrape_company_details` (type: `boolean`):

This will add an extra request for each company

## `scrape_job_posting_details` (type: `boolean`):

This will add an extra request for each job posting

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

Select the batches you want to scrape

## `team_size_min` (type: `string`):

Select the minimum team size

## `team_size_max` (type: `string`):

Select the maximum team size

## `top_company` (type: `boolean`):

Only include 💎Top Companies

## `is_hiring` (type: `boolean`):

Only include companies that are hiring

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

Only include companies that are nonprofits

## `app_video_public` (type: `boolean`):

Only include companies that have a public application video

## `demo_day_video_public` (type: `boolean`):

Only include companies that have a public demo day video

## `app_answers` (type: `boolean`):

Only include companies that have answered the app answers

## `question_answers` (type: `boolean`):

Only include companies that have bonus questions

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

Only include companies that are in the selected regions

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

Only include companies that are in the selected industries

## `isCanary` (type: `boolean`):

Marks this run as a Fleet Monitor canary. When enabled, the Actor ignores the rest of the input and scrapes its fixed canary batch (Summer 2005, 9 companies, with company details), so canary runs stay a stable baseline.

## Actor input object example

```json
{
  "url": "https://www.ycombinator.com/companies",
  "sort_by": "default",
  "max_results": 1000,
  "scrape_company_details": false,
  "scrape_job_posting_details": false,
  "top_company": false,
  "is_hiring": false,
  "nonprofit": false,
  "app_video_public": false,
  "demo_day_video_public": false,
  "app_answers": false,
  "question_answers": false,
  "isCanary": false
}
```

# 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 = {
    "url": "https://www.ycombinator.com/companies",
    "sort_by": "default",
    "max_results": 1000
};

// Run the Actor and wait for it to finish
const run = await client.actor("deltaspider/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 = {
    "url": "https://www.ycombinator.com/companies",
    "sort_by": "default",
    "max_results": 1000,
}

# Run the Actor and wait for it to finish
run = client.actor("deltaspider/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 '{
  "url": "https://www.ycombinator.com/companies",
  "sort_by": "default",
  "max_results": 1000
}' |
apify call deltaspider/y-combinator-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,deltaspider/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/9uBEAzi3FN1aKd36t/builds/4VUQTTRbNPwyFqyIt/openapi.json
