Y Combinator Jobs API: Startup Jobs + Company Data avatar

Y Combinator Jobs API: Startup Jobs + Company Data

Pricing

from $0.30 / 1,000 y combinator job results

Go to Apify Store
Y Combinator Jobs API: Startup Jobs + Company Data

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.

Pricing

from $0.30 / 1,000 y combinator job results

Rating

0.0

(0)

Developer

Job Atlas

Job Atlas

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

4 hours ago

Last modified

Categories

Share

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.

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

  1. 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 test engineer also 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, hybrid and onsite. 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, 30d or any. Default is any. YC publishes no posting timestamp, so the windows use the hour when we first saw the job.
    • (optional) Result order: newest (default) or oldest, by that same first-seen hour.
    • (optional) Several terms or YC batches: use ycSearch instead of keyword. It takes an OR-list in queries and optional companyBatches, roleTypes and jobTypes. Do not combine non-empty queries with keyword.
  2. Set how many jobs you want with maxItems.
  3. Click Start. The form opens with engineer and 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. 0 requests the complete bounded delivery window of 1,000, not an open-ended export. A bounded scan can return fewer matches and report resultsLimited in the run summary.
  • dedupe - On by default: jobs already delivered to your Apify account for the same search are skipped. Set dedupe.enabled to false for a stateless run, or set dedupe.key to 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).
  • aiEnrichment and translateToEnglish - Optional paid processing, described below. Default is off.
  • firstRunMode - When true, runs a small paid preset: at most 5 jobs with Silver AI enrichment and English translation, no repeat suppression and raw returned as null. Leave it false for the base price.
  • includeRaw - Set to false to return raw: null and 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.source and identity.externalId for 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

EventPer delivered jobPer 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

  • null means 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 location when 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.

InputRunResult
keyword engineerLuo25hmzuyBiCvRLM10 jobs from 9 employers
keyword engineer, location San Franciscoh8M4oOiTj2Cli5bGK10 jobs from 7 employers, every location label included San Francisco
keyword engineer, same dedupe key, first runXY1Z2Z9Qi9tEihnAL10 jobs
keyword engineer, same dedupe key, second runYf5B5pUKGNJJtDR7c10 different jobs, none repeated
ycSearch with two queries and batch W24uLUW8IVz9NprxVMqq10 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 any recency default and the existing normalized output semantics are unchanged.
  • The job key identity.source plus identity.externalId stays 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


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.