ActorStack.dev

Wellfound job data fields and their measured fill rates

All 58 fields grouped by what they describe, with the rate each was filled on across 2,229 jobs — and the three that are published as ranges rather than averages.

By Oswaldo Carabano8 min read

Short answer

The Wellfound Jobs Actor returns 58 fields per job. Measured over 2,229 unique jobs across 25 roles and all 13 categories: the full description is on 100% of rows, location names on 90.5% with a category minimum of 83.7%, the raw compensation string on 79.5% with a minimum of 60.3%, parsed salary on 86.7% of enriched rows, coordinates on 93.3% of enriched rows, minimum years of experience on 31.6%, and `ats_source` between 21% and 83% depending on category. The company is attached inline to every job, so a companies run is optional rather than required.

Key points

  • The description is at 100% and ships in the job price, in markdown and HTML.
  • Two fields are published as ranges rather than averages because the category spread is larger than the mean is informative: `ats_source` at 21–83% and `years_experience_min` at 12.8–75%.
  • Salary and coordinate rates are of enriched rows, so they depend on `enrichFromJobPage`, which is on by default.
  • The company block is attached inline to each job, so `emitCompanies` is only for getting a deduplicated companies table as well.
  • There are no funding, investor, perk or team fields, because company profile pages are not read at all.
On this page7 sections

58 fields per job, grouped below by what they describe. Every rate was measured over 2,229 unique jobs across 25 roles and all 13 categories.

Job fields

FieldFill rateNotes
description100%Markdown and HTML. In the job price, never billed separately.
title100%As posted.
job_typenot measuredFull-time, contract, internship.
is_remote / remote_typenot measuredRemote flag and its kind.
posted_atnot measuredDate the posting appeared.
direct_applynot measuredWhether the application stays on Wellfound.

Compensation fields

FieldFill rateNotes
compensation_raw79.5%Category minimum 60.3%. The string as displayed.
salary_min / salary_max86.7%Of enriched rows.
salary_currency / salary_period86.7%Group by period before aggregating.
equity_offerednot measuredBoolean, separate from the range.
equity_min_pct / equity_max_pctnot measuredParsed percentage range.

How one display string becomes six columns, and why the original still ships.

Location fields

FieldFill rateNotes
location_names90.5%Category minimum 83.7%.
latitude / longitude93.3%Of enriched rows.
location_locality / _region / _countrynot measuredSplit out of the display name.
applicant_location_requirementsnot measuredCountries the company accepts applicants from.

Experience and ATS — the two ranges

These two are published as ranges rather than averages, because the spread between role categories is wider than a mean can usefully describe.

FieldOverallBy category
ats_sourcepublished as a range21% (Marketing) to 83% (HR and recruiting)
years_experience_min31.6%12.8% to 75%

The maximum years-of-experience field is not shipped at all: it measured 0.1%, 2 rows in 2,229 — why it was cut.

Company fields, attached inline

Every job carries its company: company_name, company_size_min and company_size_max, company_pitch, company_badges, company_website, company_industries and a geocoded headquarters. No second run is needed to join them.

emitCompanies additionally writes a deduplicated companies dataset, charged once per company rather than once per posting — a company with 56 jobs appears once.

Provenance fields

scraped_at, from_cache, data_age_hours and source_surface. The age figure includes Cloudflare's own cache in front of the site, measured at up to 23.4 hours — what that means for freshness.

What is deliberately absent

No funding rounds, investors, perks or team members, and no named founders or employees, because company profile pages are not read at all — the reasoning. Nothing is extracted or derived from the job description text either.

Frequently asked questions

How many fields are there?
58 per job, with the company attached inline. Field count is a weak quality signal on its own, which is why this Actor also removed a field measured at 0.1% rather than counting it.
Which rates depend on enrichment?
Structured salary at 86.7% and coordinates at 93.3% are both of enriched rows, so they need `enrichFromJobPage`, which is on by default and costs one extra request per job. The description and the raw compensation string arrive without it.
Do I get company funding or investors?
No. Company profile pages are behind a Cloudflare challenge and expose named founders and employees, so they are not read. What ships is the company as it appears attached to its postings: pitch, size band, badges, industries, website and geocoded headquarters.
Which fields should I not plan around an average for?
`ats_source` and `years_experience_min`. Both vary enough by role category — 21% to 83% and 12.8% to 75% — that the average describes no category in the data.

Sources

Every URL below was requested and returned a page on the date shown.

  1. Operator claimchecked 9 Sept 2026
    Wellfound Jobs Scraper — Actor README and input schemaActorStack / Apify Store
A white measuring tape curving across a dark background, showing the numbers 15 to 45.
WellfoundMeasured

The ATS spread

`ats_source` names the applicant tracking system behind a posting. Its fill rate varies by 62 percentage points across role categories, which is why the average is not published.

6 min
Paper receipts and printed documents arranged on a desk beside office stationery.
WellfoundReference

Salary and equity parsing

Compensation on Wellfound is a display string. What it takes to split it into minimum, maximum, currency, period and an equity range — and why the original string still ships.

6 min
Developers working side by side at desktop computers in an open-plan tech office.
WellfoundGuide

Scrape Wellfound jobs

A walkthrough of extracting startup job listings: how Wellfound's URL-path filtering constrains what you can ask for, which caps actually bound a run, and what arrives in each row.

9 min