πŸš€ Wellfound Jobs Scraper avatar

πŸš€ Wellfound Jobs Scraper

Pricing

from $3.99 / 1,000 results

Go to Apify Store
πŸš€ Wellfound Jobs Scraper

πŸš€ Wellfound Jobs Scraper

Scrape job listings from Wellfound (formerly AngelList Talent) at scale. Search by location, company, keyword, or paste raw URLs.

Pricing

from $3.99 / 1,000 results

Rating

0.0

(0)

Developer

ScraperX

ScraperX

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Share

πŸš€ Wellfound Jobs Scraper β€” Startup Jobs, Salaries & Companies from Wellfound (AngelList Talent)

Scrape job listings from Wellfound β€” formerly AngelList Talent, the largest startup job marketplace. Search by location, keyword or company, or paste Wellfound URLs directly, and get every listing with its title, company, location, salary range, employment type, posting date, direct URL and full job description.

Wellfound is where startups hire, and unusually for a job board, most listings publish a salary range. That makes it one of the best public sources for startup compensation data.


What you get

πŸ’Ό Job🏒 CompanyπŸ“‹ Detail
Job titleCompany nameFull job description
Location (normalised)Employment type (full-time, part-time, contract, internship)
Salary / compensation rangePosting date
Direct job URLSource label

Key features

  • Four ways to search. By location, by keyword, by company name, or by pasting Wellfound URLs (search/listing pages or individual job-detail pages). URLs take priority when supplied.
  • Salary data as standard. Wellfound listings usually include a compensation range, and the Actor normalises it into a consistent field β€” a genuinely rare thing in job scraping.
  • Residential-first networking. Wellfound uses DataDome anti-bot protection that reliably blocks direct and datacenter traffic from cloud IPs. This Actor defaults to residential sticky sessions, rotating the exit IP on each retry, rather than wasting attempts on tiers that never work. Your own proxy configuration still takes precedence.
  • Geo-targeted proxy exits. The country field selects where residential exit nodes should appear β€” useful when a market shows different listings.
  • Descriptions that fail gracefully. DataDome serves listing pages but throttles rapid detail-page hits. Rather than burning ~60 seconds per job on a timeout, detail loads use a short readiness budget and auto-disable after 4 consecutive blocks. Every listing field still comes through, and descriptions populate whenever detail pages are reachable β€” so a run never stalls.
  • Real filters. Employment type and date posted (today, 3 days, week, month), plus a loose company-name match.
  • Predictable pagination. pagesToFetch controls how many listing pages to open per start URL, at roughly 25 jobs per page.
  • Never a failed run. Empty input crawls Wellfound's /jobs landing page and finishes successfully instead of erroring.

Use cases

  • Startup job aggregation β€” feed a niche board with fresh startup roles.
  • Startup salary benchmarking β€” Wellfound's published compensation ranges make this one of the best free sources for startup pay data.
  • Recruitment market research β€” see which startups are hiring, for what, and at what level.
  • Competitor hiring intelligence β€” filter by company name to track exactly what a competitor is building.
  • Talent-market analysis β€” compare role demand and pay across cities and countries.
  • Investor and ecosystem research β€” hiring volume is a strong growth signal for a startup.
  • Job-alert automation β€” schedule a daily run with datePosted: "today" and push new matches to Slack.
  • Lead generation for HR tech and recruiting β€” companies posting many roles are actively spending on hiring.

How it works

  1. You supply Wellfound URLs, or search filters (location, keyword, company).
  2. A Wellfound search is built when no URLs are given, combining your location and keyword.
  3. Listing pages are walked β€” around 25 jobs each β€” up to your page count.
  4. Every listing is normalised: title, company, location, salary, job type and date come from the listing data itself, so records are complete even if detail pages are blocked.
  5. Detail pages are opened for full descriptions when fetchDescriptions is on, with a short readiness budget and automatic disabling if Wellfound throttles them.
  6. Rows stream into the dataset as they are collected.

Quick start

  1. Open the Actor and enter a Location β€” e.g. New York, San Francisco or Remote.
  2. (Optional) Add a Keyword such as python engineer.
  3. Set Pages to Fetch (each page β‰ˆ 25 jobs).
  4. Click Start, then export the Output tab as CSV, Excel or JSON.

Minimal input

{
"locationName": "New York",
"pagesToFetch": 2,
"fetchDescriptions": true
}

Input configuration

At least one of locationName, companyName, includeKeyword or startUrls should be provided.

FieldTypeDefaultDescription
startUrlsarray[]Wellfound URLs in bulk β€” search/listing pages (https://wellfound.com/location/new-york) or individual job pages (https://wellfound.com/jobs/123456-role). Takes priority over the search filters.
locationNamestringNew YorkCity or region to search (New York, San Francisco, Remote). Used to build the search URL when no start URLs are given.
includeKeywordstringβ€”Extra search term β€” role title, skill or technology (e.g. python engineer). Combined with the location.
companyNamestringβ€”Keep only cards whose company name loosely matches this value.
countryNamestringUnited StatesISO country name used to geo-target residential proxy exit nodes. Pick the country the traffic should appear from.

Filters & volume

FieldTypeDefaultDescription
pagesToFetchinteger1Listing pages to open per start URL. Each page contains ~25 jobs.
jobTypestringβ€”FULLTIME, PARTTIME, CONTRACTOR or INTERN.
datePostedstringalltoday, 3days, week, month or all.
fetchDescriptionsbooleantrueOpen each job page for the full description. Slower and richer; auto-disables if Wellfound blocks detail pages repeatedly.

Network

FieldTypeDefaultDescription
proxyConfigurationobjectoffOptional. Leave off to use the Actor's residential-first strategy; supply your own proxy to override it.

Output data

One row per job.

FieldTypeDescription
job_titlestringJob title.
company_namestringHiring company.
locationstringNormalised location (including remote).
salarystringNormalised compensation range, where Wellfound publishes one.
job_typestringFull-time, Part-time, Contract or Internship.
datestringNormalised posting date.
URLstringDirect link to the job.
descriptionstringFull description, when the detail page was reachable.
posted_viastringSource label β€” Wellfound.

Example output

{
"job_title": "Senior Backend Engineer",
"company_name": "Example Labs",
"location": "New York, NY (Remote OK)",
"salary": "$140k – $180k",
"job_type": "Full-time",
"date": "2026-08-06",
"URL": "https://wellfound.com/jobs/123456-senior-backend-engineer",
"description": "We're an early-stage team building developer infrastructure…",
"posted_via": "Wellfound"
}

Illustrative values β€” a live run returns current Wellfound data.


Usage examples

Startup roles in a city

{
"locationName": "San Francisco",
"includeKeyword": "engineer",
"pagesToFetch": 5,
"jobType": "FULLTIME"
}
{
"locationName": "Remote",
"includeKeyword": "product designer",
"pagesToFetch": 4,
"datePosted": "week"
}

Track one company's hiring

{
"includeKeyword": "engineer",
"companyName": "Example Labs",
"pagesToFetch": 3
}

Fresh roles for a daily alert

{
"locationName": "New York",
"datePosted": "today",
"pagesToFetch": 3
}

Save as a Task, attach a daily Schedule, and push new rows to Slack.

Fast listing-only pass

{
"locationName": "Berlin",
"pagesToFetch": 10,
"fetchDescriptions": false
}

Turning descriptions off avoids detail-page loads entirely β€” much faster when you only need titles, companies and salaries.

Salary benchmarking

Run several pages for a role and city, export to CSV, and analyse the salary column. Wellfound's compensation coverage is unusually good for a public job source.


Run it from your own code

Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_API_TOKEN>")
run = client.actor("scraperx/wellfound-jobs-scraper").call(run_input={
"locationName": "New York",
"includeKeyword": "python engineer",
"pagesToFetch": 3,
"fetchDescriptions": True,
})
for job in client.dataset(run["defaultDatasetId"]).iterate_items():
print(job["job_title"], "|", job["company_name"], "|", job["salary"], "|", job["URL"])

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_API_TOKEN>' });
const run = await client.actor('scraperx/wellfound-jobs-scraper').call({
locationName: 'New York',
includeKeyword: 'python engineer',
pagesToFetch: 3,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

cURL

curl -X POST "https://api.apify.com/v2/acts/scraperx~wellfound-jobs-scraper/runs?token=<YOUR_APIFY_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"locationName":"New York","includeKeyword":"python engineer","pagesToFetch":3}'

Integrations

Push jobs into Google Sheets, Airtable, Slack, Make, Zapier, Google Drive or your ATS via webhooks, and use Schedules with datePosted: "today" for a daily startup-jobs feed.


Pricing

Pay-per-event: a small Actor-start charge plus a charge per job row delivered to your dataset. You pay for listings, not run time.

Cost tip: turn fetchDescriptions off when you only need titles, companies, locations and salaries β€” it removes one page load per job and makes runs considerably faster.

Current rates are on the Pricing tab of this Actor's page, and Apify shows an estimate before and during every run. Residential proxy traffic is billed separately by the platform according to your plan.


Limits & good to know

  • Wellfound uses DataDome anti-bot protection. Residential proxies are effectively required, which is why they are the default. Direct and datacenter traffic from cloud IPs is blocked.
  • Descriptions can be blocked even when listings are not. After 4 consecutive detail-page blocks, description fetching auto-disables for the rest of the run. All other fields still populate β€” that is deliberate, and better than a stalled run.
  • pagesToFetch is per start URL (~25 jobs per page). Add more URLs or raise the page count for wider coverage.
  • startUrls overrides the search filters. Use one approach or the other per run.
  • companyName is a loose match applied to result cards, not an exact company filter.
  • countryName controls proxy geography, not the job location β€” use locationName for that.
  • Empty input crawls Wellfound's /jobs landing page and finishes successfully rather than failing.
  • Default run options are 4 GB memory and a 1-hour timeout β€” raise the timeout for many pages with descriptions on.

FAQ

What is Wellfound? The startup job marketplace formerly known as AngelList Talent β€” where startups post roles directly.

Do I need a Wellfound account? No. The Actor reads publicly available listings.

Do I get salary data? Yes, whenever Wellfound publishes it β€” and it usually does. That is one of the main reasons to scrape Wellfound specifically.

Why are some descriptions empty? Wellfound's anti-bot layer throttles rapid detail-page requests. The Actor detects this and disables detail loading rather than stalling; every other field still comes through.

Do I need a proxy? The Actor already defaults to residential sticky sessions, which is what works against DataDome. Supply your own proxy only if you have a specific reason.

What does the country field do? It geo-targets residential proxy exit nodes. Use locationName to control where the jobs are.

How do I get more results? Raise pagesToFetch, or supply several start URLs covering different locations or keywords.

Which export formats are supported? JSON, CSV, Excel (XLSX), XML and RSS. The rows are flat, so CSV works perfectly.


This Actor collects publicly available job listings β€” content companies publish specifically to be found by candidates. It does not log in, submit applications, or access private data. Job descriptions remain the property of their authors. Use the data in line with Wellfound's terms and applicable law, and treat any personal data (recruiter names, contact details) under GDPR and comparable regulations.

Support

Need extra fields, deeper pagination, or a custom startup-hiring pipeline? Open an issue on the Issues tab of this Actor.