YCombinator Jobs Scraper | Startup Jobs, Salaries and Founders avatar

YCombinator Jobs Scraper | Startup Jobs, Salaries and Founders

Pricing

from $0.04 / 1,000 jobs

Go to Apify Store
YCombinator Jobs Scraper | Startup Jobs, Salaries and Founders

YCombinator Jobs Scraper | Startup Jobs, Salaries and Founders

YCombinator jobs scraper: export open jobs at Y Combinator startups by keyword, YC URL or company. 100 jobs in 13 seconds, 53 fields each: title, full description, salary and equity as numbers, posting date, apply link, hiring manager, plus company batch, team size and founders. No account.

Pricing

from $0.04 / 1,000 jobs

Rating

0.0

(0)

Developer

SilentFlow

SilentFlow

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

YCombinator Jobs Scraper | Startup Jobs, Salaries and Founders (2026)

1 search. 100 YCombinator jobs. 53 fields per job.

From SilentFlow. Creators of Pinterest Scraper (#1 for โ€œpinterest pins scraperโ€ in Apify Store search) and Leboncoin Scraper Ppe, with 260,000+ combined lifetime runs.

Turn the Y Combinator job board into a table you can sort: every open job at YC startups, with the salary and equity as numbers, the full job description, the exact posting date, the hiring manager, and the company's batch, industry, team size, links and founders on the same row. The prefilled search returned 100 software engineering jobs from 64 YC companies in 13 seconds, no account needed.

Why choose this actor?

Opening YC company pages one by one to find who is hiring, for what, and for how much? Copying salaries written as text into a spreadsheet, then hunting for the founders on another page? Using a YC jobs scraper that only takes a keyword, when what you have is a list of companies or a link to a YC search?

  • The job, its pay and its company on one row, without extra options. Each row carries 55 fields, and 51 of them were filled on at least half of the rows of the prefilled run (100 jobs, measured on 7 Oct 2026). The full description, the exact posting date and the founders come by default: 100 of 100 rows had the description and the date, 99 had at least one founder with a LinkedIn link, 95 named the hiring manager.
  • Salaries you can sort and filter. The salary text YC shows is kept, and also split into salaryMin, salaryMax, salaryCurrency and salaryPeriod (year, month or hour). On the prefilled run, 96 of 100 jobs came with numeric salary bounds and 50 with numeric equity bounds, ready for a pivot table or a salary benchmark.
  • Start from what you already have. Type keywords (software engineer, react, fintech), paste YC links (a company, a single job, a directory search with its batch and industry filters, a jobs page by role or city), or list companies by name (Stripe, noloco). All three can run together, and every filter (location, role, job type, remote, batch) applies to all of them.

Try YCombinator Jobs Scraper

Try your first YC jobs export

Paste this input into the Input tab (JSON view) and press Start. It is the prefilled input of the form: the first 100 open jobs at YC startups that match software engineer.

{
"searchQueries": ["software engineer"],
"remoteOnly": false,
"maxItems": 100,
"debugMode": false
}

Runs of this size fit easily in the Apify Free plan, so you can try the actor on your own searches before scheduling anything. Each job is one row of the dataset; export it as JSON, CSV, Excel or HTML from the Storage tab, or read it from the API. The Jobs view shows the title, company, batch, location, salary, posting date and link at a glance; the Companies view shows the company, batch, industry, team size, headquarters, website, LinkedIn and YC profile.

How it works

Copy to your AI assistant

Paste this block into Claude, ChatGPT or Cursor to give it full context about this actor:

You have access to the YCombinator Jobs Scraper on Apify: silentflow/ycombinator-jobs-scraper
It returns one row per open job at a Y Combinator startup, from public ycombinator.com pages. No account.
Input (all optional; the form is prefilled with the keyword "software engineer"):
- searchQueries (array of strings): keywords. A job matches when every word appears in its title,
role, specialty or skills, or in its company's name, tags or industries. e.g. ["react", "fintech"]
- startUrls (array of {url}): ycombinator.com links. Company (/companies/airbnb), company jobs page,
single job (/companies/x/jobs/abc-title), directory search (/companies?batch=Winter%202024&industry=Fintech),
jobs by role or city (/jobs/role/software-engineer, /jobs/location/new-york), workatastartup.com company page.
- companySlugs (array of strings): YC companies by name or slug, e.g. ["Stripe", "noloco"].
- location (string): city, US state code, "Remote", or a country (code "gb", ISO-3 "gbr", or name).
- roles (array): eng, design, product, science, sales, marketing, support, operations, recruiting, finance, legal.
- jobTypes (array): fulltime, parttime, contract, internship, cofounder.
- remoteOnly (boolean, default false).
- batches (array of strings): YC batches, "W24", "S21", "F24", "X25" or "Winter 2024".
- maxItems (integer, default 100): total jobs across all inputs.
- debugMode (boolean, default false).
With no keyword, URL or company, the run reads every hiring YC company (filters still apply).
Output, one row per job (55 fields, null when absent):
- id (number), url, title
- description (Markdown), descriptionHtml, role, specialization, jobType, experience,
minExperienceYears (number), visa, skills (array)
- salaryRange (text as shown), salaryMin, salaryMax (numbers), salaryCurrency (ISO code),
salaryPeriod (year|month|week|day|hour, null when the posting leaves it unclear),
equityRange, equityMin, equityMax (percent numbers)
- location, isRemote (boolean), city, region, countryCode (ISO 2), postedAt (RFC 3339)
- applyUrl, hiringManagerName, hiringManagerImageUrl
- companyId, companyName, companySlug, companyUrl (YC profile), companyWebsite, companyLogoUrl,
companyBatch ("W24"), companyOneLiner, companyDescription, companyHiringDescription,
companyIndustry, companySubindustry, companyTags (array), companyStage, companyStatus,
isTopCompany (boolean), companyYearFounded, companyTeamSize, companyLocation, companyCountryCode,
companyLinkedinUrl, companyTwitterUrl, companyFacebookUrl, companyCrunchbaseUrl
- founders (array of {name, title, bio, linkedinUrl, twitterUrl, imageUrl})
- scrapedAt (RFC 3339)
Use apify-client for Python or JavaScript: client.actor("silentflow/ycombinator-jobs-scraper").call(run_input=...)

How to scrape Y Combinator jobs

Three ways to start, from the simplest to the most targeted. Each block runs as is.

Get the latest software engineering jobs at YC startups

{
"searchQueries": ["software engineer"],
"maxItems": 100
}

The run reads the YC companies that rank for the keyword first, then every other hiring company, and keeps the jobs whose title, role, specialty or skills match. On the prefilled run, 99 of the 100 titles contained "engineer", "developer" or "technical staff".

Pull every opening of the startups on your watchlist

{
"companySlugs": ["Stripe", "noloco", "scale-ai"],
"maxItems": 200
}

Names and slugs both work: the actor finds the company on YC when the name is not its exact slug. A company with no opening today is reported in the log and returns no row.

Export remote engineering jobs that list React

{
"searchQueries": ["react"],
"location": "Remote",
"roles": ["eng"],
"maxItems": 25
}

This one read 500 YC companies to collect 25 remote engineering jobs that mention React, from 23 different companies, in 31 seconds.

Input parameters

FieldTypeDefaultWhat it does
searchQueriesarray of stringsprefilled software engineerKeywords. Every word must appear in the job (title, role, specialty, skills) or in its company's name, tags or industries.
startUrlsarray of URLsnoneYC company, company jobs page, single job, directory search, or jobs page by role or city.
companySlugsarray of stringsnoneYC companies by name or slug. Every open job of each company.
locationtext or pickanyCity, US state code, Remote, or a country by code, ISO-3 code or English name.
roleslistallEngineering, Design, Product, Science, Sales, Marketing, Support, Operations, Recruiting and HR, Finance, Legal.
jobTypeslistallFull-time, Part-time, Contract, Internship, Cofounder.
remoteOnlybooleanfalseOnly jobs that can be done remotely, including Remote (US) style postings.
batchesarray of stringsallYC batches: W24, S21, F24 (Fall), X25 (Spring) or Winter 2024.
maxItemsinteger100Total jobs saved across all inputs. No fixed limit: the run stops as soon as it is reached.
debugModebooleanfalseDetailed progress in the log.

Accepted formats

  • Company links: https://www.ycombinator.com/companies/airbnb, the same with /jobs, or https://www.workatastartup.com/companies/airbnb.
  • Job links: https://www.ycombinator.com/companies/noloco/jobs/M2m3UVI-senior-software-engineer.
  • Directory searches: any https://www.ycombinator.com/companies?... link. Its keyword, batch, industry and regions are kept, and only companies that are hiring are read.
  • Jobs pages: https://www.ycombinator.com/jobs, /jobs/role/software-engineer, /jobs/location/san-francisco, /jobs/role/product-manager/new-york. The role and city of the link become filters.
  • Companies: a name (Scale AI) or the slug at the end of the YC profile link (scale-ai).
  • Batches: W24, S21, F24, X25, Winter 2024, summer 2013.
  • Locations: San Francisco, New York, Berlin, CA, Remote, gb, gbr, United Kingdom. A job listed in several places matches on any of them.

What data can you extract from Y Combinator?

Each row is one open job, flat, with 55 fields grouped the way you read a job post:

  • The job (12 fields): id, url, title, the full description in Markdown and as HTML, role, specialization (for example Full stack, Backend, Machine learning), jobType, experience and minExperienceYears, visa, and skills.
  • Pay (8 fields): salaryRange as YC shows it, salaryMin, salaryMax, salaryCurrency, salaryPeriod, and equityRange with equityMin and equityMax in percent.
  • Place and date (6 fields): location as listed, isRemote, city, region, countryCode, and postedAt, the exact date the job was published, in RFC 3339.
  • Applying (3 fields): applyUrl, the YC application link, hiringManagerName and hiringManagerImageUrl.
  • The company (25 fields): YC id, name, slug, YC profile, website, logo, batch, one-liner, long description, why-join-us text, industry and sub-industry, tags, stage, status, YC top company badge, founding year, team size, headquarters and its country code, LinkedIn, X, Facebook and Crunchbase links, and founders, a list where each founder has a name, title, bio, LinkedIn, X and photo (6 fields each).
  • Meta: scrapedAt.

id is YC's own job number and url is the permanent job page, so they make good keys for deduplicating across runs. Dates are RFC 3339 in UTC. Logo and photo links are permanent image files. Fields a company did not fill are null, never an empty string.

Output example

{
"id": 70999,
"url": "https://www.ycombinator.com/companies/luthor/jobs/HKrdhp0-software-engineer",
"title": "Software Engineer",
"description": "### About Luthor\n\nAI is making it possible for companies to create more content than humans can possibly review.\n\nThatโ€™s the problem we solve. Luthor eliminates the gap between ...",
"descriptionHtml": "<h3>About Luthor</h3>\n<p>AI is making it possible for companies to create more content than humans can possibly review.</p> ...",
"role": "Engineering",
"specialization": "Full stack",
"jobType": "Full-time",
"experience": "3+ years",
"minExperienceYears": 3,
"visa": "US citizen/visa only",
"skills": ["JavaScript", "PostgreSQL", "React", "Ruby on Rails"],
"salaryRange": "$125K - $180K",
"salaryMin": 125000,
"salaryMax": 180000,
"salaryCurrency": "USD",
"salaryPeriod": "year",
"equityRange": "0.10% - 1.00%",
"equityMin": 0.1,
"equityMax": 1,
"location": "San Francisco, CA, US / Remote (US)",
"isRemote": true,
"city": "San Francisco",
"region": "California",
"countryCode": "US",
"postedAt": "2024-11-23T09:05:47Z",
"applyUrl": "https://account.ycombinator.com/authenticate?continue=https%3A%2F%2Fwww.workatastartup.com%2Fapplication%3Fsignup_job_id%3D70999&defaults%5BsignUpActive%5D=true&defaults%5Bwaas_company%5D=30057",
"hiringManagerName": "Glenn Espinosa",
"hiringManagerImageUrl": "https://bookface-images.s3.amazonaws.com/avatars/f7a8f173fe57f467e23ee99101bdc60e11a99ed2.jpg",
"companyId": 30057,
"companyName": "Luthor",
"companySlug": "luthor",
"companyUrl": "https://www.ycombinator.com/companies/luthor",
"companyWebsite": "https://luthor.ai",
"companyLogoUrl": "https://bookface-images.s3.amazonaws.com/small_logos/bb20b2bce4f5e0cb26cffa31072a6cc5d7bc7145.png",
"companyBatch": "F24",
"companyOneLiner": "Real-time governance for enterprise communications",
"companyDescription": "Luthor replaces fragmented compliance workflows with a single system that reviews, enforces, and logs every piece of marketing content the moment itโ€™s created. ...",
"companyHiringDescription": "Luthor is the AI-powered marketing compliance platform for regulated industries. ...",
"companyIndustry": "B2B",
"companySubindustry": "B2B",
"companyTags": ["B2B", "Compliance", "Marketing", "Regtech", "AI"],
"companyStage": "Early",
"companyStatus": "Active",
"isTopCompany": false,
"companyYearFounded": 2024,
"companyTeamSize": 3,
"companyLocation": "San Francisco",
"companyCountryCode": "US",
"companyLinkedinUrl": "https://www.linkedin.com/company/luthor",
"companyTwitterUrl": "https://x.com/luthorai",
"companyFacebookUrl": null,
"companyCrunchbaseUrl": "https://www.crunchbase.com/organization/luthor-ai",
"founders": [
{
"name": "Glenn Espinosa",
"title": "CEO",
"bio": "Founder and CEO @ Luthor. Previously, Risk/Compliance Eng at Square.",
"linkedinUrl": "https://www.linkedin.com/in/glennespinosa",
"twitterUrl": "https://x.com/gxespino",
"imageUrl": "https://bookface-images.s3.us-west-2.amazonaws.com/avatars/f7a8f173fe57f467e23ee99101bdc60e11a99ed2.jpg"
}
],
"scrapedAt": "2026-10-07T16:08:09Z"
}

The long texts are cut here for reading; the dataset holds them in full.

Advanced usage

Export every open job at YC startups

{
"maxItems": 10000
}

With no keyword, link or company, the run walks through every company the YC directory marks as hiring. A full pass over the 1,496 hiring companies took 1 minute 42 seconds to read; jobs then come back as fast as their pages load. Use it for a complete weekly snapshot of YC hiring.

Follow a single batch from Demo Day onwards

{
"batches": ["X25", "F25"],
"maxItems": 500
}

Keeps only companies from the Spring 2025 and Fall 2025 batches. Schedule it every week to see when a young batch starts hiring and for which roles, with team size and stage on each row.

Turn a YC directory search into a jobs table

{
"startUrls": [
{ "url": "https://www.ycombinator.com/companies?batch=Winter%202024&industry=Fintech" }
],
"maxItems": 100
}

Set your filters on the YC company directory in your browser, copy the link, and paste it here: the hiring companies of that search come back as one row per open job. This exact link returned 16 jobs from 7 fintech companies of the Winter 2024 batch.

Find startups that sponsor visas in London or Berlin

{
"searchQueries": ["engineer"],
"location": "gb",
"maxItems": 50
}

Run it once with gb and once with Berlin, then filter the visa column on Will sponsor. On the prefilled run, 17 of 100 jobs said the company sponsors visas and 13 did not require US work authorization.

Build a founder outreach list of companies hiring for sales

{
"roles": ["sales", "marketing"],
"jobTypes": ["fulltime"],
"maxItems": 300
}

Each row brings the company's website, LinkedIn and team size with the founders' names, titles and LinkedIn links: a list of startups that are investing in growth right now, with the people to talk to. Use the Companies view or deduplicate on companyId for one line per company.

FAQ

What does this scraper extract? Every open job published by Y Combinator startups on ycombinator.com, one row per job: the posting with its full description, the salary and equity both as text and as numbers, location, remote flag, experience, visa policy, skills, exact posting date, the hiring manager, and the company's YC profile with its founders.

What is Y Combinator, and what is Work at a Startup? Y Combinator (YC) is the startup accelerator behind Airbnb, Stripe, DoorDash and thousands of other companies. Work at a Startup is YC's job platform: YC companies post their openings there, and the same jobs appear on each company's page on ycombinator.com, which is what this actor reads.

Do I need a YC or Work at a Startup account? No. The actor reads public pages only. You do not log in and you do not share any password or session.

How fresh is the data? Every run reads the pages live, at run time; nothing is cached. postedAt is the date the job was first published, and a job disappears from the results as soon as the company closes it.

How do the keyword and the filters combine? Every filter applies to every input, and they add up. searchQueries: ["react"] with location: "Remote" and roles: ["eng"] returns engineering jobs that can be done remotely and mention React. Inside a keyword, every word must match: fintech engineer finds engineering jobs at fintech companies.

Why do some rows have no salary or no equity? Those fields come from what the company published. When a company did not give a salary range, salaryRange, salaryMin and salaryMax are null. The text stays as YC shows it, and the numbers are read from it as written: a range shown as 75 to 95 EUR stays 75 and 95, it is not rescaled, and its salaryPeriod stays null because such a range could be thousands a year or an hourly rate. Ranges written with K or M, with thousands separators, or with "/ hourly" and "/ monthly" are converted for you.

How many jobs can I get? There is no fixed limit: set maxItems to what you need. The run stops as soon as that number is reached. Without any keyword, link or company, it can read every hiring YC company.

Can I search several keywords, companies and links in one run? Yes. Add as many lines as you want in each field. maxItems is shared by the whole run, and a job found twice (for example by a keyword and by its company) is saved once.

What happens if a company does not exist or is not hiring? The log says so and the run continues with the rest of the input. A run that finds nothing ends with a message saying why: no matching job, no open job at these companies, or a company that YC does not list.

Are the links permanent? url is the permanent job page and companyUrl the permanent YC profile. Logo and photo links point to permanent image files. applyUrl is YC's application link, which asks the candidate to sign in to Work at a Startup before applying.

Which batches can I filter on? All of them: write W24 for Winter 2024, S21 for Summer 2021, F24 for Fall 2024 and X25 for Spring 2025, or write the full name. Unknown batch names are refused with a message rather than silently ignored.

More SilentFlow scrapers

๐Ÿ›’ E-commerce

๐Ÿ’ผ Jobs

๐Ÿ  Real estate

๐Ÿ“ฃ Social media

๐Ÿข Business data

โœˆ๏ธ Travel

๐ŸŽฏ Lead generation

๐Ÿ”Ž SEO

๐Ÿ“ˆ Marketing

๐Ÿงฐ More tools

Support

Need something this scraper doesn't do yet? We ship features fast.

  • Feature requests go straight to our backlog
  • Enterprise needs? We do custom integrations and high-volume plans
  • Pricing questions? Check the Monetization tab on the actor page

Response time: usually under 24 hours.

This actor extracts publicly available data from ycombinator.com. It does not bypass any login, paywall or CAPTCHA. Users are responsible for complying with Y Combinator's terms of service and applicable data protection laws (GDPR, CCPA, and PIPL where relevant). Rows contain personal data about founders and hiring managers (names, titles, bios, profile links and photos): handle it accordingly, and use it for legitimate purposes such as recruiting and business outreach that respects opt-outs. The data returned is informational: confirm salary and visa details with the company before relying on them.

Built by SilentFlow for recruiters, job boards and analysts who would rather read the YC job market than copy it.