Wellfound Jobs Scraper - Startup Jobs & Salary Data
Pricing
from $0.70 / 1,000 job listings
Wellfound Jobs Scraper - Startup Jobs & Salary Data
Scrape startup jobs from Wellfound (AngelList): job title, salary range, equity range, remote policy, experience, full description, company size, stage, YC and investor badges. No login.
Pricing
from $0.70 / 1,000 job listings
Rating
0.0
(0)
Developer
Crikit
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
What is Wellfound Jobs Scraper?
Wellfound Jobs Scraper lets you extract startup job listings from Wellfound (formerly AngelList Talent) at scale, helping you build recruiting pipelines, track hiring signals across the startup market, and feed job boards with fresh, structured data. Search by role and city, get back every listing with its salary band, equity band, remote policy and the company behind it.
- ๐ฏ Track startup hiring signals: see which startups are actively hiring, growing fast, YC funded or backed by top investors, and pick up on expansion before it hits the news.
- ๐ฐ Benchmark salary and equity: every listing carries a parsed salary range and equity range as numbers, so you can chart compensation by role, city and company stage without cleaning strings first.
- ๐งฒ Build recruiting and sales lists: company name, tagline, size, stage, logo and Wellfound profile URL on every row, ready for a CRM or an outreach sequence.
- ๐ Power a niche job board: full job descriptions in markdown, remote policy, job type and posting date, refreshed on whatever schedule you set.
- ๐ Research a market before you enter it: count how many startups in a city are hiring for a role, and at what pay.
Wellfound has no public jobs API, and its own site stops serving new results after roughly 47 pages per search. Wellfound Jobs Scraper walks that full depth automatically, stops the moment the site starts repeating itself, and deduplicates across every search you queue, so you never pay twice for the same listing.
What data does Wellfound Jobs Scraper extract?
The job
- ๐ท Job title and Wellfound's own normalised role title (
title,primaryRoleTitle) - ๐ Direct link to the listing and to the company profile (
jobUrl,companyUrl) - ๐ฒ Raw compensation string exactly as Wellfound shows it (
compensation) - ๐ต Parsed salary range with currency (
salaryMin,salaryMax,salaryCurrency) - ๐ Parsed equity range as percentages (
equityMin,equityMax) - ๐ Remote policy: remote, onsite, or onsite-or-remote, plus work-from-home flexibility (
remoteKind,isRemote,wfhFlexible) - ๐ Office locations and the countries a remote role is open to (
locationNames,acceptedRemoteLocationNames) - ๐ Employment type: full-time, contract or internship (
jobType) - ๐ Years of experience required, minimum and maximum (
yearsExperienceMin,yearsExperienceMax) - ๐ Date the listing went live, as an ISO timestamp (
postedAt) - ๐ The complete job description in markdown (
description) - โ๏ธ Which applicant tracking system the role is syndicated from, for example Ashby, Greenhouse or Lever (
atsSource)
The startup behind it
- ๐ข Company name, slug, id and one-line tagline (
companyName,companyTagline) - ๐ฅ Headcount band, for example "11-50 employees" (
companySize) - ๐ Funding stage: Early, Growth or Scale (
companyStage) - ๐ Y Combinator funded flag (
isYcFunded) - ๐ผ Top investors flag and $1B-plus valuation badge (
hasTopInvestors,companyBadges) - ๐ฅ Actively hiring and growing fast flags (
isActivelyHiring,isGrowingFast) - โฑ How fast the company replies to applicants, for example "Responds within a day" (
responseSpeed) - โญ๏ธ Glassdoor rating where Wellfound publishes one (
glassdoorRating) - ๐ผ Company logo URL (
companyLogoUrl)
Provenance on every row
- ๐ The role and location you searched, and what Wellfound actually matched them to (
searchRole,searchLocation,matchedRole,matchedLocation) - ๐ The exact page the row came from (
sourceUrl) and when it was scraped (scrapedAt)
How to use Wellfound Jobs Scraper
- Click Try for free and open the input form.
- Type the roles you want in plain English, one per line, for example
software engineer,product manager,data scientist. - Add cities in Locations, one per line, for example
new york,san francisco,london. Leave it empty to search every location. - Set Max results to whatever you want to spend, then click Start.
- Export to JSON, CSV, Excel or Google Sheets, or pull the dataset straight from the Apify API.
Every role is combined with every location, so three roles and four cities is twelve searches in one run.
Input
{"roles": ["software engineer", "product manager"],"locations": ["new york", "san francisco"],"maxItems": 500,"includeDescription": true,"proxyConfiguration": { "useApifyProxy": true }}
Power users can skip the role and location builder and paste Wellfound URLs directly:
{"startUrls": ["https://wellfound.com/role/l/software-engineer/new-york","https://wellfound.com/role/r/data-scientist","https://wellfound.com/location/london"],"maxItems": 1000}
| Field | Type | Default | What it does |
|---|---|---|---|
roles | array of strings | ["software engineer"] | Roles to search, in plain English |
locations | array of strings | [] | Cities to search. Empty means all locations |
startUrls | array of strings | [] | Wellfound /role/r/, /role/l/ or /location/ URLs |
maxItems | integer | 200 | Hard cap on rows. 0 means no limit |
includeDescription | boolean | true | Include the full job description text |
maxPagesPerQuery | integer | 47 | How deep to page into one search |
proxyConfiguration | object | Apify Proxy | Datacenter proxy is enough, and it is the cheapest |
Output
One row per job listing. Trimmed real record:
{"jobId": "3336630","title": "Senior Software Engineer","jobUrl": "https://wellfound.com/company/shelfcycle/jobs/3336630-senior-software-engineer","primaryRoleTitle": "Software Engineer","jobType": "full-time","isRemote": true,"remoteKind": "onsite or remote","locationNames": ["New York City"],"compensation": "$160k โ $200k โข 0.25% โ 0.5%","salaryMin": 160000,"salaryMax": 200000,"salaryCurrency": "USD","equityMin": 0.25,"equityMax": 0.5,"yearsExperienceMin": 5,"postedAt": "2026-09-01T14:32:48.000Z","companyName": "ShelfCycle","companyTagline": "Modern OS for chemical distributors","companySize": "1-10 employees","companyStage": "Early Stage","companyBadges": ["Actively Hiring", "Top 10% of responders", "B2B", "Early Stage"],"isYcFunded": false,"isActivelyHiring": true,"responseSpeed": "Top 10% of responders","searchRole": "software engineer","matchedRole": "Software Engineer","matchedLocation": "New York","scrapedAt": "2026-09-04T13:36:54.659Z"}
The dataset ships with two ready-made table views. Overview gives you job title, company, location, remote policy, salary band, equity band, company size, posting date and link. Companies gives you the startup side on its own: tagline, size, stage, YC and investor flags, response speed and Glassdoor rating.
How much does it cost to scrape Wellfound?
One flat price of $0.70 per 1,000 job listings. No actor start fee, no per-page fee, no surcharge for the full job description, no separate charge for company data.
| Job listings | Cost |
|---|---|
| 1,000 | $0.70 |
| 10,000 | $7.00 |
| 100,000 | $70.00 |
Rows are deduplicated by job id across every search in a run, so overlapping queries such as "software engineer" and "backend engineer" in the same city never bill you twice for the same listing. Other Wellfound scrapers on the Store charge between $0.99 and $5.00 per 1,000, and several add a per-run start fee on top.
Measured coverage
Measured over 832 job rows across 15 test runs on 2026-09-04, spanning six roles and seven cities:
| Field | Coverage | Note |
|---|---|---|
title, companyName, jobUrl, postedAt, jobType, remoteKind | 100% | Always present |
companyLogoUrl, primaryRoleTitle | 100% | Always present |
description | 100% | When includeDescription is on |
companySize | 99% | |
companyTagline | 97% | |
companyBadges | 93% | Empty when a company has earned no badges |
locationNames | 87% | Empty on remote-only roles |
compensation | 81% | Wellfound shows pay on roughly four listings in five |
salaryMin, salaryMax, salaryCurrency | 76% | Parsed from compensation where a salary is quoted |
companyStage | 70% | |
atsSource | 56% | Only for roles syndicated from an ATS |
yearsExperienceMin | 41% | Only when the company set it |
equityMin, equityMax | 26% | Only when the listing quotes equity |
responseSpeed | 24% | Only for companies with enough application history |
glassdoorRating | 9% | Only where Wellfound surfaces a Glassdoor score |
Throughput measured on the same date: 1,249 unique listings from a single role search in 31 seconds, zero duplicates.
Limits
- Roughly 1,300 listings per search. Wellfound stops serving new results after about 47 pages and then quietly repeats page 1. The scraper detects that and stops rather than billing you for duplicates. For more volume, split the search: add cities, or use narrower role names.
- Keyword search is not supported.
wellfound.com/jobs?q=...renders its results in the browser and carries no data in the page source, so it cannot be scraped this way. Use role names and cities instead, which is how Wellfound's own indexed pages are organised. - Unrecognised role names return a generic list. Wellfound answers an unknown role with a general job feed instead of an error. When that happens the run logs a warning and every affected row carries
matchedRole: null, so you can filter them out. - Applicant counts and recruiter contact details are not available. Those sit behind a Wellfound login, and this scraper uses no credentials of any kind.
- Company pages are not scraped. Only the company data Wellfound includes in its search results, which is the block listed above.
FAQ
Is it legal to scrape Wellfound?
Wellfound Jobs Scraper reads only public job listing pages that Wellfound publishes for search engines. It uses no login, no cookies and no credentials, and it collects no personal data about candidates. Job listings and company profiles are business information. You are responsible for how you use the data you collect, including compliance with Wellfound's terms and with any applicable data protection law in your jurisdiction.
Do I need a Wellfound account?
No. The scraper never signs in and never asks you for credentials.
Can I use Wellfound Jobs Scraper as an API?
Yes. Every actor on Apify is an API endpoint. Start a run and collect the dataset with a single HTTP call, or use the official clients. See the Apify API docs.
Can I use this in Python?
Yes, with apify-client:
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("YOUR_USERNAME/wellfound-jobs-scraper").call(run_input={"roles": ["software engineer"],"locations": ["new york"],"maxItems": 500,})for job in client.dataset(run["defaultDatasetId"]).iterate_items():print(job["title"], job["companyName"], job["salaryMin"], job["salaryMax"])
Can I integrate Wellfound Jobs Scraper with other apps?
Yes. Apify has native integrations for Zapier, Make, Slack, Google Sheets, Google Drive, GitHub and Airtable, plus generic webhooks that fire when a run finishes. Point a webhook at your own service and treat the scraper as a data feed.
How do I schedule Wellfound Jobs Scraper to run automatically?
Use Apify Schedules. Daily at 7am is a good cadence for hiring signals: new listings show up with a fresh postedAt, so you can diff against yesterday's dataset to get only what changed.
Why did I get fewer results than expected?
Three usual causes. First, maxItems is doing its job. Second, the role and city combination is genuinely thin: "software engineer in Reykjavik" returns nothing, and the run tells you so in a single row with noResults: true. Third, you hit the roughly 1,300 listings per search ceiling described under Limits. Check the run log, which states how many new rows each page contributed.
Why is the salary missing on some rows?
Because Wellfound does not have it. Roughly one listing in five quotes no pay at all. Rows carry compensation: null in that case rather than a guess.
What does "onsite or remote" mean in remoteKind?
It is Wellfound's own three-way classification, passed through unchanged: remote, onsite, or onsite or remote for roles the company will fill either way. wfhFlexible is a separate flag for onsite roles that allow work-from-home days.
Can I get a field that is not listed?
If Wellfound publishes it on the search pages, probably yes. Open an issue on the actor page and describe the field.
What happens if Wellfound blocks the scraper mid-run?
The run keeps whatever it has already collected, rotates to a fresh proxy exit address, and retries up to four times per page. If a search still cannot be read, that search is skipped and the rest of the run continues. Runs finish as succeeded with an explanatory row rather than failing, so a scheduled pipeline does not break.
You might also like
- Indeed Jobs Scraper for mainstream job market coverage
- ATS Job Boards Search Scraper for Greenhouse, Ashby and Lever boards directly
- Dice Tech Jobs Search Scraper for US tech contract and permanent roles
- Workday Jobs Search Scraper for enterprise career sites
- Glassdoor Company Scraper for employer ratings and reviews
Changelog
0.1 (2026-09-04) - First release. Role, role plus city and city-wide search, salary and equity parsing across currencies, company badges, deduplication across searches, and automatic end-of-results detection.