Wellfound Startup Jobs Scraper avatar

Wellfound Startup Jobs Scraper

Pricing

from $2.49 / 1,000 results

Go to Apify Store
Wellfound Startup Jobs Scraper

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

Kelopr_bk

Maintained by Community

Actor 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:

FieldWhy you care
company_name · company_slug · company_sizeWho they are and how big
job_count · remote_job_count · onsite_job_countHow hard they're hiring, and where
role_titlesThe distinct roles they're filling right now
salary_min · salary_max · salary_rangeWhat they're paying across roles
latest_posted_at · company_url · source_urlFreshness 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?":

FieldWhat it tells you
title · primary_role_title · job_typeThe role and whether it's full-time
remote · remote_config_kind · accepted_remote_location_namesTruly remote, and where they'll hire from
salary_min · salary_max · salary_currencyParsed pay range from the raw string
equity_min_percent · equity_max_percentThe equity slice, pulled out of the text
years_experience_min · years_experience_maxWhether you clear the bar
company_size · company_high_conceptWhat you'd be joining
direct_job_url · company_urlApply, 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: 0 collects every available page up to a safety cap; raise maxItems to match the volume you want.

The signals worth modeling:

  • Compensationsalary_min / salary_max / salary_currency and equity_min_percent / equity_max_percent, parsed consistently across listings.
  • Work modelremote, remote_config_kind, location_names, accepted_remote_location_names, display_locations for a clean remote/onsite split.
  • Demandprimary_role_title and per-company role_titles to see which roles are hot.
  • Company shapecompany_size, company_high_concept, company_badges, plus snapshot rollups like job_count.
  • Provenance — every row carries source_url, source_page, posted_at, detected_at/scraped_at so 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

InputValuesNotes
scrapeModescrape · monitorOne-time pull, or compare against previous runs
inputModeREMOTE · LOCATION · URLSSource type
outputModejobs · companies · bothWhat to save
urlsWellfound location / remote / role / company / direct job pagesUsed with URLS
locationsCity / country / region namesUsed with LOCATION
pageLimit1 = fast test · 0 = all pages up to capPer source
maxItemsCap across selected outputsPrefill 80 for quick runs
onlyRemoteJobstrue / falseKeep only remote listings
includeChangedJobs · includeRemovedJobsmonitor onlySave changed / removed jobs
resetMonitorState · monitorStateStoreNamemonitor onlyClear history / name the state store
maxRetriesretry budget for temporary errorsDefault is fine
proxyConfigurationoptional proxyDefault: 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