YC Companies Scraper: Founders & Jobs, No Login avatar

YC Companies Scraper: Founders & Jobs, No Login

Pricing

from $1.50 / 1,000 company with founders

Go to Apify Store
YC Companies Scraper: Founders & Jobs, No Login

YC Companies Scraper: Founders & Jobs, No Login

Scrape the Y Combinator company directory by batch, industry, region, status and hiring. Get founders, LinkedIn/X links, open jobs and team size. Only-new mode for tracking new YC startups. No login or API key.

Pricing

from $1.50 / 1,000 company with founders

Rating

0.0

(0)

Developer

Cliqto Media

Cliqto Media

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Scrape the public Y Combinator company directory (ycombinator.com/companies) and get one clean row per YC startup: batch, status, industry, location, team size, website, founders with LinkedIn and X links, open jobs and the YC partner. No login, no cookies and no API key.

Filter by batch (for example W24), industry, region, status, hiring and team size, or look up a list of companies by slug or URL. The ready-made example (batch W24, 30 companies) finishes in about 10 seconds and costs about $0.06.

YC Companies Scraper: filter the Y Combinator directory by batch, industry and hiring, and get companies with founders, LinkedIn and X links and open jobs

Table of contents

What it does

The Actor reads the public Y Combinator startup directory — the same list you see in a browser. It has two modes:

  • Search the directory (mode: "search", default): keep the companies that match your filters, newest batches first.
  • Look up specific companies (mode: "companies"): give up to 1000 company slugs or YC URLs and get one row for each.

With Include founders, socials and jobs on (default), the Actor also opens each company page and adds the founders (name, title, short bio, LinkedIn, X), the company's LinkedIn, X, Facebook, GitHub and Crunchbase links, the YC group partner, year founded and the list of open jobs. With it off, you get the directory fields only — faster and cheaper.

Good fit

  • Build a lead list of YC startups from one batch, industry or region.
  • Find founders of YC companies and their public LinkedIn and X profiles.
  • Find YC startups that are hiring now, with job titles, salary and equity ranges as listed on YC.
  • Get only the companies added since your last run (for a weekly or daily schedule).

Not a fit / limits

  • No emails or phone numbers. The Actor never returns founder emails or phone numbers, and it removes them from descriptions and bios.
  • Only public data from ycombinator.com. No Bookface, no private YC data, no funding amounts or valuations.
  • The Actor does not visit company websites, LinkedIn or X. Links are copied as YC shows them.
  • Data is as fresh as the YC directory at run time. Team size, status and jobs are what founders reported to YC; they can be out of date.

Quick start

  1. Open the Input tab.
  2. Keep the example: Batches = W24, Max companies = 30.
  3. Keep Include founders, socials and jobs on.
  4. Click Start.
  5. Open the Output tab. The Companies view shows one row per company; the Founders & socials view shows founders, links and jobs.

Expected result: 30 Winter 2024 companies with founders and open jobs, in about 10 seconds.

Use cases

Buyer jobInput pathOutput entityKey fieldsNext integration
Lead list of startups in one YC batchbatches, industriescompanyname, website, oneLiner, linkedinUrl, teamSizeCSV/Excel to a CRM
Reach out to foundersbatches, includeFounderscompany with foundersfounders[].name, founders[].title, founders[].linkedinUrlLinkedIn outreach tools
Startups that are hiringisHiring, regionscompany with jobsopenJobsCount, jobs[].title, jobs[].salaryRange, jobs[].urlRecruiting spreadsheet
Market map of an industryindustries, status, minTeamSizecompanyindustry, subindustry, tags, status, batchCodeBI tool / Google Sheets
Enrich your own list of YC companiesmode: companies, companiescompany with foundersslug, groupPartner, yearFounded, foundersYour database via API
Alert on new YC companiesonlyNew, stateKey + a schedulenew companies onlyname, batchCode, launchedAt, urlSlack / email via webhook

Input

Input fields

FieldPlain nameTypeRequiredDefault / prefillAllowed valuesEffectExampleRecommendation
modeModestringnodefault searchsearch, companiesSearch the directory or look up a list of companies"search"Use companies when you already know which companies you want
batchesBatchesstring listnoprefill ["W24"]; empty = all batchesup to 200 codes or names: W24, S23, X25 (Spring), F24 (Fall), Winter 2024, UnspecifiedKeep companies from these batches["W25", "S25"]The fastest way to keep a run small
searchKeywordstringnoemptyup to 200 charactersFull-text search in names and descriptions, like the search box on YC"developer tools"Combine with batches for a narrow list
industriesIndustriesstring listnoempty = allYC industry names, any caseKeep companies in these industries["Fintech", "Healthcare"]An unknown name stops the run and lists valid names
regionsRegionsstring listnoempty = allYC region namesKeep companies in these regions["Europe", "India"]An unknown name stops the run and lists valid names
statusCompany statuslistnoempty = allActive, Acquired, Public, InactiveKeep only these statuses["Active"]Use Active for sales lists
isHiringHiring now onlybooleannofalsetrue / falseKeep only companies with open jobs on YCtrueFor recruiting and "hiring" signals
topCompaniesOnlyTop companies onlybooleannofalsetrue / falseKeep only companies YC marks as top companiestrue
minTeamSizeMin team sizeintegernoempty = no minimum0 or moreKeep companies with at least this many people10
maxTeamSizeMax team sizeintegernoempty = no maximum0 or more, not below minTeamSizeKeep companies with at most this many people50
includeFoundersInclude founders, socials and jobsbooleannotruetrue / falseOpens each company page for founders, social links, partner and jobs. Each row is billed as a full rowfalseTurn off for large directory exports when you need directory fields only. Always on in companies mode
companiesCompanies (companies mode)string listonly in companies modeemptyup to 1000 slugs or ycombinator.com/companies/... URLsCompanies to look up["airbnb", "https://www.ycombinator.com/companies/doordash"]Duplicates are removed (same slug in any case or URL form)
onlyNewOnly new companiesbooleannofalsetrue / falseSkip companies delivered by earlier runs with the same state keytrueUse with a schedule
stateKeyState keystringnodefault1–40 letters, digits, -, _Name of the remembered list for onlyNew"w26-fintech"Use a different key for each saved search
maxItemsMax companiesintegernodefault 100, prefill 301–10000Maximum rows to save. Each row is charged500The whole directory has about 6300 companies

Empty input ({}) searches all batches and saves the 100 newest companies with founders. Unknown input fields stop the run with a list of allowed fields, so a typo never silently changes what you pay for.

Interacting settings

WhenInput AInput BEffective behaviorExampleCost/result effect
Several filtersbatches, industries, regions, status, searcheach otherAll filters must match (AND). Inside one list, any value matches (OR)W24 + FintechFewer rows
Companies modemode: companiessearch filtersSearch filters are ignored; only companies is used
Companies modemode: companiesincludeFoundersAlways reads company pages, so every found company is a full rowFull-row price
TrackingonlyNewmaxItemsmaxItems counts only new companies. Already delivered companies are skipped and not chargedUnchanged run: only the start fee
Large exportsincludeFounders: truemaxItems above ~1000About 0.28 seconds per full row. 1500 full rows took 7 minutes5000 full rows ≈ 23 minutesRaise the run timeout (see Troubleshooting)

Input examples

Founders of one batch (the prefilled example)

{
"batches": ["W24"],
"maxItems": 30
}

Expected behavior: reads the W24 batch and opens 30 company pages. Expected output: 30 companies with founders, linkedinUrl, jobs. Limit or cost note: about 10 seconds, $0.057 at the Free tier price.

Hiring fintech startups in Europe, directory fields only

{
"industries": ["Fintech"],
"regions": ["Europe"],
"isHiring": true,
"includeFounders": false,
"maxItems": 200
}

Expected behavior: searches all batches, newest first, without opening company pages. Expected output: companies with name, website, teamSize, isHiring, batchCode.

Look up companies you already know

{
"mode": "companies",
"companies": ["airbnb", "https://www.ycombinator.com/companies/doordash"]
}

Expected behavior: one row per company. A slug that does not exist on YC returns one not_found row.

Weekly list of new YC companies

{
"onlyNew": true,
"stateKey": "all-new",
"includeFounders": false,
"maxItems": 10000
}

Expected behavior: the first run builds the baseline and saves the whole directory (about 6300 rows, about 2.5 minutes, about $5.67). To start smaller, add a filter such as batches. Later runs save only companies that were not delivered before.

Output

Each company is one item in the default Dataset. Two views are ready in the Output tab:

  • Companies — name, batch, status, one-liner, website, industry, location, team, hiring, founders count, LinkedIn, YC page, row status.
  • Founders & socials — founders, company LinkedIn, X, GitHub, Crunchbase, year founded, YC partner, open jobs.

Output fields

FieldMeaningTypeCan be empty?Example / enumSource / notes
recordStatusRow statusstringnocomplete, partial, not_found, errorsee Output entities
ycIdYC company IDintegeryes (not_found/error)29517directory
nameCompany namestringyes (not_found/error)RetailReadydirectory
slugYC slug, usable in companies modestringnoretailreadydirectory
urlYC company pagestringnohttps://www.ycombinator.com/companies/retailready
websiteCompany websitestringyeshttps://www.retailreadyai.com/directory
oneLinerShort taglinestringyesAn AI-powered supply chain compliance engineemails/phones removed
longDescriptionLong descriptionstringyesemails/phones removed
batchBatch namestringyesWinter 2024
batchCodeShort batch codestringyesW24, X25, F24built from batch
statusCompany statusstringyesActive, Acquired, Public, Inactive
industryMain industrystringyesB2B
subindustryIndustry pathstringyesB2B -> Supply Chain and Logistics
industriesAll industry labelsstring[]empty list["B2B", "Supply Chain and Logistics"]
tagsYC tagsstring[]empty list["AI", "Logistics"]
regionsYC regionsstring[]empty list["United States of America", "America / Canada"]
locationLocations as shown in the directorystringyesSan Francisco, CA, USA
teamSizeTeam size reported to YCintegeryes12
isHiringHas open jobs on YCbooleanyestrue
isTopCompanyYC top companybooleanyesfalse
isNonprofitNonprofitbooleanyesfalse
stageStage labelstringyesEarly, Growth
launchedAtWhen the YC profile was launchedstring (ISO 8601)yes2024-01-16T16:52:04.000Z
formerNamesPrevious namesstring[]empty list[]
logoUrlLogo imagestringyesonly stable links
detailsIncludedCompany page was readbooleannotruefalse when includeFounders is off or the page failed
yearFoundedYear foundedintegeryes2024company page
cityCitystringyesSan Franciscocompany page
countryCountry codestringyesUScompany page
linkedinUrlCompany LinkedInstringyeshttps://www.linkedin.com/company/...company page
twitterUrlCompany X/Twitterstringyescompany page
facebookUrlCompany Facebookstringyescompany page
githubUrlCompany GitHubstringyescompany page
crunchbaseUrlCompany Crunchbasestringyescompany page
groupPartnerYC group partnerstringyescompany page
foundersCountNumber of foundersintegeryes2null when details were not read
foundersFounders: name, title, bio, linkedinUrl, twitterUrlobject[]yesnull when details were not read. Never emails or phones
openJobsCountOpen jobs on YCintegeryes4null when details were not read
jobsJobs: title, url, location, type, role, salaryRange, equityRange, minExperience, visaobject[]yesnull when details were not read
errorMessageWhy a row is partial, not_found or errorstringyesnull for complete rows
sourceAlways ycombinator.comstringno
fetchedAtWhen the row was fetchedstring (ISO 8601)no

Output entities and surfaces

SituationWhereResult shapeUser action
Normal companyDatasetrecordStatus: "complete"Use the row
Company page failed (search mode)DatasetrecordStatus: "partial", directory fields filled, detailsIncluded: false, errorMessage says whyRun the slug again in companies mode later
Slug does not exist on YC (companies mode)DatasetrecordStatus: "not_found"; only slug, url, errorMessage and the service fields detailsIncluded, source, fetchedAt are filledCheck the slug
Page failed (companies mode)DatasetrecordStatus: "error", not chargedRetry later. If YC renamed the company, its old slug can fail this way: find the new slug with search
No company matches the filtersDataset empty; run SUCCEEDED; status message No YC companies match these filters.—Loosen the filters
Every runKey-value store record RUN_SUMMARYstatus, message, counts, charged events, input echoRead in API or webhooks

RUN_SUMMARY.status is one of COMPLETE, PARTIAL, NO_RESULTS, NOT_FOUND, INVALID_INPUT, ERROR, CANCELLED. The same short message is shown as the run status message.

Output example

One real row from the prefilled W24 run. Founder names, bios and profile links are replaced with placeholders here; the YC group partner is shortened. Jobs list is trimmed to one item, and some long or empty fields (longDescription, formerNames, logoUrl, facebookUrl) are left out to keep the example short. Real rows always have every field from the table above.

{
"recordStatus": "complete",
"ycId": 29517,
"name": "RetailReady",
"slug": "retailready",
"url": "https://www.ycombinator.com/companies/retailready",
"website": "https://www.retailreadyai.com/",
"oneLiner": "An AI-powered supply chain compliance engine",
"batch": "Winter 2024",
"batchCode": "W24",
"status": "Active",
"industry": "B2B",
"subindustry": "B2B -> Supply Chain and Logistics",
"industries": ["B2B", "Supply Chain and Logistics"],
"tags": ["B2B", "Compliance", "Logistics", "Supply Chain", "AI"],
"regions": ["United States of America", "America / Canada"],
"location": "San Francisco, CA, USA",
"teamSize": 12,
"isHiring": true,
"isTopCompany": false,
"isNonprofit": false,
"stage": "Early",
"launchedAt": "2024-01-16T16:52:04.000Z",
"detailsIncluded": true,
"yearFounded": 2024,
"city": "San Francisco",
"country": "US",
"linkedinUrl": "https://www.linkedin.com/company/retailreadyai/",
"twitterUrl": null,
"githubUrl": null,
"crunchbaseUrl": null,
"groupPartner": "<YC partner name>",
"foundersCount": 2,
"founders": [
{ "name": "<Founder 1>", "title": "Founder", "bio": "<short bio from YC>", "linkedinUrl": "https://linkedin.com/in/<profile>", "twitterUrl": null },
{ "name": "<Founder 2>", "title": "Founder", "bio": "<short bio from YC>", "linkedinUrl": "https://linkedin.com/in/<profile>", "twitterUrl": null }
],
"openJobsCount": 4,
"jobs": [
{
"title": "Full Stack Software Engineer",
"url": "https://www.ycombinator.com/companies/retailready/jobs/wEGXWv4-full-stack-software-engineer",
"location": "San Francisco, CA, US",
"type": "Full-time",
"role": "Engineering",
"salaryRange": "$110K - $170K",
"equityRange": "0.05% - 0.25%",
"minExperience": "Any (new grads ok)",
"visa": "US citizen/visa only"
}
],
"errorMessage": null,
"source": "ycombinator.com",
"fetchedAt": "2026-10-14T02:07:18.929Z"
}

null means YC does not show this value for the company (or details were not read). An empty list means the label list is empty on YC.

Pricing and limits

Pricing unit

You pay per event (pay-per-event). Platform usage (compute, storage, traffic) is included — you pay only the events below.

EventWhen it is chargedFreeBronzeSilverGold
Actor startOnce per run$0.003$0.003$0.003$0.003
Company (directory fields)Each saved row with includeFounders: false, each partial row, each not_found lookup$0.0009$0.00085$0.0008$0.00075
Company with foundersEach saved row with founders, socials and jobs$0.0018$0.0017$0.0016$0.0015

That is $0.90 per 1000 directory rows and $1.80 per 1000 full rows at the Free tier, less on higher Apify plans.

  • A run with no matching companies, an unchanged onlyNew run and a run with invalid input are charged only the start fee ($0.003).
  • error rows (company page failed in companies mode) are free.
  • If you set a maximum cost per run, the Actor stops before it would go over it, keeps the rows it already saved and finishes with a PARTIAL status.

Cost examples

Free tier prices.

ScenarioInput scopeRowsStartRow chargesTotal
Prefilled exampleW24, 30 companies, founders on30$0.00330 × $0.0018$0.057
One batch with founders~250 companies, founders on250$0.003250 × $0.0018$0.453
1000 companies, directory fieldsfounders off1000$0.0031000 × $0.0009$0.903
Whole directory, directory fieldsall batches, founders off, maxItems 10000~6300$0.003~6300 × $0.0009~$5.67
No matches / nothing new0$0.003—$0.003

Limits

  • maxItems up to 10000; the directory has about 6300 companies.
  • companies mode: up to 1000 slugs or URLs per run.
  • Full rows take about 0.28 seconds each, because the Actor opens one company page per row and keeps a polite request rate. The default run timeout is 300 seconds (enough for about 900 full rows). For larger runs with founders, raise the timeout in Run options: about 3600 seconds for the whole directory.
  • If the timeout is close, the Actor stops on its own, keeps all saved rows and finishes with PARTIAL.
  • Links are returned as companies wrote them on YC. Some of them are outdated or point to a wrong page; the Actor does not check them.

Track new YC companies

  1. Set onlyNew: true and a stateKey (for example w26-fintech). Keep the other filters the same in every run.
  2. Run once. All matching companies are saved and remembered.
  3. Create a Schedule in Apify Console (for example every Monday).
  4. Each next run saves only companies that were not delivered before with the same stateKey. If there is nothing new, the run succeeds with 0 rows and the message No new companies: N matches were already delivered earlier.

A company is remembered as soon as it is saved, also as a partial row. To get full details for such a row later, run its slug in companies mode without onlyNew.

The remembered list is stored in your account, in the named key-value store y-combinator-companies-state, record SEEN_<stateKey>. Use a new stateKey to start over.

API, export and integrations

  • API: start a run with POST https://api.apify.com/v2/acts/cliqtomedia~y-combinator-companies/runs and the input JSON; read rows from the run's default Dataset.
  • Export: download the Dataset as JSON, CSV, Excel, XML or RSS from the Output tab or the Dataset API.
  • Scheduling: Apify Schedules with onlyNew (see above).
  • Webhooks / no-code: use an Apify webhook on run success, or the Make, Zapier or n8n Apify integrations, to send new rows to Google Sheets, Slack or a CRM.

Use with AI agents (MCP)

  • MCP server with only this Actor: https://mcp.apify.com?tools=cliqtomedia/y-combinator-companies
  • Smallest useful input: {"batches": ["W24"], "maxItems": 30}
  • Key output fields: name (company), batchCode (YC batch), website, founders (name, title, LinkedIn, X), jobs (open roles).
  • A 30-company run takes about 10 seconds and costs about $0.06. Keep maxItems small for interactive use; full rows take about 0.28 seconds each.

Switching from another YC scraper

Field names differ from other YC directory Actors. Common mappings:

This ActorOften called
ycIdid, company_id
namecompany_name
oneLiner / longDescriptionshort_description / long_description
locationallLocations, company_location
isTopCompany / isNonprofittopCompany / nonprofit, top_company
launchedAt (ISO 8601 text)launchedAt (Unix seconds)
logoUrllogo, company_image
linkedinUrl, twitterUrl, githubUrlcompany_linkedin, company_x, company_github
groupPartnerprimary_partner
openJobsCount / jobsnumber_of_open_jobs / open_jobs
teamSize, yearFounded (numbers)team_size, year_founded (sometimes text)

Troubleshooting

The run failed with "Unknown input field(s)"

Symptom: run FAILED right after start. Likely reason: a misspelled field name, for example includeDetails instead of includeFounders. Action: use the field names from the Input fields table. The error lists all allowed names.

The run failed with "Unknown industries" or "Unknown regions"

Likely reason: a name that YC does not use. Action: copy one of the valid names from the error message (case does not matter).

"Batch ... is not a YC batch"

Action: use a code like W24, S23, X25, F24 or a name like Winter 2024.

0 rows and "No YC companies match these filters."

Likely reason: filters exclude each other (for example a batch with no companies in that region). Check: open ycombinator.com/companies with the same filters. Action: remove one filter at a time. The run cost only the start fee.

Run stopped early with "Run timeout is close"

Likely reason: many full rows and the default 300-second timeout. Action: raise Timeout in Run options (for example 3600 seconds), lower maxItems, or turn off includeFounders. Saved rows are kept.

Some rows have recordStatus: "partial"

Likely reason: a company page did not load; directory fields are still filled. Action: run those slugs again in companies mode.

"YC company pages failed ... times in a row" or "Source refused access"

Likely reason: ycombinator.com is slow or temporarily unavailable. The Actor stops instead of saving empty rows. Action: try again later. Rows saved before the stop are kept.

FAQ

Do I need a YC account, cookies or an API key?

No. The Actor reads only the public directory and public company pages.

Does it return founder emails or phone numbers?

No. Emails and phone numbers are never returned and are removed from descriptions and bios. You get public LinkedIn and X profile links that founders list on YC.

How fresh is the data?

Every run reads the YC directory live. Team size, status, hiring and jobs are what each company shows on YC at that moment; YC does not guarantee they are current.

Why are some fields null?

YC does not show that value for this company, or details were not read (includeFounders: false or a partial row).

Can I get all YC companies?

Yes. Leave the filters empty and set maxItems to 10000. Without founders it takes about 2.5 minutes. With founders, raise the run timeout to about 3600 seconds: 5000 full rows took 23 minutes in our tests, so the whole directory is expected to take about 30 minutes.

Is this an official Y Combinator product?

No. It is an independent tool that reads the public Y Combinator website. Please follow ycombinator.com terms and data protection laws when you use personal data such as founder names.

Support

For a bug, a question or a feature request, open an issue in the Issues tab of this Actor. Include the run ID, the input mode and the error text. Never send tokens, cookies or private data.