← Health board

Wellfound Startup Jobs Scraper & Hiring Signals

Startup jobs from Wellfound with the pay range parsed, the full job description, and the hiring company's size, tagline and badges on every row — in one fetch.

insufficient data

Verification

Not yet in the weekly verification report.

Output fields

Authoritative field set from the dataset schema.

FieldType
titlestring|null
company_namestring|null
compensationstring|null
job_typestring|null
locationsarray|null
remoteboolean|null
posted_datestring|null
company_sizestring|null
hiring_badgesarray|null
actively_hiringboolean|null
rolestring|null
years_experience_mininteger|null
company_taglinestring|null
company_urlstring|null
descriptionstring|null
matched_bystring|null
requested_rolestring|null
requested_locationstring|null
source_urlstring|null
noticestring|null

Sample row

{
  "source_url": "https://wellfound.com/jobs/4639821-software-engineer",
  "title": "Software Engineer",
  "role": "Software Engineer",
  "job_type": "full-time",
  "compensation": "$150k – $176k",
  "salary_min": 150000,
  "salary_max": 176000,
  "has_equity": null,
  "remote": false,
  "locations": [
    "Denver",
    "San Francisco"
  ],
  "remote_locations": null,
  "posted_date": "2026-06-23",
  "years_experience_min": null,
  "company_name": "Checkr",
  "company_size": "SIZE_501_1000",
  "company_tagline": "The only background check company using artificial intelligence and machine learning",
  "company_url": "https://wellfound.com/company/checkr",
  "hiring_badges": [
    "ACTIVELY_HIRING",
    "B2B",
    "HIGHLY_RATED",
    "QUICK_RESPONDER",
    "TOP_INVESTORS",
    "VALUATION_1B",
    "YC"
  ],
  "actively_hiring": true,
  "matched_by": "role_and_location",
  "requested_role": "software engineer",
  "requested_location": "san francisco"
}

Inputs

FieldTypeReqDefaultDescription
role string no "software engineer" A job role, e.g. 'software engineer', 'product designer', 'data scientist'. Type it normally — spacing and capitals do not matter. Kept forever alongside 'Roles' because saved tasks and API callers send it.
roles array no [] Pull several roles in ONE run, e.g. software engineer and product designer. Combined with 'Role' if you fill both. Every role is searched in every location, and 'Maximum results' applies to each role+location pair, so adding one can never truncate the others.
location string no "san francisco" A city, e.g. 'san francisco', 'new york', 'london'. Leave it out to search the role nationwide. Do NOT type 'remote' — Wellfound redirects that to the nationwide page and silently widens the search; use 'Remote jobs only' below instead.
locations array no [] Pull several cities in ONE run. Combined with 'Location' if you fill both. Roles and locations combine as a product: 3 roles across 4 cities is 12 searches in one run.
remoteOnly boolean no false Keep only jobs Wellfound flags as remote. This filters the search results rather than changing the search, because Wellfound has no remote-only index.
maxResults integer no 100 Cap on the number of jobs returned PER role+location pair, not per run — so adding a city cannot silently truncate the ones before it. Wellfound serves at most 15 pages of search results (roughly 500-600 jobs) per search whatever total it reports; the run says so on the row when you ask for more than it can reach.
proxyConfiguration object no {"useApifyProxy":false} Leave OFF. Measured 2026-09-08: Wellfound answers Apify's plain egress normally and serves the datacenter proxy pool a Cloudflare 403, so switching a proxy on is what breaks this actor. Residential also works if your own runs ever start getting refused.

Pricing

Pay per result (job) — no charge for empty runs.
Example: 1000 job listings at $0.00175/result ≈ $1.75.

FAQ

Why does it return the full job description when other Wellfound scrapers need an extra enrichment step?

Because of where the data is read from, not because of any trick. Wellfound is a Next.js site and every search page embeds its entire Apollo cache in the HTML — the job description, job type, normalised role, the employer's headcount bucket, tagline, logo and badges are all sitting in that blob already. This Actor parses the blob rather than the rendered page, so those fields cost no extra request. Scrapers that read the visible listing cards instead have to fetch each job's detail page to fill them in, which is why they expose it as a separate, extra-cost option. Measured 2026-09-08 against the category leader on the same query: description, job type, role title, company size and company tagline were empty on its default run and populated on all of ours.

Can I search for remote jobs?

Yes — with the 'Remote jobs only' switch, not by typing 'remote' as the location. Wellfound has no remote index: the URL /role/l/<role>/remote redirects to the plain nationwide role page, which is a much broader search than the one you asked for and nothing in the response tells you it happened. For 'data scientist' that is the difference between 396 jobs and 4,981. This Actor refuses 'remote' as a location and says why, then filters on Wellfound's own remote flag when you use the switch.

How many jobs can I actually get for one search?

Wellfound serves at most 15 pages of search results per search — roughly 500 to 600 jobs — however many matches it reports on the page. If you ask for more than a search can reach, the run returns everything it can and adds one free row saying so, with Wellfound's own stated total. To go deeper, narrow the search: a role plus a city reaches a different, smaller set than the role alone, and running several cities in one run is the intended way to cover more ground.

Should I turn the proxy on?

No, and switching one on is the most likely way to break a run. Measured from inside an Apify run on 2026-09-08: the container's own address answered 200 with the full page, and Apify's datacenter proxy pool was served a Cloudflare 403 on the same request in the same run. Residential also works but buys nothing today. The input is left available in case your own runs are ever refused, and it defaults to off.

Does it return candidate or applicant data?

No. Everything here comes from public job postings and public company profiles — the job, its pay range, its description, and the hiring company. No candidate profiles, no applicant information and no personal contact details are collected.

What happens when a search returns nothing, or Wellfound refuses the request?

You get a free, unbilled row that says which. A search that genuinely matched nothing returns a 'no_results' marker; a refusal returns 'blocked'; a page whose structure no longer parses returns 'source_changed'. That distinction matters on a jobs feed, because zero rows otherwise reads as 'nobody is hiring' when the real answer may be that the source did not answer.

Guides & use cases

Related actors