Y Combinator Jobs API: Startup Jobs + Company Data
Pricing
from $0.30 / 1,000 y combinator job results
Y Combinator Jobs API: Startup Jobs + Company Data
$0.3/1K jobs | Get Y Combinator startup jobs from Work at a Startup: full descriptions, salary ranges when listed, company details and links. Up to 1,000 per run. Optional AI enrichment and English translation. No login or API key.
Y Combinator Jobs Scraper (No Login) + Salary & Company Data
$0.3/1K jobs | Get Y Combinator startup jobs from Work at a Startup: full descriptions, salary ranges when listed, company details and links. Up to 1,000 per run. Optional AI enrichment and English translation. No login or API key. Independent, unofficial tool. Not affiliated with or endorsed by Y Combinator or Work at a Startup.
Y Combinator Startup Jobs Bulk Scraper
Our scraper collects startup jobs from Work at a Startup, Y Combinator's job board (workatastartup.com), and lets you filter by keyword, location, posting window, YC batch and role type. Every row carries the complete original description, the salary range when one is listed, company details such as the YC batch and team size, and a link to the posting. It is ideal for recruiting pipelines, startup job boards and recurring job alerts.
- Need jobs beyond YC startups? Use our LinkedIn jobs scraper. It searches public LinkedIn postings across industries but has no YC batch or team-size data.
- Browse all Job Atlas job scrapers: https://apify.com/jobatlas
Key Benefits
- No login or API key: nothing to set up, and no Work at a Startup account involved. Runs read our stored copy of the board, not the live site.
- Low pricing: $0.30 per 1,000 jobs, with no start fee. Optional AI enrichment and English translation are separate per-job prices, listed below.
- Up to 1,000 jobs per run, newest first by default.
- Full descriptions: every row carries the complete job description as text and HTML.
- No repeats across runs: schedule the same search daily and get only jobs you have not received yet.
- Optional AI enrichment and English translation: both off by default, with no API key to bring. Enrichment fills missing fields without replacing source facts.
How It Works
- Provide your search. Every field is optional:
- (optional) Keyword (e.g.,
engineer,founding engineer). One search term, matched against the job's content and not only its title: in our testengineeralso returned a chief of staff and a recruiter role. - (optional) Location contains (e.g.,
San Francisco). A case-insensitive match against the location label that YC publishes. - (optional) Work arrangements:
remote,hybridandonsite. YC labels remote work explicitly, but a physical place or a missing label is never treated as onsite or hybrid, so these filters can exclude most jobs (2 of 10 test jobs carried a workplace mode). - (optional) Posted within:
1h,24h,7d,30dorany. Default isany. YC publishes no posting timestamp, so the windows use the hour when we first saw the job. - (optional) Result order:
newest(default) oroldest, by that same first-seen hour. - (optional) Several terms or YC batches: use
ycSearchinstead ofkeyword. It takes an OR-list inqueriesand optionalcompanyBatches,roleTypesandjobTypes. Do not combine non-emptyquerieswithkeyword.
- (optional) Keyword (e.g.,
- Set how many jobs you want with
maxItems. - Click Start. The form opens with
engineerand 10 jobs, so a first run returns real rows.
{"schemaVersion": "nomad-agent-job-search-input-v1","keyword": "engineer","maxItems": 10,"dedupe": {"enabled": true, "key": ""}}
Run the same search again and you get only postings you have not received yet; set dedupe.enabled to false to see everything again.
More settings:
maxItems- Maximum jobs returned. Default is 100 and the maximum is 1,000.0requests the complete bounded delivery window of 1,000, not an open-ended export. A bounded scan can return fewer matches and reportresultsLimitedin the run summary.dedupe- On by default: jobs already delivered to your Apify account for the same search are skipped. Setdedupe.enabledtofalsefor a stateless run, or setdedupe.keyto keep separate alert histories.ycSearch- For example,{"schemaVersion": "nomad-agent-ycombinator-search-v1", "queries": ["machine learning", "data scientist"], "companyBatches": ["W24"]}(we ran it: 10 jobs, all from batch W24).aiEnrichmentandtranslateToEnglish- Optional paid processing, described below. Default is off.firstRunMode- Whentrue, runs a small paid preset: at most 5 jobs with Silver AI enrichment and English translation, no repeat suppression andrawreturned asnull. Leave itfalsefor the base price.includeRaw- Set tofalseto returnraw: nulland skip the raw description text and HTML.analyticsEnabled- An opt-in anonymous run-health event with coarse counts only. Default is off.filters- Optional normalized job filters over allowlisted fields.
Results reflect the last successful observation of the board, and if the stored job data is stale or unavailable the run fails instead of returning old rows.
Data You'll Receive
- Job details: title, the complete original description (text and HTML), posting link, first-seen date, job type.
- Company: name, website and logo, plus YC context such as the batch (on 9 of 10 test jobs), team size, tagline and industry.
- Pay and terms: salary range when listed (on 15 of 20 test jobs), the experience level the job asks for, visa policy and equity label when published.
- Location: the label as YC prints it. Parsed city and country can be
null. - Founders: names, bios and public profile links as company context. Founders are not hiring contacts.
- Links and identity: the Work at a Startup job URL, plus a stable
identity.sourceandidentity.externalIdfor deduplication.
Company, salary, requirements and application links live in data. The YC batch, equity labels, source skill tags and company context live in custom.data; the public YC v2 schema describes that extension.
Sample output data
Here is an example job from this Actor. Long text is shortened for display, and the founders are left out:
{"schemaVersion": "nomad-agent-job-v1","identity": {"url": "https://www.workatastartup.com/jobs/116571","source": "ycombinator_was","externalId": "116571"},"data": {"title": "Software Engineer (Mid-level, Senior, or Staff)","company": {"name": "Legora", "url": "https://www.legora.com/"},"locations": [{"raw": "New York, NY, US"}],"compensation": {"raw": "$175K - $369K","exact": null,"period": null,"maximum": 369000,"minimum": 175000,"currency": null},"application": {"url": "https://www.workatastartup.com/jobs/116571", "postedAt": "2026-10-15T02:00:00Z"},"requirements": {"experience": [{"raw": "3+ years", "field": null, "maximumYears": null, "minimumYears": 3}]},"classification": {"industries": ["B2B -> Legal"], "jobFunctions": ["Full stack"]}},"llm": {"status": "not_requested"},"raw": {"description": "New York City | Full-time | Five days onsite We are hiring software engineers at mid-level, senior and staff levels for forward-deployed engineering opportunities at Legora. Apply through Ashby About Us Legora is redefining how legal work g… [shortened for display]","descriptionHtml": "<p><strong>New York City | Full-time | Five days onsite</strong></p>\n<p>We are hiring software engineers at mid-level, senior and staff levels for forward-deployed engineering opportunities at Legora.… [shortened for display]"},"custom": {"data": {"companyBatch": "W24","jobTypeRaw": "Full-time","visaPolicyRaw": "US citizen/visa only","company": {"tagline": "The agentic operating system for legal work", "teamSize": 900}}}}
Full records contain schemaVersion, identity, data, custom, llm and raw.
Price examples
| Event | Per delivered job | Per 1,000 qualifying jobs |
|---|---|---|
| Job result | $0.0003 | $0.30 |
| Optional Silver enrichment | +$0.006 | +$6.00 |
| Optional Gold enrichment | +$0.010 | +$10.00 |
| Optional English translation | +$0.006 | +$6.00 |
The 10-job example above, with no options, costs 10 x $0.0003 = $0.003 in result events; 5 jobs cost $0.0015. For 100 delivered jobs, the base result events total $0.03. If all 100 also get billable Silver enrichment, the total is $0.63; with translation on all 100, it becomes $1.23. A full 1,000-job run with no options costs $0.30. The firstRunMode preset costs at most 5 x ($0.0003 + $0.006 + $0.006) = $0.0615.
Failed enrichment is not charged as enrichment, and translation is charged only for confirmed translation of the selected fields. There is no start fee. Apify platform usage for the run is included in the event prices. Prices may change, and the live Pricing tab is authoritative.
AI enrichment fills only the fields that the description supports and that deterministic parsing left empty. It does not replace source facts, and if the provider fails, the base result is returned unchanged and the failure is recorded in llm. English translation is usually unnecessary for this largely English source, and it affects selected display fields, not the raw description. Gold uses a separately configured higher-accuracy profile.
Only when you switch these options on, we send description text to our AI provider for extraction, or selected display text to DeepL for translation.
Build recurring alerts
Enable dedupe and use a stable non-empty key for one alert stream, for example {"enabled": true, "key": "my-yc-alert"}. Reuse that key and the same search on later scheduled runs, and jobs you already received are skipped. In our test, a second run with the same key delivered 10 different jobs, none repeated from the first. An empty key derives a separate history from your Apify account and the resolved search, so each distinct search keeps its own. The key is not a secret.
Use identity.source + ":" + identity.externalId as your downstream job key, and never deduplicate by job title or company.
Understand missing values
nullmeans unknown or unavailable;[]means explicitly empty.- A dollar sign alone does not establish USD or an annual pay period.
- A location label can be available while parsed city and country remain
null. - A physical location does not establish onsite or hybrid work. Use
locationwhen you mean a city label. - First-seen dates describe past observations, not publication dates or current hiring status.
- Founders are company context, not hiring contacts. Source skill tags are not automatically required skills.
Y Combinator Jobs API
Results are stored in a dataset that you can export as CSV, JSON or Excel, or read through the Apify API. Each run also writes a RUN-SUMMARY record (nomad-agent-run-summary-v4) to its key-value store: read it and reconcile delivered with the dataset. resultsLimited means the search was incomplete, and a successful Apify status alone does not establish a complete search. Follow the summary's retry recommendation only within your own spend budget; the Actor never starts another paid run by itself.
The YC guide and Agent Skill show a bounded API call that uses latest. We do not claim ready-made n8n, Make, Zapier or Airtable integrations for this Actor. The Agent Skill is the supported client asset, and API and MCP calls have documented bounded examples only.
Support and Feedback
We improve these scrapers from your feedback. If something breaks or you need a filter:
- Open an issue on the Actor's Issues tab.
- If this Actor saved you time, a short review on the Store helps other people find it.
Run evidence
Observed runs
These runs used the latest build (1.0.9) on 2026-10-16, each capped at 10 jobs and each with a one-off dedupe key, so they match a first-time visitor. All five delivered 10 jobs and charged only the job result event, with no enrichment or translation events.
| Input | Run | Result |
|---|---|---|
keyword engineer | Luo25hmzuyBiCvRLM | 10 jobs from 9 employers |
keyword engineer, location San Francisco | h8M4oOiTj2Cli5bGK | 10 jobs from 7 employers, every location label included San Francisco |
keyword engineer, same dedupe key, first run | XY1Z2Z9Qi9tEihnAL | 10 jobs |
keyword engineer, same dedupe key, second run | Yf5B5pUKGNJJtDR7c | 10 different jobs, none repeated |
ycSearch with two queries and batch W24 | uLUW8IVz9NprxVMqq | 10 jobs, all batch W24 |
In the first 10-job run: salary range on 8, location label on 9, YC batch on 9, team size on 10, industry on 10, experience level on 10, workplace mode on 2.
Changelog
- October 2026: the job result price is now $0.0003 per job ($0.30 per 1,000), down from $0.0009. The enrichment and translation prices are unchanged. The input now opens with a keyword and 10 jobs, and repeat suppression is on in the form.
- September 2026: published the YC v2 extension schema and readable result links, and clarified prices, alert setup and source limitations. The accepted
anyrecency default and the existing normalized output semantics are unchanged. - The job key
identity.sourceplusidentity.externalIdstays compatible with existing YC records.
Job Atlas
Job Atlas runs job-data and matching Actors. Use latest and keep the immutable build ID that each run returns.
Product guide | Source and client examples | Setup skill | Setup guide
Product guides and related tools
Independent tool. We built and run this Actor ourselves. Y Combinator and Work at a Startup do not operate, sponsor or endorse it, and their names are used only to say which site the data comes from.