Y Combinator Scraper: YC Companies, Founders & Email Pattern avatar

Y Combinator Scraper: YC Companies, Founders & Email Pattern

Pricing

from $8.00 / 1,000 company (with founders and jobs)s

Go to Apify Store
Y Combinator Scraper: YC Companies, Founders & Email Pattern

Y Combinator Scraper: YC Companies, Founders & Email Pattern

Scrape the Y Combinator startup directory: YC companies, founders and open jobs with website, domain, LinkedIn, team size, batch, founder LinkedIn and bio, salaries. Plus each company's email pattern from real evidence and an MX check. Latin America by default, any region.

Pricing

from $8.00 / 1,000 company (with founders and jobs)s

Rating

0.0

(0)

Developer

Oswaldo Carabano

Oswaldo Carabano

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

21 days ago

Last modified

Share

Scrape the Y Combinator startup directory (YC companies list): companies, founders and open jobs, with each company's website, domain, LinkedIn, team size, batch and location, founders' LinkedIn, bio and past companies, job salaries and hiring managers, and the company's email pattern (first.last@, first@…) worked out from emails the company really published, plus a DNS MX check. Latin America by default; any region, batch, industry or tag.

Built for people who reach out to startups: developers looking for a job, recruiters, founders looking for peers, sales, lead generation and partnerships teams. Export YC startups, YC founders and YC jobs (the same roles as Work at a Startup) to JSON, CSV or Excel, or call it as an API.

No login, no cookies, no browser: the actor reads only public pages, so runs are fast and cheap.

What you get

One run produces one type of row (outputType):

OutputOne row isTypical use
companies (default)A YC company with its founders and jobs insideBuild a target list of startups
foundersOne founder, with the company's domain, size and locationWrite to the decision maker
jobsOne open role, with salary, hiring manager and the company's foundersApply where you fit

Every row includes the company domain. With inferEmailPattern (on by default) it also includes the emailPattern block: the pattern, a confidence score, the evidence it is based on, alternatives, MX servers and the email provider (Google Workspace, Microsoft 365…), and an email candidate for every founder and hiring manager.

Measured coverage (1 Oct 2026)

The public directory lists 6,267 companies; 221 in Latin America (Mexico 86, Brazil 51, Colombia 31, Argentina 21, Chile 20, Peru 10) and 1,487 hiring worldwide (18 in Latin America).

Fill rates measured in this actor's own output (80 Latin American companies with details, 80 founders, 60 jobs):

FieldLatin AmericaNotes
Website and domain100%
Company LinkedIn93.8%
Founders listed98.8% of companies2.3 founders per company
Founder LinkedIn99.4% of founders
Founder bio93.9%
Founder past companies48.3%From Work at a Startup
Company X/Twitter, Crunchbase48.8%, 48.8%
GitHub organization11.3%
Hiring and tech descriptions40%, 32.5%
Emails the company published25%Launch posts, descriptions
Email pattern backed by evidence7.5% (6 of 80)12% on 1,000 companies worldwide
Domain with valid MX92.5%87.5% use Google Workspace
Email candidate per founder91.1%Most are inferred (see FAQ)
Jobs: full description and hiring manager100%When the job page is read
Jobs: numeric salary95% (Latin America), 70% (Remote)

Wider sample from the source itself (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.

Speed and cost (measured on the Apify platform, 2 Oct 2026)

All runs at the default 512 MB memory, from Apify's own servers, without proxy. 0 of 2,177 requests blocked or rate limited across 14 runs.

InputRowsTimePeak memoryYou pay
{} (default: 50 Latin American companies with founders and jobs)5010 s78 MB$0.45 (50 × $0.008 + 5 patterns × $0.01)
{"outputType": "founders", "maxItems": 40}406 s63 MB$0.19 (40 × $0.004 + 3 patterns)
{"outputType": "jobs", "maxItems": 30} (with job descriptions)308 s67 MB$0.18 (30 × $0.006)
{"outputType": "jobs", "regions": ["Remote", "Fully Remote"], "includeJobDetails": false, "maxItems": 30}305 s65 MB$0.09 (30 × $0.003)
Directory only (includeFounders and includeJobs off), batch Winter 2024, 40 rows403 s55 MB$0.12 (40 × $0.003)
Whole directory, "regions": [], "maxItems": 50050083 s132 MB$4.38 (500 × $0.008 + 38 patterns)
Founders, whole directory, maxItems 300 with a $0.50 spending limit10910 s66 MB$0.496 (109 × $0.004 + 6 patterns): stopped cleanly at the limit

Earlier local tests: 1,000 companies with details in 74 s (peak 183 MB) and 2,500 directory-only rows in 18 s, so the default 512 MB is plenty.

Pricing (pay per event)

EventPriceWhen
Actor start$0.00001Once per run
Company (directory data)$0.003Company row without its page (founders and jobs off)
Company (with founders and jobs)$0.008Company row with its page read (default)
Founder$0.004One founder row
Job posting$0.003One job row from the company page
Job posting with full description$0.006One job row with its job page read
Company email pattern$0.01Once per domain, only when backed by an observed email

Each row is charged one row event (by depth, never added up) and at most one email pattern per domain. A pattern that is only a guess (no evidence) is free and marked inferred: true. Error rows are never charged. Example: the default run (50 Latin American companies with details) cost $0.45 on 2 Oct 2026 (50 × $0.008 + 5 evidence-backed patterns × $0.01). See the table above for more measured examples.

You wantApproximate cost
100 YC companies with founders and jobs$0.80 + about $0.08 of email patterns (7.6% of domains had evidence in the 500-company run)
1,000 YC founders$4.00 + email patterns
1,000 YC jobs with full description$6.00
The whole directory, directory data only (6,268 companies)about $18.80

Input

FieldDefaultWhat it does
outputTypecompaniescompanies, founders or jobs
regions["Latin America"]YC region tags; empty = whole directory
queryFree text, as in the directory search box
batchesWinter 2024 or W24, S25, F24, X25 (Spring)
industries, tags, status, stagesOptional filters
onlyHiring, topCompaniesOnlyfalseOnly hiring companies / only YC top companies
minTeamSize, maxTeamSizeTeam size range
sortByrelevanceOr launchDate (newest first)
includeFounders, includeJobstrueCompanies output: open the company page
includeJobDetailstrueJobs output: open each job page
inferEmailPatterntrueEmail pattern, MX check and email candidates
includePersonalEmailsfalseKeep gmail/outlook/yahoo-style addresses
includeEuPersonsfalseInclude people of EU/EEA/UK/Swiss companies
maxItems50Rows to deliver (and charge)
maxConcurrency4Company pages read at the same time (1 to 8)

Input examples

Fintech startups in Mexico, with founders and jobs:

{ "outputType": "companies", "regions": ["Mexico"], "industries": ["Fintech"], "maxItems": 100 }

Founders of the latest YC batch, worldwide:

{ "outputType": "founders", "regions": [], "batches": ["Fall 2026"], "maxItems": 250 }

Remote jobs at YC AI startups that are hiring, newest companies first:

{ "outputType": "jobs", "regions": ["Remote", "Fully Remote"], "tags": ["Artificial Intelligence"], "onlyHiring": true, "sortBy": "launchDate", "maxItems": 200 }

Output examples

A real company row from the default run on the Apify platform (2 Oct 2026), shortened. Founder details are left out here; in your dataset each founder has name, title, bio, LinkedIn, X, past companies and an email candidate.

{
"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,
"industry": "Industrials",
"industries": ["Industrials", "Energy"],
"tags": ["Fintech", "Solar Power", "Climate"],
"regions": ["United States of America", "Mexico", "America / Canada", "Latin America", "Remote", "Fully Remote"],
"location": "New York City, NY",
"country": "US",
"yearFounded": 2014,
"linkedinUrl": "https://www.linkedin.com/company/9506733/",
"crunchbaseUrl": "https://www.crunchbase.com/organization/bright-3",
"newsItems": [{ "title": "Bright raises $32M to expand rooftop solar in Mexico", "url": "https://www.axios.com/pro/climate-deals/2023/07/27/bright-31-million-jonah-greenberger-sdg-ifu-solar-mexico", "date": "Jul 27, 2023" }],
"foundersCount": 1,
"founders": ["…"],
"jobsCount": 0,
"waasUrl": "https://www.workatastartup.com/companies/bright",
"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
}

This company published no email, so the pattern is a free guess (inferred: true, billable: false). When the company did publish emails, the block also lists the evidence and inferred is false, as in the example below.

The next examples use fictitious data, to show every field of a person without publishing a real one.

A company row with an evidence-backed pattern (outputType: companies), shortened:

{
"rowType": "company",
"companyId": 30001,
"name": "Acme Pay",
"url": "https://www.ycombinator.com/companies/acme-pay",
"website": "https://acmepay.example.com",
"domain": "acmepay.example.com",
"oneLiner": "Payments infrastructure for Latin America",
"batch": "Winter 2025",
"batchCode": "W25",
"status": "Active",
"isHiring": true,
"teamSize": 12,
"location": "Mexico City, Mexico",
"country": "MX",
"industries": ["Fintech", "Payments"],
"linkedinUrl": "https://www.linkedin.com/company/acme-pay-example",
"founders": [
{
"fullName": "Ana Example",
"title": "Founder/CEO",
"linkedinUrl": "https://www.linkedin.com/in/ana-example",
"pastCompanies": "Engineer at Example Corp",
"emailCandidate": "ana@acmepay.example.com",
"emailCandidateConfidence": 0.75,
"emailCandidateInferred": false
}
],
"jobs": [
{ "jobId": 70001, "title": "Senior Backend Engineer", "location": "Remote (MX; CO)", "remote": true, "salaryMin": 60000, "salaryMax": 90000, "salaryCurrency": "USD" }
],
"contactEmails": ["ana@acmepay.example.com", "hello@acmepay.example.com"],
"emailPattern": {
"pattern": "first",
"example": "first@acmepay.example.com",
"confidence": 0.75,
"inferred": false,
"evidenceCount": 2,
"evidence": [{ "email": "ana@acmepay.example.com", "kind": "known-person-match", "matchedPatterns": ["first"], "source": "launch" }],
"mxValid": true,
"emailProvider": "Google Workspace",
"catchAll": null
},
"detailFetched": true
}

A founder row (outputType: founders):

{
"rowType": "founder",
"founderKey": "30001:900001",
"fullName": "Ana Example",
"title": "Founder/CEO",
"linkedinUrl": "https://www.linkedin.com/in/ana-example",
"bio": "Second-time founder, ex payments engineer.",
"latestYcCompany": { "name": "Acme Pay", "url": "https://www.ycombinator.com/companies/acme-pay" },
"emailCandidate": "ana@acmepay.example.com",
"emailCandidateConfidence": 0.75,
"emailCandidateInferred": false,
"companyName": "Acme Pay",
"domain": "acmepay.example.com",
"batch": "Winter 2025",
"teamSize": 12,
"country": "MX",
"isHiring": true
}

A job row (outputType: jobs, fictitious; real job rows also carry the full description, interview process, office and applicant locations and the company's founders):

{
"rowType": "job",
"jobId": 70001,
"title": "Senior Backend Engineer",
"url": "https://www.ycombinator.com/companies/acme-pay/jobs/abc123-senior-backend-engineer",
"location": "Remote (MX; CO)",
"remote": true,
"type": "Full-time",
"prettyRole": "Engineering",
"salaryMin": 60000,
"salaryMax": 90000,
"salaryCurrency": "USD",
"visa": "Will sponsor",
"datePosted": "2026-09-12",
"hiringManager": { "fullName": "Ana Example", "emailCandidate": "ana@acmepay.example.com", "emailCandidateConfidence": 0.75 },
"companyName": "Acme Pay",
"domain": "acmepay.example.com"
}

How the email pattern works

  1. The actor collects every email the company itself published on its YC pages (Launch posts, descriptions, hiring text, job descriptions).
  2. It matches them against the founders' and hiring managers' names to find the format (23 patterns: first, first.last, flast, firstlast, last…).
  3. Confidence grows with evidence: one matching email gives 0.5, two give 0.75, three give 0.88. Without a valid MX record the confidence is halved.
  4. It checks the domain's mail servers by DNS (MX) and names the provider. It never connects to a mail server (no SMTP probing), so catchAll is always null.
  5. With no evidence, it gives the most common format measured for the provider (first.last@ in most cases), marked inferred: true with confidence 0.05 to 0.10. That guess is free.

Privacy

  • Emails at personal domains (gmail.com, outlook.com, yahoo.com and similar) are removed everywhere, including inside descriptions, unless you enable includePersonalEmails.
  • For companies based in the EU, EEA, UK or Switzerland, founder and hiring manager names, bios, links, photos and email candidates are withheld (personalDataWithheld: true on company and job rows; with outputType: founders those founders are skipped) unless you enable includeEuPersons. If you enable it, you are responsible for having a lawful basis under GDPR.
  • Image links are delivered without their temporary signature. Video links are not delivered at all (they only work with a temporary signed link).
  • The actor never logs in, never creates accounts and never solves CAPTCHAs. It only reads public pages.

FAQ

Are the email candidates verified? No. They are built from the company's pattern. When emailCandidateInferred is false, the pattern comes from real emails the company published; when it is true, it is a guess. Check emailCandidateConfidence before you write, and never send bulk email.

Why is the founder's email not included directly? YC does not publish founder emails. The profile only says that an email exists (hasEmail).

Can I get every YC company? Yes. Leave regions empty and set maxItems up to 10,000. The directory search reaches 1,000 results per query, so the actor splits large searches by YC batch automatically (measured: 6,267 of 6,267 reachable).

Why do some jobs have no numeric salary? The company did not list one. When the job page is read, the actor uses the structured salary the page provides; otherwise it parses the listed range (for example "$84K - $120K").

Does it apply to jobs for me? No. It only reads public data. applyUrl takes you to YC's own application page.

What happens if I set a spending limit? The run stops cleanly when the next row would exceed it. Within a run, every delivered row is charged once and nothing is charged twice, also when the platform resumes the run after a migration. Separate runs are independent: a company delivered by two runs is charged in each.

Do I need a proxy? No. On 2 Oct 2026, 2,177 requests from Apify's servers got 0 blocks and 0 rate limits. If the site ever starts blocking, the actor switches to a fresh session by itself.

Can I run it on a schedule? Yes. Save your input as a task and schedule it daily or weekly to catch new YC companies, new founders and new jobs (sort by launchDate to see the newest first).

What does a run with no results mean? Your filters matched no companies. The run ends successfully with one explanatory error row; no row is charged (only the $0.00001 actor start event).

Support

Questions, a field you need, or a removal request: use the Issues tab of this actor.