Wellfound Scraper - Startup Jobs, Salary, Equity avatar

Wellfound Scraper - Startup Jobs, Salary, Equity

Pricing

Pay per event

Go to Apify Store
Wellfound Scraper - Startup Jobs, Salary, Equity

Wellfound Scraper - Startup Jobs, Salary, Equity

Scrape startup job listings from Wellfound, formerly AngelList Talent. Returns title, company, salary range parsed into numbers, equity band, remote flag, locations and posting date. Salary and equity are published openly on Wellfound, which most job boards do not do.

Pricing

Pay per event

Rating

0.0

(0)

Developer

SR

SR

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Wellfound Scraper

Startup jobs from Wellfound, formerly AngelList Talent, with the salary and the equity. That is the reason this one exists: most job boards let companies hide compensation, and Wellfound does not. Every listing publishes a pay range, and many publish an equity band alongside it.

So a run here gives you something you cannot get from a general job board: a straight read on what startups are actually paying, by role, right now.

What each job gives you

  • title, url, and role, Wellfound's own category for the position
  • company, company_url, company_slug, company_size and company_tagline, the one-line description of what the startup does
  • compensation exactly as published, plus salary_min and salary_max parsed into plain numbers you can sort and average
  • equity, as a band such as 0.1%-0.5%, or the string none when the listing explicitly says no equity
  • remote, plus locations and remote_locations, which are different lists: the second is the set of places the company will accept a remote worker from, and it is often much wider than the first
  • posted_at in ISO 8601 and posted_timestamp as a Unix time

Three things this gets right that are easy to get wrong

$60k is sixty thousand. Strip the suffix and you get 60, which is a number, looks like a salary, and is wrong by three orders of magnitude. Both k and m are applied, and a range is split into its two bounds.

The company is a pointer, not an object. Wellfound is a Next.js app and its embedded state is an Apollo normalised cache: a job's company is stored as a reference like {"__ref": "Startup:12345"}, with the actual company sitting elsewhere in a flat lookup table. A parser that reads the job object alone returns fifty jobs with fifty empty company columns. Those references are resolved before any row is emitted, and a reference that points at nothing still produces a row rather than an exception.

The dash in 0.1% – 0.5% is not a hyphen. It is an en dash, and a range pattern written with a plain - matches only the first half, quietly turning a band into a flat figure. Both characters are accepted.

Each of those three would produce output that looks completely fine. That is what makes them worth stating.

Input

Give it a list of targets:

  • jobs for the main board
  • a role slug such as software-engineer, product-manager or data-scientist for a role page
  • any Wellfound URL, pasted as-is

Plus, optionally, how many pages to walk per target, an upper bound on rows, how many pages to fetch at once, retries, and a country to request from.

Run summary

Jobs returned, how many carried a salary, how many carried equity, how many are remote, the number of unique companies, and the median advertised minimum salary across the run. That median is the fastest read on whether a role category pays what you thought it did.

Company names are counted separately in withCompanyName, which exists as a health check: if that number ever drops well below the job count, the reference resolution described above has stopped working and the run should not be trusted. A silent column of blanks is exactly the failure this actor is built to avoid, so it is measured rather than assumed.

Scale

Each page costs one fetch and holds roughly fifty listings. A single target at one page returned 50 jobs in about two seconds in testing, 48 of them with a salary and 44 distinct companies.

Rows are deduplicated on the job id across every target and page in a run, so overlapping searches do not inflate the count.

What people use this for

Compensation benchmarking. This is the main one. Run a role page on a schedule and you build a real series of advertised startup pay for that role. Because salary_min and salary_max are numbers, medians and percentiles are a one-line calculation rather than a parsing project.

Equity norms by stage. equity combined with company_size shows how bands move as companies grow. Very few sources publish this at all, and almost none publish it next to the salary it comes with.

Sourcing and lead lists. company, company_url, company_size and company_tagline together make a usable list of startups that are actively hiring, which is a strong buying signal if you sell to startups.

Remote-policy mapping. remote_locations is the interesting column: it is the set of countries a company will actually employ from, which is a much sharper filter than a yes-or-no remote flag and is rarely published anywhere else in structured form.

Notes

Salaries are annual figures in US dollars unless the listing itself says otherwise, and they are what the company advertised rather than what anyone was paid. Equity bands are similarly an offer range, not a grant.

Listings that have been filled or withdrawn simply stop appearing. Because job_id is stable, running the same target on a schedule and keeping the rows lets you see how long postings stay open, which is a decent proxy for how hard a role is to fill.

Nothing here needs a login, a cookie or an API key.