Wellfound Jobs Scraper - Startup Jobs, Salary & Equity
Pricing
from $1.00 / 1,000 results
Wellfound Jobs Scraper - Startup Jobs, Salary & Equity
Scrape startup jobs from Wellfound (formerly AngelList Talent): salary and equity ranges parsed into numbers, full descriptions, company size, tagline and badges, and an exact Y Combinator flag. Search by role and city, filter to YC or remote jobs, and export to JSON, CSV or Excel.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Akhil rajesh
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Scrape startup jobs from Wellfound (formerly AngelList Talent) — job title, company, location, the full job description, salary ranges, and the one thing conventional job boards don't give you as data: equity.
Senior Software Engineer — Confident LIMS$100k – $180k • 0.05% – 0.25% ← salary AND equity, parsed into numbers
Try it now: keep the example input (software engineer) and press Start. It returns 100 jobs in about 10 seconds.
What does Wellfound Jobs Scraper do?
It searches Wellfound by job role, city or both, and returns one row per job: salary and equity parsed into numbers, the full description, and the startup behind it, with its size, tagline, badges and an exact Y Combinator flag. It reads the data Wellfound already ships inside its own pages, so there is no login, no API key and no browser to wait for.
Because it runs on Apify, you can start it from the Console or the API, schedule it, export the results as JSON, CSV or Excel, and send them on to your own tools through Apify's integrations.
What data can you extract from Wellfound?
One row per job listing:
| Group | Fields |
|---|---|
| Job | title, jobType, primaryRole, yearsExperienceMin, description |
| Pay | salaryText, salaryMin, salaryMax, salaryCurrency, equityMin, equityMax |
| Location | locations, isRemote, remoteLocations |
| Startup | company, companySize, companyTagline, companyBadges, isYCombinator, companyLogo, companyUrl, companySlug, companyId |
| Timing | postedAt, scrapedAt |
| Provenance | jobId, url, atsSource, autoPosted, searchQuery, searchLocation |
What sets Wellfound data apart from a general job board:
- Equity ranges, parsed into
equityMin/equityMaxas percentages - Pay in the listing's own currency — US, Canadian, Australian and Singapore dollars, pounds, euros or rupees — named in
salaryCurrency - Y Combinator flag — taken from Wellfound's own company badge, so it is exact rather than a name match
- Startup signals — company size, tagline and Wellfound's badges, such as
ACTIVELY_HIRING,TOP_INVESTORS,RECENTLY_FUNDED,GROWING_FASTandQUICK_RESPONDER - Minimum years of experience, as a number you can filter on
- Full job descriptions, not truncated snippets
How to scrape Wellfound jobs
- Enter a job role, such as
software engineer,product managerordata scientist. Wellfound's roles are broad; a seniority word in front, as insenior software engineer, is handled for you: the run searchessoftware engineerand keeps the senior titles. - Add a city if you want one:
San Francisco,New York,Toronto, ONorLondon. Typeremotefor remote jobs anywhere. A role, a city, or both will do. - Set Max results, and switch on Remote only or Y Combinator companies only if you need them.
- Press Start, then open the Output tab or export the dataset.
{"searchQuery": "software engineer","location": "san francisco","maxResults": 200}
Only Y Combinator companies
{"searchQuery": "product manager","yCombinatorOnly": true,"maxResults": 100}
Wellfound tags YC companies itself, so this filter is exact — it will not sweep in a company that merely has "Y" in its name.
Run it from the API
curl -X POST "https://api.apify.com/v2/actors/akhil_rajesh~wellfound-jobs-scraper/run-sync-get-dataset-items" \-H "Authorization: Bearer YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"searchQuery": "data scientist","location": "new york","maxResults": 100}'
Run it from Python
from apify_client import ApifyClient # pip install apify-clientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("akhil_rajesh/wellfound-jobs-scraper").call(run_input={"searchQuery": "software engineer","location": "toronto","maxResults": 200,})for job in client.dataset(run.default_dataset_id).iterate_items():print(job["title"], job["company"], job["salaryText"], job["equityMin"], job["equityMax"])
Every row has the same fields; a value Wellfound doesn't publish is null.
How much does it cost to scrape Wellfound?
Pay-per-event, with platform usage included — there is nothing else to pay. What a job costs depends on your Apify plan:
| Your plan | Per 1,000 jobs |
|---|---|
| Free | $2.00 |
| Starter | $1.80 |
| Scale | $1.40 |
| Business and above | $1.00 |
Plus $0.001 each time a run starts, on every plan (charged per GB of memory; the default is 512 MB, so that's one start fee per run).
| Run | Jobs returned | On Free | On Business |
|---|---|---|---|
| The example input | 100 | $0.201 | $0.101 |
| Every software engineer job in Toronto (September 2026) | 89 | $0.179 | $0.090 |
| 1,000 jobs of one role | 1,000 | $2.00 | $1.00 |
Apify's Free plan includes $5 of credit every month, enough for about 2,400 jobs. You're charged only for jobs that are delivered, so a search that finds nothing costs only the start fee. To cap spending, lower Max results or set a maximum cost per run in the run options; the Actor stops cleanly at the limit and says so.
Input
| Field | Type | Default | What it does |
|---|---|---|---|
searchQuery | string | — | The role to search. Give this, a location, or both |
location | string | — | A city — Toronto, Toronto, ON and Montréal all work. remote means remote roles anywhere |
maxResults | integer | 100 | Stop after this many jobs. This is also your cost ceiling |
remoteOnly | boolean | false | Keep only jobs Wellfound marks remote |
yCombinatorOnly | boolean | false | Keep only Y Combinator companies |
maxPages | integer | derived | Optional cap on pages walked; worked out from Max results unless you set it, and unlimited with the remote or Y Combinator filter on |
proxy | object | Apify Proxy | Optional — Wellfound serves ordinary requests, so no residential group is needed |
Sample output
A real row, with the description shortened:
{"jobId": "4697947","url": "https://wellfound.com/jobs/4697947-senior-software-engineer","title": "Senior Software Engineer","description": "Confident powers analytical testing labs — the labs that test samples…","jobType": "full-time","isRemote": true,"remoteLocations": ["Canada", "South America", "United States", "Latin America"],"locations": ["San Francisco Bay Area"],"primaryRole": "Software Engineer","yearsExperienceMin": 5,"postedAt": "2026-09-10T17:59:14Z","atsSource": null,"autoPosted": false,"salaryText": "$100k – $180k • 0.05% – 0.25%","salaryMin": 100000,"salaryMax": 180000,"salaryCurrency": "USD","equityMin": 0.05,"equityMax": 0.25,"company": "Confident LIMS","companyId": "829771","companySlug": "confidentlims","companyUrl": "https://wellfound.com/company/confidentlims","companySize": "SIZE_11_50","companyTagline": "The easiest way to test","companyLogo": "https://photos.wellfound.com/startups/i/829771-0deed706d7c625c16e51b403c4b1ad20-medium_jpg.jpg?buster=1742329133","companyBadges": ["ACTIVELY_HIRING", "TOP_RESPONDER", "QUICK_RESPONDER", "B2B", "COMPANY_STAGE", "TOP_INVESTORS", "YC"],"isYCombinator": true,"searchQuery": "software engineer","searchLocation": null,"scrapedAt": "2026-09-22T22:22:21Z"}
Download the dataset as JSON, CSV, Excel, XML or HTML, or read it through the API. Three dataset views are included: Jobs (the overview), Pay & equity (numeric ranges), and Startups (who is hiring).
Use cases
- Compensation research — salary and equity ranges side by side, across thousands of startup jobs
- Startup lead generation — companies actively hiring, with size, tagline, funding and responsiveness badges
- Job monitoring — schedule a daily run that sweeps a whole role, and keep the jobs whose
postedAtis newer than your last run - YC ecosystem tracking — every Y Combinator company currently hiring, in one dataset
Good to know
- Pay coverage, measured over a 1,200-job run: 68% carry a salary range, 15% carry equity, 100% carry a full description. The first page or two runs closer to 85% — Wellfound surfaces its better-filled listings first — so a small run looks more complete than a deep one.
- Pay is not always in US dollars. Canadian, Australian and Singapore listings use a bare
$with the currency code after the range ($200k – $200k CAD); UK, European and Indian listings use£,€and₹, with Indian pay in Lakhs and Crores converted to rupees.salaryCurrencynames the currency actually written — on a Toronto search, three-quarters of priced jobs were in CAD. Filter or convert on it before comparing figures. - Some roles offer equity and no salary (
5.0% – 10.0%, often founding roles). Those rows carryequityMin/equityMaxwith no salary figures. - Wellfound shuffles its results on every request, even for the same search a second later. A run that stops before the end of a role is therefore a sample: two 1,200-job runs of the same role, started together, shared about 89% of their jobs. A run that sweeps the whole role is far steadier — two full sweeps of a ~500-job role differed by under 3%. For monitoring, set Max results above the role's size and filter on
postedAt, rather than comparing today's list with yesterday's: a job that simply moved position would otherwise look new. - Experience is a floor, not a range. Wellfound publishes
yearsExperienceMinonly; there is no maximum on search results, so the field is not shipped. - Compensation is a display string first.
salaryTextis always Wellfound's own wording; the numeric fields are parsed from it. When parsing cannot be trusted, the text is still there. - Each page holds about 30–45 jobs, so a run that wants 1,000 jobs walks about 30 pages, pausing a second between each to stay a polite client.
- The filters read further. Only about 1 job in 6 carries the Y Combinator badge, so with Y Combinator companies only (or Remote only) on, the run keeps reading pages until it has Max results matching jobs or the role runs out. Those runs take longer, but you're still charged only for the jobs returned.
- The run stops early, rather than spinning, once two consecutive pages return nothing new.
FAQ
Does it need a Wellfound login or API key?
No. Wellfound serves these pages to ordinary visitors, so there is no account, cookie or key to manage.
Why did my search stop with a message instead of returning jobs?
Wellfound only recognises its own broad role names and city names. When it doesn't recognise one it quietly shows other jobs instead — remote jobs of any role, or the role's jobs from everywhere — so the Actor stops rather than hand you the wrong results, and the message says what to change:
- Roles are broad:
software engineer,product manager,data scientist,designer. A seniority word in front (senior,junior,staff,principal,lead,entry level, orinternafter the role) is handled for you: Wellfound has nosenior software engineerrole, so the run searchessoftware engineerand keeps the senior titles, and its status message says so. - Locations are cities.
Toronto, ON,New York, NYand accented names such asMontréalare handled for you;remoteswitches on remote-only.
A search Wellfound does recognise but has no jobs for — a small city, say — finishes successfully with zero results and a note saying so.
How fresh are the listings?
postedAt carries the timestamp Wellfound put the job live. Sort or filter on it to keep only recent roles.
Is it legal to scrape Wellfound?
This Actor reads only job listings that Wellfound shows to every visitor, without signing in. Rows describe jobs and companies rather than people, though a job description can occasionally name a hiring contact. Whether your use is allowed depends on what you do with the data and where you are: check Wellfound's terms and the laws that apply to you, such as GDPR, and ask a lawyer if you are unsure.
Can you add company detail pages, or job-level applicant counts?
Ask through the Issues tab. The search payload is rich, but some fields only exist on the individual job page and would cost an extra request each.
Other Actors by this developer
- Indeed Jobs Scraper: job listings from Indeed in Canada, the US and six more countries, with full descriptions, pay and the employer's apply link
- Canadian Job Market Scraper - Job Bank: Canadian job postings from the Government of Canada's job board, with salary, employer, location and NOC code
- SEEK, JobStreet & JobsDB Jobs Scraper: jobs from SEEK, JobStreet and JobsDB in Australia, New Zealand and six Asian markets, with pay as numbers, applicant counts and change tracking
Data source
All data comes from Wellfound (wellfound.com, formerly AngelList Talent), a public job board, read from the same page payload the site renders for visitors. No login, no account, no browser automation.