Wellfound All-in-One API avatar

Wellfound All-in-One API

Pricing

from $0.78 / 1,000 job listing items

Go to Apify Store
Wellfound All-in-One API

Wellfound All-in-One API

Always-on REST API for Wellfound (AngelList) startup jobs: browse by role, location or both, remote-only, and full job detail with structured salary. No login, no browser.

Pricing

from $0.78 / 1,000 job listing items

Rating

0.0

(0)

Developer

Romy

Romy

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

5 days ago

Last modified

Share

Unofficial, always-on REST API for Wellfound (wellfound.com, formerly AngelList Talent) startup job listings: browse by role, by location, by both together, remote-only, or fetch full job detail. No account, login, app or device needed for any endpoint here.

Why

Wellfound has no public JSON API -- this wraps its own server-rendered pages, verified live (2026-09-23) from a home IP and from Apify's own direct, datacenter and residential proxy IPs. Every filter below was live-tested and classified as a real filter or confirmed non-existent before being exposed here -- nothing is guessed from the UI alone.

  • Role and location slugs are open, not a curated list. Wellfound's nav only links ~12 roles and ~10 locations, but arbitrary slugs work fine -- verified live with backend-engineer, devops-engineer, kubernetes, berlin, toronto, and more. A slug is the lowercase, hyphenated form of the role/location name; an unrecognized one 404s.
  • The combined role+location filter is real, but it lives at a different URL shape than you'd guess: /role/l/:role/:location, not a query string. Query-string filters (?role=, ?location= on /jobs or on /role/r/:slug) were live-tested and confirmed inert -- silently ignored, not an error -- so this API doesn't offer them.
  • Remote-only is role-specific, not location-specific. /role/r/:slug (a real, separately-paginated subset) exists; the equivalent for location (/location/r/:slug) does not -- live-tested, 404. Use /jobs/remote for global remote listings across every role instead.
  • No salary/equity/job-type/experience/company-stage filter parameters exist as crawlable URLs -- checked directly in the page UI, not assumed. Those only exist in Wellfound's interactive client-side search, which is gated by a Cloudflare Turnstile challenge and out of scope here.
  • Company profile pages are not available. wellfound.com/company/:slug returns 403 on every IP tier tested, including residential from a home network. Job detail responses still carry company name, website and logo (from the job's own embedded structured data), just not company size/funding/about-page content.
  • Job detail is parsed from real structured data, not fragile HTML scraping: every job page embeds a schema.org JobPosting JSON-LD block (full description, structured salary, employment type, company info, date posted) that this API parses directly.

Endpoints

Jobs

GET /jobs/by-role

One page of job listings for a role slug (any location, or remote-only with remoteOnly=true). Each item is a listing-level summary (title, company, salary/equity range, location text, employment type, posted date) -- call /job for the full description and structured salary from any given result.

ParamRequiredDescription
slugyesRole slug, as it appears in a Wellfound "Jobs by Role" URL (wellfound.com/role/ROLE). Not limited to a curated list -- live-verified 2026-09-23 that arbitrary slugs work (e.g. "backend-engineer", "devops-engineer", "kubernetes", "berlin", "toronto"), derived by lowercasing the title and joining words with hyphens. An unrecognized slug returns 404, not an error.
pagenoListing page number, 1-based (default 1). Popular role/location combinations can run 40-90+ pages.
remoteOnlynoIf true, only remote-eligible jobs for this role (maps to wellfound.com/role/r/ROLE, a real, separately-paginated subset -- roughly half the page count of the non-remote-filtered listing for the same role, verified live). Default false (all jobs for the role, any location).

Billed per item returned (job-listing-scraped event); an empty result is free.

GET /jobs/by-location

One page of job listings for a location slug (any role). There is no remote-only variant of this endpoint -- live-verified: wellfound.com/location/r/SLUG 404s. Use /jobs/remote for global remote jobs.

ParamRequiredDescription
slugyesLocation slug, as it appears in a Wellfound "Jobs by Location" URL (wellfound.com/location/LOCATION). Global, not US-only (e.g. "berlin", "singapore", "toronto" all verified working). Not limited to a curated list -- live-verified 2026-09-23 that arbitrary slugs work (e.g. "backend-engineer", "devops-engineer", "kubernetes", "berlin", "toronto"), derived by lowercasing the title and joining words with hyphens. An unrecognized slug returns 404, not an error.
pagenoListing page number, 1-based (default 1). Popular role/location combinations can run 40-90+ pages.

Billed per item returned (job-listing-scraped event); an empty result is free.

GET /jobs/by-role-location

One page of job listings for a role AND a location together (wellfound.com/role/l/ROLE/LOCATION). This is a real, separately-paginated combined filter -- not a client-side intersection of two calls.

ParamRequiredDescription
roleyesRole slug, as it appears in a Wellfound "Jobs by Role" URL (wellfound.com/role/ROLE). Not limited to a curated list -- live-verified 2026-09-23 that arbitrary slugs work (e.g. "backend-engineer", "devops-engineer", "kubernetes", "berlin", "toronto"), derived by lowercasing the title and joining words with hyphens. An unrecognized slug returns 404, not an error.
locationyesLocation slug, as it appears in a Wellfound "Jobs by Location" URL (wellfound.com/location/LOCATION). Global, not US-only (e.g. "berlin", "singapore", "toronto" all verified working). Not limited to a curated list -- live-verified 2026-09-23 that arbitrary slugs work (e.g. "backend-engineer", "devops-engineer", "kubernetes", "berlin", "toronto"), derived by lowercasing the title and joining words with hyphens. An unrecognized slug returns 404, not an error.
pagenoListing page number, 1-based (default 1). Popular role/location combinations can run 40-90+ pages.

Billed per item returned (job-listing-scraped event); an empty result is free.

GET /jobs/remote

One page of globally remote job listings across every role (wellfound.com/remote).

ParamRequiredDescription
pagenoListing page number, 1-based (default 1). Popular role/location combinations can run 40-90+ pages.

Billed per item returned (job-listing-scraped event); an empty result is free.

GET /job

Full detail for one job, parsed from the schema.org JobPosting structured data Wellfound embeds on every job page: description (simple HTML -- paragraphs, lists, links -- as Wellfound itself stores it, not plain text), structured salary (currency/min/max), employment type, datePosted, and company name/website/logo. Company SIZE/funding/about-page data is NOT available -- wellfound.com/company/:slug pages return 403 on every IP tier tested, including residential.

ParamRequiredDescription
slugyesFull job slug: the "ID-title-words" segment after wellfound.com/jobs/ (as returned in the slug field by any /jobs/by-* or /jobs/remote listing call). The bare numeric id alone does NOT resolve -- live-verified: wellfound.com/jobs/{id} without the title slug 404s.

Billed once per successful request (job-detail-scraped event).

Pricing

Pay-Per-Event. Listing endpoints (/jobs/by-role, /jobs/by-location, /jobs/by-role-location, /jobs/remote) are billed per job item returned -- an empty page (e.g. past the last page) is free. /job (full detail) is billed once per successful call.

Known limitations

  • No cursor/keyset pagination beyond what Wellfound's own ?page=N exposes; popular role/location combinations run 40-90+ pages.
  • Company profile data (size, funding, about page) is not available -- see "Why" above.
  • Listing-page fields (salary/equity/location text) are display strings as Wellfound renders them (e.g. "$100k – $180k", "Remote only • Canada + 3"), not normalized numbers -- call /job for structured salary (currency/min/max) on any result you need to sort or filter on precisely.
  • /job's description field is simple HTML (paragraphs, lists, links) as Wellfound itself stores it, not plain text -- strip tags client-side if you need plain text.