Wellfound Jobs Scraper avatar

Wellfound Jobs Scraper

Pricing

$0.25 / 1,000 wellfound job listings

Go to Apify Store
Wellfound Jobs Scraper

Wellfound Jobs Scraper

Wellfound Jobs Scraper extracts public Wellfound job listings with stable IDs, useful filters and clear run diagnostics. Independent project with no login or access-control bypass.

Pricing

$0.25 / 1,000 wellfound job listings

Rating

0.0

(0)

Developer

Cliqto Media

Cliqto Media

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

4 days ago

Last modified

Share

Extract public Wellfound job listings into a clean Apify Dataset. Each saved listing has a stable numeric job ID, a canonical Wellfound job URL and source-backed fields such as company, location, remote status, compensation, posting date and description when those values are published on the page.

This is an independent project. It is not affiliated with, endorsed by or sponsored by Wellfound or AngelList.

What it does

  • Reads public Wellfound jobs, role, location and exact-job pages.
  • Accepts a public URL directly or builds search URLs from role and location slugs.
  • Keeps one Dataset row per unique numeric Wellfound job ID.
  • Supports keyword, remote-only, employment-type and posting-age filters over fetched public fields.
  • Preserves canonical job URLs and the URL family used for the extraction.
  • Writes a run summary, diagnostics and progress record to the Key-Value Store, including useful empty, partial, blocked and not-found outcomes.

What it does not do

The Actor does not use a Wellfound account or private session. It does not collect candidate, profile, contact or application data; fetch external ATS or company pages; solve CAPTCHAs; bypass access controls; or promise a global, complete or permanently fresh Wellfound index. Coverage is limited to the public pages fetched in the run and is labelled public_page_subset.

Input

The default input reads the public https://wellfound.com/jobs feed. A useful role-and-location prefill is:

{
"startUrls": [
{ "url": "https://wellfound.com/role/l/software-engineer/new-york" }
],
"maxItems": 50,
"maxPagesPerSeed": 3,
"maxRequests": 200,
"includeDescription": true
}

Use startUrls for public search or exact-job URLs. roles and locations are convenience fields; leave startUrls empty when using them. With no explicit URL, role or location, the bounded /jobs feed is used. query, remoteOnly, jobType and postedWithinDays are filters over the pages fetched for the run. includeDescription is enabled by default: when a listing page has no inline description, the Actor makes one bounded exact-job request for that candidate. This is especially important for the public /jobs feed, whose structured listing state carries the job/company fields but not the full description. Set it to false for link-first output. Detail requests remain inside maxItems/maxRequests.

The safety and resource controls are deliberately explicit:

  • maxItems: 1–1,000 requested Dataset rows;
  • maxPagesPerSeed: 1–50 pages per URL;
  • maxRequests: 1–1,500 request attempts for the run;
  • requestTimeoutSecs: 5–60 seconds per attempt;
  • requestDelayMs: 500–10,000 milliseconds between request starts;
  • maxRetries: 0–2 temporary-error retries.

The source or filters can produce fewer rows than any requested maximum. AUTO and DIRECT use the supported direct HTTPS connection path.

Output

Dataset rows include:

  • stable id (wellfound:<numeric-id>) and jobId;
  • title, jobUrl, company fields and role/type fields;
  • locations, accepted remote locations and explicit remote signals;
  • published compensation text and parsed salary/equity values when unambiguous;
  • posting timestamp, public description, ATS label and badges when available;
  • sourceUrl, sourceMode, sourcePage, observedAt and coverage.

Unavailable source fields remain null or []; they are not guessed. The Dataset contains job rows only. The Key-Value Store contains:

  • RUN_SUMMARY — final product status, counts, limits, transport and timing;
  • RUN_DIAGNOSTICS — machine-readable source or input diagnostics;
  • RUN_PROGRESS — the latest progress snapshot.

See docs/SPEC.md, docs/OUTPUT-CONTRACT.md and docs/publication/SUPPORT.md.

Example row

This example uses placeholder values. A real row keeps the same fields and records only values published by Wellfound.

{
"recordType": "JOB_LISTING",
"id": "wellfound:1234567",
"jobId": "1234567",
"title": "Senior Software Engineer",
"jobUrl": "https://wellfound.com/jobs/1234567-senior-software-engineer",
"companyName": "Example Labs",
"primaryRole": "Software Engineer",
"jobType": "full-time",
"locations": ["New York City"],
"remote": false,
"compensationText": "$140k – $180k",
"salaryMin": 140000,
"salaryMax": 180000,
"salaryCurrency": "USD",
"postedAt": "2026-09-13T00:00:00.000Z",
"description": "Example public job description.",
"sourceMode": "search",
"coverage": "public_page_subset"
}

Pricing

The Actor charges $0.00025 for each saved job listing. That is $0.25 per 1,000 saved rows. Empty, filtered, duplicate, diagnostic, blocked, invalid and failed outcomes do not create a result charge.

Source and safe use

The Actor reads public Wellfound pages with limited HTTPS requests. Do not use it with private credentials, private sessions or data you are not allowed to access. Review the current Wellfound site Terms and applicable law before using extracted data. This project does not grant any permission to republish source data.