Wellfound Startup Jobs Scraper
Pricing
from $2.49 / 1,000 results
Wellfound Startup Jobs Scraper
Find fresh Wellfound startup jobs at scale. Export clean job listings, salary/equity signals, remote/location filters, and company hiring snapshots. Built for recruiters, founders, sales teams, and market researchers.
Pricing
from $2.49 / 1,000 results
Rating
0.0
(0)
Developer
Kelopr_bk
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
15 days ago
Last modified
Categories
Share
Wellfound Jobs Scraper — built for the person reading this
Wellfound (ex-AngelList Talent) is where startups actually post their roles, but the data lives inside a JS app with salary and equity buried in free text and no clean export. This Actor reads that page data request-only — no login, no browser — and hands back flat rows with parsed compensation, per-company hiring snapshots, and optional run-to-run change monitoring.
Who's reading this page usually falls into one of three camps. Find yourself below: each panel has the exact input to paste and the fields that matter for your job.
startup jobs·remote & location feeds·company hiring snapshots·salary & equity parsing·change monitoring— no login, no browser.
Every run is shaped by three choices — where to read from, how to run, and what to save:
📥 inputMode ⚙️ scrapeMode 📤 outputMode┌───────────┐ ┌───────────┐ ┌───────────────────────────┐│ REMOTE │ │ scrape │ │ jobs → 1 row / listing││ LOCATION │ ──────▶ │ or │ ─────▶ │ companies → 1 row / company││ URLS │ │ monitor │ │ both → both datasets │└───────────┘ └───────────┘ └───────────────────────────┘│🔁 monitor ▶ every job tagged new · changed · removed
👔 You're hiring — a founder, recruiter, or sourcer
You care less about individual postings and more about who is hiring, for what, and what's new since last week. Run in both mode to get company snapshots alongside jobs, then switch to monitor on a schedule to watch competitors and target companies.
See who's hiring, rolled up per company:
{"scrapeMode": "scrape","inputMode": "LOCATION","locations": ["New York", "San Francisco", "London"],"outputMode": "both","pageLimit": 1,"maxItems": 80}
Then watch for new roles on a schedule:
{"scrapeMode": "monitor","inputMode": "REMOTE","includeChangedJobs": true,"includeRemovedJobs": true}
The fields you'll live in — company snapshots (outputMode: companies or both) roll every job into one row per company:
| Field | Why you care |
|---|---|
company_name · company_slug · company_size | Who they are and how big |
job_count · remote_job_count · onsite_job_count | How hard they're hiring, and where |
role_titles | The distinct roles they're filling right now |
salary_min · salary_max · salary_range | What they're paying across roles |
latest_posted_at · company_url · source_url | Freshness and a link straight to them |
And in monitor mode, every job carries an event_type of new, changed, or removed, with changed_fields naming exactly what moved — so a scheduled run tells you "Acme added 3 backend roles and bumped one salary" without you re-reading a single page.
🎯 You're job hunting — a candidate or career switcher
You want remote-friendly roles with real pay and equity, not another wall of listings. Pull the Remote feed (or specific city/role pages), keep only remote jobs, and let the Actor parse the compensation string for you.
Fastest possible run — remote startup jobs:
{"scrapeMode": "scrape","inputMode": "REMOTE","outputMode": "jobs","onlyRemoteJobs": true,"pageLimit": 1,"maxItems": 80}
Target specific pages you already found on Wellfound:
{"inputMode": "URLS","urls": [{ "url": "https://wellfound.com/remote" },{ "url": "https://wellfound.com/location/new-york" }],"onlyRemoteJobs": true}
The fields that answer "should I apply?":
| Field | What it tells you |
|---|---|
title · primary_role_title · job_type | The role and whether it's full-time |
remote · remote_config_kind · accepted_remote_location_names | Truly remote, and where they'll hire from |
salary_min · salary_max · salary_currency | Parsed pay range from the raw string |
equity_min_percent · equity_max_percent | The equity slice, pulled out of the text |
years_experience_min · years_experience_max | Whether you clear the bar |
company_size · company_high_concept | What you'd be joining |
direct_job_url · company_url | Apply, or go read about them |
compensation is kept verbatim too (e.g. "$140k – $180k • 0.1% – 0.5%"), so nothing is lost in parsing — some listings only publish part of it, and empty means "not stated," never guessed.
📊 You're analyzing the market — a researcher or data team
You want structured startup-hiring data at volume: salary distributions, remote-vs-onsite mix, role demand, company sizes. Scrape broad location or remote feeds with a higher pageLimit, take both outputs, and pipe the flat rows into your notebook or warehouse.
Wide pull for a dataset:
{"inputMode": "LOCATION","locations": ["New York", "San Francisco", "London"],"outputMode": "both","pageLimit": 0,"maxItems": 5000}
pageLimit: 0collects every available page up to a safety cap; raisemaxItemsto match the volume you want.
The signals worth modeling:
- Compensation —
salary_min/salary_max/salary_currencyandequity_min_percent/equity_max_percent, parsed consistently across listings. - Work model —
remote,remote_config_kind,location_names,accepted_remote_location_names,display_locationsfor a clean remote/onsite split. - Demand —
primary_role_titleand per-companyrole_titlesto see which roles are hot. - Company shape —
company_size,company_high_concept,company_badges, plus snapshot rollups likejob_count. - Provenance — every row carries
source_url,source_page,posted_at,detected_at/scraped_atso you can reproduce and time-slice.
🧾 One job, one flat row
Whatever persona you are, a job comes back like this (trimmed):
{"record_type": "job","event_type": "current","job_id": "1234567","title": "Senior Backend Engineer","primary_role_title": "Backend Engineer","job_type": "full_time","remote": true,"remote_config_kind": "anywhere","display_locations": "New York","accepted_remote_location_names": "United States","compensation": "$140k – $180k • 0.1% – 0.5%","salary_currency": "$","salary_min": 140000,"salary_max": 180000,"equity_min_percent": 0.1,"equity_max_percent": 0.5,"years_experience_min": 5,"company_name": "Acme Labs","company_slug": "acme-labs","company_size": "51-200","company_high_concept": "AI infrastructure for teams","direct_job_url": "https://wellfound.com/jobs/1234567-senior-backend-engineer","company_url": "https://wellfound.com/company/acme-labs","posted_at": "2026-08-05T12:00:00Z","detected_at": "2026-08-07T18:30:02Z"}
The default dataset ships three ready views: Jobs (one row per listing), Company snapshots (per-company rollups), and Monitor changes (event_type, changed_fields, and previous_* values). When you run both, company snapshots also save to their own companies dataset.
🎛️ Every input, in one place
| Input | Values | Notes |
|---|---|---|
scrapeMode | scrape · monitor | One-time pull, or compare against previous runs |
inputMode | REMOTE · LOCATION · URLS | Source type |
outputMode | jobs · companies · both | What to save |
urls | Wellfound location / remote / role / company / direct job pages | Used with URLS |
locations | City / country / region names | Used with LOCATION |
pageLimit | 1 = fast test · 0 = all pages up to cap | Per source |
maxItems | Cap across selected outputs | Prefill 80 for quick runs |
onlyRemoteJobs | true / false | Keep only remote listings |
includeChangedJobs · includeRemovedJobs | monitor only | Save changed / removed jobs |
resetMonitorState · monitorStateStoreName | monitor only | Clear history / name the state store |
maxRetries | retry budget for temporary errors | Default is fine |
proxyConfiguration | optional proxy | Default: no proxy |
How monitoring remembers: state is stored per source URL in a named key-value store (wellfound-jobs-monitor-state by default), so the first run per source sets the baseline and new / changed / removed events appear from the second run on. Use resetMonitorState to start clean.
💬 A few honest answers
- Login or cookies? None. It reads public page data request-only.
- What am I charged for? Results saved. Runs stop cleanly at your
maxItems; unsupported URLs are skipped without saving a row. - Why is a salary or equity field empty? The listing didn't publish it. Missing text means empty, never an invented number.
- Why no change events on my first monitor run? Monitoring needs a baseline; changes surface from the second run onward.
⭐ Enjoying the runs? A quick review on the Apify Store genuinely helps this Actor get discovered — and tells me which fields or sources to add next.
🏷️ Tags: wellfound · angellist · startup jobs · jobs scraper · remote jobs · recruiting · lead generation · salary data · job monitoring