Y Combinator Scraper โ€” 6,100+ Startups, Founder LinkedIn avatar

Y Combinator Scraper โ€” 6,100+ Startups, Founder LinkedIn

Pricing

from $2.40 / 1,000 startup lead scrapeds

Go to Apify Store
Y Combinator Scraper โ€” 6,100+ Startups, Founder LinkedIn

Y Combinator Scraper โ€” 6,100+ Startups, Founder LinkedIn

Extract Y Combinator startups straight from YC's own directory: company, batch, description, website, industries, and founder names with LinkedIn/Twitter URLs. No login, no browser, pure JSON. Use it as an MCP server in Claude, ChatGPT & AI agents.

Pricing

from $2.40 / 1,000 startup lead scrapeds

Rating

0.0

(0)

Developer

The Mine Works

The Mine Works

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

a day ago

Last modified

Share

๐Ÿš€ Y Combinator Scraper: Startups, Founders & LinkedIn (No Login)

Y Combinator's own directory at ycombinator.com/companies lists over 6,100 funded startups โ€” but it's a JavaScript-driven grid with no bulk export, no public REST API, and no way to filter by batch, industry and hiring status and get a clean spreadsheet back. This actor queries YC's own public search index directly and turns the directory into structured leads: company, batch, description, website, industries, and โ€” where YC itself publishes them โ€” founder full names, titles, LinkedIn and X/Twitter URLs.

What it does

For every company matching your filters, you get:

  • Company details: name, YC batch (both "Winter 2024" and shorthand "W24"), one-liner, full description, website, industries, tags, status (Active/Inactive/Acquired/Public), stage, team size, location, founded year, and whether YC currently marks it as hiring.
  • Founder identity: full name, title (e.g. "Founder/CEO"), and personal LinkedIn/X URLs for every founder YC lists on the company's own profile page โ€” real, public data, not a guess.
  • Company socials: LinkedIn, X/Twitter and Crunchbase pages for the company itself, pulled from the same profile page.
  • Optional website contact: a genuinely-published email address, if you turn on the website-contact check and the company has one live on their homepage.

How it works (and what it deliberately does not do)

YC's /companies page is a Rails + Inertia.js app. The company grid itself is not server-rendered โ€” it's populated client-side by a call to YC's own public Algolia search index, using a scoped, read-only key that YC ships to every visitor's browser and restricts (server-side, via Algolia's own security rules) to only ever return publicly-listed companies. This actor calls that exact same index with that exact same key โ€” the same request your browser makes when you load the page โ€” over plain HTTP. No browser, no residential proxy, no anti-bot wall: this is a JSON API call, not a scrape of rendered pixels, which is why it's fast and priced the way it is.

Founder identity is different: it genuinely only exists on each company's individual profile page (ycombinator.com/companies/{slug}), which is server-rendered โ€” the page ships the founder list as an embedded JSON payload inside the HTML. Fetching it costs one extra plain HTTP request per company (still no browser needed), which is why founder lookups are a togglable option โ€” turn them off for a faster, company-only pull.

We do not guess or generate email addresses. YC's own public data never contains a founder's email โ€” the company profile page ships an internal has_email flag but gates the actual address behind YC's own logged-in "request an intro" feature, which this actor cannot and does not access. The only email this actor will ever report is one your target company chose to publish itself, and only when you explicitly enable scrapeWebsiteContact โ€” it visits the company's own homepage once and reports a mailto: link if one is genuinely there. Nothing is inferred, pattern-matched, or verified by SMTP probe.

๐Ÿงพ Input configuration

FieldTypeDescription
keywordstringFull-text search across name, one-liner and description (e.g. "AI agents for sales").
batcharrayYC batch(es), shorthand ("W24", "S23", "F24", "Sp25") or full form ("Winter 2024").
industriesarrayYC's broad category, exact match (e.g. "B2B", "Fintech", "Healthcare").
tagsarrayYC's finer tags, exact match (e.g. "SaaS", "Developer Tools", "Generative AI").
hiringStatusselectany / hiring / not_hiring โ€” filters on YC's own "currently hiring" flag.
maxResultsintegerMax companies to return leads for (1-500), most-relevant/most-recent first.
fetchFoundersbooleanPull founder names, titles and LinkedIn/X URLs from each company's profile page. Default on.
scrapeWebsiteContactbooleanCheck the company's own homepage for a published contact email. Default off.

๐Ÿ“ค Example input

{
"keyword": "developer tools",
"batch": ["W24"],
"hiringStatus": "any",
"maxResults": 25,
"fetchFounders": true,
"scrapeWebsiteContact": false
}

Example output record

{
"company": "Hatchet",
"slug": "hatchet-run",
"batch": "Winter 2024",
"batch_code": "W24",
"one_liner": "The orchestration platform for teams who ship.",
"website": "https://hatchet.run",
"yc_url": "https://www.ycombinator.com/companies/hatchet-run",
"industries": "B2B, Infrastructure",
"tags": "Developer Tools, Open Source, Infrastructure",
"status": "Active",
"stage": "Early",
"is_hiring": false,
"team_size": 7,
"location": "New York City, NY, USA",
"founded_year": 2023,
"company_linkedin_url": "https://www.linkedin.com/company/hatchet-run",
"company_twitter_url": "https://twitter.com/hatchet_dev",
"founder_name": "Alexander Belanger",
"founder_title": "Founder",
"founder_linkedin_url": "https://linkedin.com/in/alexander-belanger-aa3974135",
"source": "yc-directory",
"retrieved_live": true,
"scraped_at": "2026-08-02T14:23:39.588Z"
}

Each founder at a company gets its own row (all company fields repeated), so a 3-founder startup yields 3 rows. If founder lookups are off, or a company genuinely has no public founders listed, you still get one company-level row โ€” no company is ever silently dropped from your results.

Billing

Charged once per row actually delivered to your dataset (startup-lead-scraped). A company-only row and a founder row both count as one. Non-billable summary/info rows carry run stats and never count against you. Nothing is charged for a filter combination that matches zero companies.

๐Ÿ’ผ Common use cases

  • VC & investor sourcing โ€” pull every company in a batch or vertical to build a deal-flow tracker, with founder LinkedIn ready for warm intros.
  • Recruiting & talent sourcing โ€” filter to hiringStatus: hiring in your target stack to find funded, actively-hiring teams before they post to a job board.
  • B2B sales prospecting โ€” target startups by industry/tag (e.g. "Fintech", "Developer Tools") as a qualified account list, then hand founder names to your outbound sequence.
  • Competitive & market mapping โ€” pull every company under a tag ("Generative AI", "Vertical SaaS") to map a category as it evolves batch over batch.
  • Journalism & research โ€” track a batch as it launches, or trend a tag's growth across batches using founded_year and batch.
  • Founder community building โ€” find and connect with founders in your city, stage, or vertical using the LinkedIn/X handles YC itself publishes.

๐Ÿ” Run on a schedule

Turn a one-off pull into a standing feed with Apify's built-in Schedules โ€” useful for catching each new batch as it launches.

  1. Run the actor once with your filters, then Save as a task to keep that input.
  2. In the Apify Console, go to Schedules โ†’ Create new, pick a frequency (e.g. weekly).
  3. Add the saved task under Actors or tasks to run, then Save.

Or via the API:

curl -X POST "https://api.apify.com/v2/schedules?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "yc-scraper-weekly",
"cronExpression": "0 9 * * 1",
"isEnabled": true,
"actions": [{ "type": "RUN_ACTOR", "actorId": "themineworks/y-combinator-scraper" }]
}'

FAQ

Does this touch YC's non-public data (applications, Bookface, internal metrics)? No. Every field comes from either YC's own public search index (the same one the public /companies page queries) or the public HTML of each company's own public profile page. Nothing behind YC's login is accessed.

Why no email addresses from YC directly? Because YC doesn't publish them. The company profile page only ships a has_email boolean and gates the real address behind a logged-in "request an intro" flow. We report what's genuinely public: LinkedIn and X/Twitter. The optional website-contact check can find a real email if the company published one on their own site โ€” nothing is guessed.

How current is the data? Fully live โ€” every run queries YC's index directly at run time. There is no cached database and no staleness beyond however recently YC itself updated a company's listing.

What does batch_code vs batch mean? batch is YC's own full form ("Winter 2024"); batch_code is the common shorthand ("W24") used in filters and conversation. Input accepts either form.

Can I filter to multiple batches or industries at once? Yes โ€” batch, industries and tags all accept arrays and are OR'd within each field, then AND'd against each other and against keyword/hiringStatus.

Can I use it inside an AI agent? Yes. It is exposed as an MCP tool. See below.

Use in Claude, ChatGPT & any MCP agent

https://mcp.apify.com/?tools=themineworks/y-combinator-scraper

Or call it programmatically with the Apify client:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('themineworks/y-combinator-scraper').call({
industries: ['Fintech'],
hiringStatus: 'hiring',
maxResults: 50,
fetchFounders: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

๐Ÿ› ๏ธ Complete your outbound pipeline

Pair this with the rest of The Mine Works' B2B lead-gen wedge:

Typical flow: this actor finds the startups and founders, linkedin-profile-scraper enriches each founder's full history, b2b-leads-finder adds a business email if you need one beyond what the company itself publishes.