Scan the YC Board for Junior-Friendly Roles
Keyword-filter the board for junior and entry-level roles — the startup market's answer to 'new grad' pipelines.

Startups rarely label roles 'new grad' — but the junior-friendly ones are findable. Thirdwatch's YC Jobs Scraper reads Y Combinator's Work at a Startup board and returns every listing with the two fields job boards usually hide — salary range and equity range.
Skip the setup: Run this as a ready-to-go task on Apify — pre-loaded with the configuration from this guide.
Why scan for junior roles
Entry-level candidates get filtered out of startup hiring by signal, not by a 'junior' checkbox. A keyword scan over titles and descriptions surfaces the roles that actually welcome juniors.
query filters the board's text; comp fields still come back on every row.
The scraper parses the board's embedded data, so every row arrives fully structured — comp ranges included.
How does this compare to the alternatives?
| Approach | Cost model | Coverage | Effort |
|---|---|---|---|
| Manual board browsing | Free | What you can read | Doesn't scale |
| Job aggregator subscription | Monthly fee | Their coverage, their schema | Vendor lock-in |
| Thirdwatch jobs scraper | Pay per job row | The whole board, structured | One run |
Why this Actor
- Salary AND equity ranges on every listing — the fields other boards hide.
- Company context bundled: batch, one-liner, logo, last-active date.
- Direct
applyUrlper job — no intermediate listing page. - Filter by free-text query or role type.
- Cheap and fast — the whole board in one HTTP run.
How to do it in 3 steps
Step 1: Configure the input
Set the inputs as shown below — query takes the targets, free-text filtering plus a role type filter; leave both empty for the full board.
Step 2: Run the Actor
Run it from the console, the API, or the linked saved task. One dataset row is written per job.
Step 3: Use the output
Each row carries the role plus company name, batch, one-liner, location, remote flag, salary range, equity range, and the apply URL.
{
"query": "junior",
"maxJobs": 40
}Each dataset row looks like:
{
"jobId": "12345",
"title": "Full-Stack Engineer",
"jobUrl": "https://www.ycombinator.com/companies/acme/jobs/12345",
"applyUrl": "https://www.ycombinator.com/companies/acme/jobs/12345",
"companyName": "Acme",
"companySlug": "acme",
"companyBatch": "W24",
"companyOneLiner": "APIs for logistics",
"location": "Remote",
"jobType": "full-time",
"roleType": "engineering",
"salaryMin": 140000,
"salaryMax": 190000,
"salaryCurrency": "USD",
"equityMin": 0.1,
"equityMax": 0.5
}What to watch for
Comp ranges are as published by each company — some listings omit salary or equity. The board only shows live postings, so expired roles disappear rather than aging out.
Related use cases
- Pull Every Engineering Role Across YC Startups
- Find Remote-Friendly Roles at YC Startups
- Benchmark Startup Salary and Equity with YC's Job Board
- Track Product and Operations Roles at YC Companies
- All Thirdwatch use-case guides
Run the YC Jobs Scraper on Apify Store — pay per result, free to try, no credit card to test.
Frequently asked questions
What salary data comes back?
`salaryMin`, `salaryMax` and `salaryCurrency` where published — plus `equityMin`/`equityMax` as percentage ranges. YC companies post both unusually often.
Does it cover remote roles?
Yes — `location` and the job type fields carry the remote flag; filter on `remote` in `query` to scope to remote-friendly roles.
How current is the data?
The board's live listings — `companyLastActiveAt` on each row shows when the company last engaged, a useful freshness signal.
Can I filter to a specific batch?
Company batch (`companyBatch`, e.g. `W24`) is on every row — filter post-extraction.
What's the apply link?
`applyUrl` points at the direct application path — no login wall in the way.
How many jobs are on the board?
Typically several hundred to a few thousand; `maxJobs` bounds the pull.
Related
100 free credits, no credit card.
About 30 real searches. Add the MCP to Claude or Cursor in two minutes.