Jobs Jobs Jobs Research uses AI to match the right people to the right jobs — any industry, any size. Sign up for free to save jobs, manage your search, and use the app.

US Salary Dataset

Daily-updated salary data from live job listings. Covers 265 job titles across 166 US cities — 5,205 role/city data points. Machine-readable JSON available for every data point. Free, open, no API key required.

265
Job Titles
166
US Cities
5,205
Data Points
Daily
Update Freq

Dataset Contract

Public salary dataset designed for both human browsing and machine consumption. Every role/city page exposes a deterministic JSON endpoint with open CORS headers.

Primary Source
Adzuna active job postings
Refresh Cadence
Daily harvest and refresh
Coverage
265 titles, 166 cities, 23,221 explore pages
Last Refresh
Apr 22, 2026
Schema Version
2026-04-21
Methodology

For Data Teams

The public JSON feed is deterministic-only. Commentary may appear in human-facing HTML pages, but machine-readable salary feeds stay source-derived and schema-stable.

JSON Pattern
/data/salaries/{title}/{city}.json
Career Feed Pattern
/data/explore/{coord}.json
Feed Type
Open JSON, no API key, permissive CORS

Browse by Job Title

Salary distributions across all covered cities for each role.

View all 265 job titles →


Browse by City

All covered roles and their compensation within each metro area.

View all cities →


How to use this data

Every role-city page has a JSON endpoint at /data/salaries/{title}/{city}.json — no authentication, open CORS headers. Includes average salary, min/max range, total active listings, and a salary histogram.

Example request

curl https://jobsjobsjobsapp.com/data/salaries/recruiter/bellevue.json

Live response — Recruiter in Bellevue, WA

{
  "as_of": "2026-03-19T04:32:13.918000",
  "avg_salary": 73239,
  "city": "Bellevue",
  "coverage_note": "Aggregated posting signal from the ingestion pipeline, not a complete census of every open job.",
  "data_type": "aggregated_job_posting_salary_data",
  "deduplication_note": "Counts reflect the upstream posting feed and Jobs Jobs Jobs validation; duplicate postings may still exist in aggregated totals.",
  "methodology_url": "https://jobsjobsjobsapp.com/data/methodology/",
  "primary_source": "Adzuna",
  "refresh_cadence": "nightly target; stale markets are refreshed on a rotating schedule",
  "salary_histogram": {
    "100000": 57397,
    "120000": 35427,
    "140000": 57532,
    "20000": 23785,
    "40000": 50439,
    "60000": 335293,
    "80000": 184373
  },
  "salary_max": 140000,
  "salary_min": 20000,
  "schema_version": "2026-04-21",
  "source": "jobsjobsjobsapp.com",
  "state": "WA",
  "title": "Recruiter",
  "total_jobs": 13244,
  "updated_at": "2026-03-19T04:32:13.918000",
  "url": "https://jobsjobsjobsapp.com/data/salaries/recruiter/bellevue/"
}

Schema

FieldTypeDescription
schema_versionstringVersion tag for the public JSON contract
primary_sourcestringUpstream data source used for the salary dataset
refresh_cadencestringHow often the dataset is refreshed
as_ofstringISO 8601 timestamp for the current record snapshot
avg_salarynumberMean annual salary (USD) across all listings
salary_minnumberLowest salary found in listings
salary_maxnumberHighest salary found in listings
total_jobsnumberActive job listing count at time of update
salary_histogramobjectDistribution buckets — key is salary floor, value is listing count
updated_atstringISO 8601 timestamp of last data refresh

Data source

Aggregated from the Adzuna API using live job postings. Updated daily. Not affiliated with Adzuna. Cross-reference with BLS OES for government benchmarks.

Data sourced from Adzuna job listings. Updated daily. Salaries are gross annual estimates based on active postings. Not financial or legal advice. Sitemap