ActorStack.dev
Lead generationJobsv0.1.5updated 3 October 2026

Y Combinator Scraper: YC Companies, Founders & Email Pattern

Every pattern says whether it was observed or guessed.

Companies, founders and open jobs from Y Combinator's public startup directory, one row type per run, with domain, LinkedIn, batch, team size and salaries. Each row can carry the company's email pattern, and the row says whether that pattern rests on an email the company published or is a free guess.

oswaldocarabano/yc-companies-founders-scraper

input.json
{
  "outputType": "companies",
  "regions": ["Mexico"],
  "industries": ["Fintech"],
  "inferEmailPattern": true,
  "maxItems": 100
}
Version
v0.1.5
Memory
512 MB
Browser
none
Proxy
None by default; the directory answers directly

Short answer

The Y Combinator Scraper Actor reads YC's public company directory — 6,267 companies on 1 October 2026 — and returns one row type per run: companies, founders or open jobs. Measured on 80 Latin American companies, 80 founders and 60 jobs, website and domain were filled on 100% of companies, company LinkedIn on 93.8% and founder LinkedIn on 99.4% of founders. Each row can carry the company's email pattern, but only 6 of those 80 companies (7.5%) had published an email that supports it; every other pattern is a free guess marked `inferred: true`. Pricing is $0.008 per company with founders and jobs, $0.004 per founder, and $0.01 per evidence-backed email pattern.

Key points

  • The YC directory listed 6,267 companies on 1 October 2026, and the Actor reached all 6,267 by splitting searches by batch, because one directory query stops at 1,000 results.
  • Founder LinkedIn was filled on 99.4% and founder bio on 93.9%, measured on 80 founders of Latin American YC companies.
  • Y Combinator does not publish founder emails, so every founder `emailCandidate` is built from a company pattern rather than read from the page.
  • An email pattern was backed by an email the company itself published for 6 of 80 Latin American companies (7.5%) and about 12% of 1,000 companies worldwide.
  • A pattern without evidence is marked `inferred: true`, carries a confidence of 0.05 to 0.10 and is never charged; only evidence-backed patterns cost $0.01.
  • The Actor checks MX records over DNS and never connects to a mail server, so `catchAll` is always null and no address is verified.
  • Founders of companies based in the EU, EEA, UK or Switzerland are withheld by default and released only when the user enables `includeEuPersons`.
On this page11 sections

What it does

Companies, founders and open jobs from Y Combinator's public startup directory, one row type per run, with domain, LinkedIn, batch, team size and salaries. Each row can carry the company's email pattern, and the row says whether that pattern rests on an email the company published or is a free guess.

output — one row
{
  "rowType": "company",
  "companyId": 755,
  "name": "Bright",
  "url": "https://www.ycombinator.com/companies/bright",
  "website": "https://www.thinkbright.mx/",
  "domain": "thinkbright.mx",
  "oneLiner": "Sunrun for the developing world",
  "batch": "Winter 2015",
  "batchCode": "W15",
  "status": "Active",
  "stage": "Growth",
  "teamSize": 100,
  "industries": ["Industrials", "Energy"],
  "location": "New York City, NY",
  "country": "US",
  "yearFounded": 2014,
  "linkedinUrl": "https://www.linkedin.com/company/9506733/",
  "foundersCount": 1,
  "jobsCount": 0,
  "emailPattern": {
    "domain": "thinkbright.mx",
    "pattern": "first.last",
    "confidence": 0.1,
    "inferred": true,
    "evidenceCount": 0,
    "mxValid": true,
    "mxHosts": ["aspmx.l.google.com", "alt1.aspmx.l.google.com"],
    "emailProvider": "Google Workspace",
    "catchAll": null,
    "billable": false
  },
  "detailFetched": true
}

Why this one

Observed and guessed are different columns

Every email pattern and every founder email candidate carries `inferred` and a confidence. A pattern backed by an email the company published starts at 0.5 with one matching address and reaches 0.88 with three; a guess sits at 0.05 to 0.10. The row says which kind it is instead of presenting a constructed address as a found one.

Guesses are free

The $0.01 email-pattern event fires only when at least one email the company published supports the pattern. In the default run on 2 October 2026 that was 5 of 50 companies. Charging for the other 45 guesses would have billed a lookup table as if it were evidence.

No SMTP probing

The Y Combinator Scraper resolves MX records to name the mail provider and confirm the domain receives mail, and stops there. Verifying a mailbox means connecting to the mail server and asking about it, which is how sender IPs end up on blocklists, so `catchAll` is always null rather than estimated.

European founders are opt-in

Founder names, bios, links, photos and email candidates for companies based in the EU, EEA, UK or Switzerland are withheld unless `includeEuPersons` is on, and rows say so with `personalDataWithheld: true`. In the development sample that was 66 of 675 founders.

Use cases

  • Build a target list of YC startups in one region, batch, industry or tag, with domain, team size and company LinkedIn.
  • List the founders of a batch with their LinkedIn and bio, to research decision makers before any outreach.
  • Collect open roles at YC companies with structured salary, equity, visa and the hiring manager named on the job page.
  • Watch a region or batch on a schedule, sorting by `launchDate` to see the newest companies first.
  • Join the directory to other company data on the `domain` column, which is filled on every company row.

Input

Every field has a default, and the defaults are deliberately small so a first run is cheap enough to inspect before you commit to a sweep. This table mirrors the Actor's own input schema field for field.

FieldDefaultWhat it does
outputTypestringcompaniesWhat one row is`companies`, `founders` or `jobs`. One type of row per run.
regionsstring[]["Latin America"]Regions or countriesYC's own region tags; any of them matches. Latin America held 221 companies on 1 October 2026. Leave empty for the whole directory.
querystring""Search textFree text, as in the directory's search box.
batchesstring[][]YC batchesFull names such as `Winter 2024` or codes such as `W24`, `S25`, `F24`, `X25` for Spring. Checked against the live directory.
industries / tags / status / stagesstring[][]FiltersOptional. `stages` is applied after the search, because the directory cannot filter by it.
onlyHiringbooleanfalseOnly companies that are hiringYC's hiring flag: 1,487 of 6,267 companies, 18 of 221 in Latin America. Always on for the jobs output.
topCompaniesOnlybooleanfalseOnly YC top companiesOnly companies on YC's top companies list (91).
minTeamSize / maxTeamSizeintegernullTeam size rangeOptional bounds on the team size YC lists.
sortBystringrelevanceOrder`relevance` or `launchDate`, newest first.
includeFounders / includeJobsbooleantrueRead the company pageCompanies output: opens each company page for founders, jobs, news and launches. Charged as a company with details at $0.008 instead of $0.003.
includeJobDetailsbooleantrueOpen each job pageJobs output: adds the full description, date posted, structured salary, locations and hiring manager. Charged at $0.006 instead of $0.003.
inferEmailPatternbooleantrueFind the email patternpersonal dataWorks out the company's email format from emails it published on its YC pages, checks MX over DNS, and builds a candidate per founder. Charged only when backed by an observed email.
includePersonalEmailsbooleanfalseInclude personal-domain emailspersonal dataKeeps gmail.com, outlook.com, yahoo.com and similar addresses, which are otherwise removed everywhere.
includeEuPersonsbooleanfalseInclude people of EU/EEA/UK/Swiss companiespersonal dataReleases founder and hiring-manager data that is withheld by default. Enabling it makes you responsible for a lawful basis under the GDPR.
maxItemsinteger50Maximum rowsRows of the chosen type to deliver and charge, 1 to 10,000.
maxConcurrencyinteger4Parallel requestsCompany pages read at once, 1 to 8.
proxyConfigurationobject{"useApifyProxy": false}ProxyNot needed: the directory answers without one. If set, every page goes through it.

Output and fill rates

A field being in the schema is not the same as it having a value. The percentages below were counted on real runs; the sample sizes are in Measurements. Anything not listed here is not promised.

FieldFilledMeaning
domainstring100%With `website`. The join key for every other company dataset. 80 Latin American companies.
namestring100%With `oneLiner`, `batch`, `batchCode`, `status`, `industries`, `tags` and `regions`, from the directory index.
teamSizeinteger99.7%As YC lists it. Measured on a wider 310-company sample from the source.
yearFoundedinteger94.5%310-company source sample.
linkedinUrlstring93.8%Company LinkedIn. 80 Latin American companies; 88.1% on the wider 310-company sample.
crunchbaseUrlstring48.8%With `twitterUrl`, also 48.8%. 80 Latin American companies.
githubUrlstring11.3%Company GitHub organization. 80 Latin American companies.
foundersobject[]98.8%Companies with at least one founder listed, 2.3 per company on average. 80 Latin American companies.
founders[].linkedinUrlstring99.4%Founder LinkedIn. 80 founders.
founders[].biostring93.9%Founder bio as written on YC. 80 founders.
founders[].pastCompaniesstring48.3%From Work at a Startup. 80 founders.
hiringDescriptionstring40%With `techDescription`, filled on 32.5%. 80 Latin American companies.
contactEmailsstring[]25%Emails the company itself published on its YC pages: Launch posts, descriptions, hiring text. 80 Latin American companies.
emailPatternobjectnot measuredPattern, confidence, `inferred`, evidence, MX hosts and provider. Backed by evidence for 6 of 80 Latin American companies (7.5%); the rest are guesses marked `inferred: true`.
emailPattern.mxValidboolean92.5%The domain has MX records. 87.5% of the 80 domains use Google Workspace.
emailCandidatestring91.1%Per founder, built from the pattern, with `emailCandidateConfidence` and `emailCandidateInferred`. Most are inferred. 80 founders.
personalDataWithheldbooleannot measuredTrue on rows where founder data was withheld because the company is based in the EU, EEA, UK or Switzerland.
jobs[].salaryMinnumber95%With `salaryMax`, `salaryCurrency` and `salaryPeriod`. 95% of Latin American jobs and 70% of Remote jobs, within a 60-job sample.
descriptionstring100%Jobs output with the job page read, with `hiringManager` also at 100%. 60 jobs.

Every key is always present. A field that exists but is empty comes back as explicit null, so a parser never has to guess.

Datasets

Different record types go to different datasets, so the main table never carries columns that are blank on most rows.

  • defaultOne row type per run, chosen by `outputType`: companies with founders and jobs nested, one row per founder, or one row per open job.billed
  • Error rowsInputs that matched nothing or pages that could not be read, with the reason.never billed

Pricing

Pay per delivered result. Charges are applied as each row is produced rather than in a lump at the end, so an aborted run bills only for what it actually gave you.

EventPriceNotes
apify-actor-startActor start$0.00001Charged per gigabyte of run memory, minimum one event. A run whose filters match nothing costs only this.
companyCompany (directory data)$0.003One company from the directory index without its page read: name, website, domain, one-liner, batch, status, stage, team size, industries, tags and regions.
company-detailCompany with founders and jobs$0.008One company with its page read: founders, open jobs, LinkedIn, X, Crunchbase and GitHub links, location, news and launches. The default.
founderFounder$0.004One founder row: name, title, bio, LinkedIn, X, past companies, an email candidate built from the company pattern, and the company's domain, batch and size.
jobJob posting$0.003One open role from the company page: title, location, remote, type, salary and equity range, visa, experience and skills.
job-detailJob posting with full description$0.006A job with its own page read: full description, date posted, structured salary, locations and the hiring manager.
email-patternCompany email pattern$0.01Once per domain, only when at least one email the company published backs the pattern. A guess without evidence is free and marked inferred.

Measurements

Each figure is shown with the method that produced it. A benchmark without a method is a marketing claim wearing a number's clothes.

Directory size

6,267 companies; 221 Latin American; 1,487 hiring

Counted from YC's public directory index on 1 October 2026, as reported in the Actor's README. 18 of the 221 Latin American companies were hiring.

Fill-rate sample

80 companies, 80 founders, 60 jobs

Latin American YC companies with their pages read, from the Actor's own output, 1 October 2026. Every per-field rate on this page comes from that sample unless the field says otherwise.

Evidence-backed email pattern

6 of 80 companies (7.5%)

A company counts when at least one email it published on its YC pages matches a founder's or hiring manager's name. The README reports about 12% on 1,000 companies worldwide and 38 of 500 (7.6%) in a whole-directory platform run.

Wider source sample

310 companies

Company LinkedIn 88.1%, team size 99.7%, year founded 94.5%, news coverage 47.4%, Launch posts 23.5%, open jobs 30% of companies, read from the source itself.

Blocks from Apify servers

0 of 2,177 requests

14 runs on 2 October 2026 at 512 MB, without proxy. No request was blocked or rate-limited.

Whole-directory reach

6,267 of 6,267 companies

One directory query stops at 1,000 results, so large searches are split by YC batch automatically.

Default run cost

$0.45 for 50 companies

Run on the Apify platform on 2 October 2026: 50 × $0.008 for companies with details plus 5 evidence-backed patterns × $0.01. Took 10 seconds and peaked at 78 MB.

Founders withheld by default

66 of 675 founders

Founders of companies based in the EU, EEA, UK or Switzerland in the development sample of 1 October 2026, recorded in the Actor's legal notes.

What it will not do

Stated plainly so you can judge fit before spending anything.

  • One directory query returns at most 1,000 results. The Actor splits large searches by batch, which reached 6,267 of 6,267 companies, but a single filtered query cannot see past 1,000.
  • Email candidates are mostly inferred: 91.1% of founders got one, while only 7.5% of companies (6 of 80) had a pattern backed by evidence. Check `emailCandidateInferred` and `emailCandidateConfidence` before using one.
  • No address is verified. The Actor reads MX records and never connects to a mail server, so `catchAll` is always null.
  • The `stages` filter is applied after the search, because the directory cannot filter by stage, so a stage-filtered run reads more than it delivers.
  • The jobs output always restricts to hiring companies, and only 18 of the 221 Latin American companies were hiring on 1 October 2026.
  • Past companies come from Work at a Startup and were filled for 48.3% of founders; company X and Crunchbase links for 48.8% of companies.
  • Separate runs are independent: a company delivered by two runs is charged in each.
  • Y Combinator's site terms prohibit scraping and ask a blocked visitor not to circumvent the block. The Actor connects directly and measured 0 blocks in 2,177 requests, and its README states that it switches to a fresh session if the site starts blocking.

Privacy

  • Founders and hiring managers are natural persons, so founder rows are personal data under the GDPR whatever the professional context.
  • Founder and hiring-manager data for companies based in the EU, EEA, UK or Switzerland is withheld by default; enabling `includeEuPersons` makes the user responsible for a lawful basis under the GDPR.
  • Emails at personal domains such as gmail.com and outlook.com are removed everywhere, including inside descriptions, unless `includePersonalEmails` is enabled.
  • Email candidates are constructions, marked with their confidence and whether they are inferred. The README warns against bulk email.
  • Image links are delivered without their temporary signature, and video links are not delivered at all.
  • Removal requests: privacy@actorstack.dev

See also the data removal process.

Frequently asked questions

Are the founder email candidates verified?
No. Each candidate is the company's email pattern applied to the founder's name. When `emailCandidateInferred` is false, the pattern comes from emails the company published; when it is true, the pattern is a guess for the mail provider. The Y Combinator Scraper never connects to a mail server, so no mailbox is confirmed to exist.
Why is the founder's actual email not in the row?
Y Combinator does not publish founder emails. The founder profile only says that an email exists, through a `hasEmail` flag, so any address in the output is constructed from a company pattern rather than read from the page.
Can I get every company in the YC directory?
Yes. Leave `regions` empty and set `maxItems` up to 10,000. A single directory query stops at 1,000 results, so the Actor splits large searches by batch, which reached 6,267 of 6,267 companies on 1 October 2026.
What does a run cost?
The default run of 50 Latin American companies with founders and jobs cost $0.45 on 2 October 2026: 50 companies at $0.008 and 5 evidence-backed email patterns at $0.01. Directory-only rows cost $0.003, founders $0.004 and jobs $0.003 or $0.006 with the job page read.
Why are some founders missing from the output?
Founders of companies based in the EU, EEA, UK or Switzerland are withheld by default, and their rows are marked `personalDataWithheld: true`. Enabling `includeEuPersons` releases them and makes the user responsible for a lawful basis under the GDPR.
Do I need a proxy to scrape the YC directory?
No proxy was needed in testing: 2,177 requests from Apify's servers across 14 runs on 2 October 2026 returned 0 blocks and 0 rate limits. The proxy input exists, and when set every page goes through it.

Guides for this Actor