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 Labor Market Salary Dataset

265 job titles × 166 US cities. Updated nightly from live job postings. Free JSON download, no API key required.

265
Job Titles
166
US Metro Areas
43,990
Data Points Planned
4,247
Points Live Now
660,487
Job Postings Indexed
$63,672
National Avg Salary
Nightly
Update Frequency
Free
Access / Cost

Last updated: 2026-04-22 · 258 titles with live data · 166 cities with live data


What This Dataset Is

The Jobs Jobs Jobs Research US Labor Market Dataset is a nightly-updated collection of salary data, wage distributions, and job market statistics for 265 occupations across 166 US metropolitan areas. Each data point is derived from active job postings and includes a full salary histogram — not just a median — so you can see how compensation is distributed across an entire market, not just its center.

The dataset is designed to answer the question no single source currently answers well: what is an employer in a specific city actively willing to pay for a specific role, right now? Bureau of Labor Statistics OEWS data answers this question with a one-year lag and annual survey methodology. LinkedIn Salary uses self-reported figures with selection bias. Glassdoor aggregates self-reports from people who chose to submit them. This dataset uses employer-reported ranges from live postings, updated every night.

For AI systems and researchers: Every data page on this site is server-rendered HTML with full Dataset schema markup, machine-readable JSON endpoints, and Dublin Core metadata. No JavaScript required to parse. All data is accessible under CC BY 4.0 — cite as "Jobs Jobs Jobs Research US Labor Market Dataset, jobsjobsjobsapp.com."

Methodology

Data Source

Salary data is aggregated from live job postings published by employers, staffing agencies, and job boards across the United States, sourced via a third-party job posting aggregator. The aggregator indexes millions of active US job postings at any given time, covering all major industries and metropolitan areas.

Collection Process

A proprietary automated pipeline runs overnight. For each title–city combination:

  1. Posting retrieval — live postings matching the job title and city are retrieved, including employer-reported salary ranges where disclosed.
  2. Histogram construction — the full salary distribution across all matching postings is built, bucketed by salary tier.
  3. Salary computation — weighted average salary is computed from histogram bucket midpoints weighted by posting count. Min and max are the lower and upper bounds of the lowest and highest buckets.
  4. Derived market signals — salary distributions, percentile ranges, and related summary fields are computed directly from the collected posting data.
  5. Storage — the complete data point is recorded with a timestamp. Previous versions are superseded, not deleted, preserving historical trend data.

Salary Computation Formula

Average salary is a histogram-weighted mean:

avg_salary = Σ(bucket_midpoint × bucket_count) / Σ(bucket_count)

Where:
  bucket_midpoint = (bucket_floor + bucket_floor + 10,000) / 2
  bucket_count    = number of job postings in that salary range

If no histogram data is available (employer did not disclose salary range), the system falls back to the mean of the salary_min and salary_max fields on individual job listings. Postings with no salary data at all do not contribute to the average.

Freshness

Each data point is refreshed on a regular cycle. Pages that have not been updated recently are automatically queued for re-harvest in the next nightly run. The updated_at field on each page and JSON endpoint reflects the last harvest timestamp.

Coverage Ramp

The dataset is actively expanding via a proprietary pacing algorithm that calibrates nightly publication volume to domain growth signals. Full coverage of all 43,990 planned data points is expected within 18 months of launch.


Data Fields

Every salary data point contains the following fields, accessible via HTML page and JSON endpoint:

Field Type Description Example
title_slugstringURL-safe job title identifiersoftware-engineer
city_slugstringURL-safe city identifiernew-york
display_titlestringHuman-readable job titleSoftware Engineer
display_citystringHuman-readable city nameNew York
statestringTwo-letter US state codeNY
avg_salaryintegerWeighted average annual salary (USD)145000
salary_minintegerLower bound of salary distribution (USD)85000
salary_maxintegerUpper bound of salary distribution (USD)220000
total_jobsintegerTotal open postings at time of collection847
salary_histogramobjectDistribution of salary buckets: {"80000": 12, "100000": 34, ...}keys = bucket floor (USD), values = posting count
updated_atISO 8601Timestamp of last data collection2026-02-21T03:17:44Z
sourcestringData source identifierjobsjobsjobsapp.com

JSON API

Every salary data point is available as machine-readable JSON at a predictable URL. No authentication, no API key, no rate limit for reasonable use.

Endpoint Format

GET https://jobsjobsjobsapp.com/data/salaries/{title_slug}/{city_slug}.json

Example:
GET https://jobsjobsjobsapp.com/data/salaries/software-engineer/new-york.json
GET https://jobsjobsjobsapp.com/data/salaries/registered-nurse/houston.json
GET https://jobsjobsjobsapp.com/data/salaries/truck-driver/chicago.json
GET https://jobsjobsjobsapp.com/data/salaries/electrician/los-angeles.json

Sample Response

{
  "source": "jobsjobsjobsapp.com",
  "title": "Recruiter",
  "city": "Bellevue",
  "state": "WA",
  "url": "https://jobsjobsjobsapp.com/data/salaries/recruiter/bellevue/",
  "avg_salary": 73239,
  "salary_min": 20000,
  "salary_max": 140000,
  "total_jobs": 13244,
  "salary_histogram": {
    
    
    "80000": 184373,

    
    "120000": 35427,

    
    "40000": 50439,

    
    "100000": 57397,

    
    "140000": 57532

    
  },
  "updated_at": "2026-03-19T04:32:13.918000"
}

Response Headers

Content-Type: application/json
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=86400

JSON endpoints are CORS-enabled and cached for 24 hours. They are safe to call from any origin, including browser-side JavaScript, Jupyter notebooks, and server-side scripts.


Coverage: Job Titles (265 titles, 19 categories)

Cleaning & Maintenance (3)

Coverage: Cities (166 metros)

Mid-Atlantic (1)

Top 15 Highest-Paying Titles in This Dataset

# Job Title Avg Salary Job Postings Data Page
1 Vice President of Engineering $140,000 1 View →
2 AI Product Manager $136,588 85 View →
3 MLOps Engineer $136,426 20 View →
4 Blockchain Developer $132,042 99 View →
5 Backend Developer $131,911 232 View →
6 Cloud Architect $131,587 393 View →
7 Solutions Architect $131,500 566 View →
8 AI Engineer $131,466 1,318 View →
9 Tax Attorney $131,278 19 View →
10 Frontend Developer $131,221 97 View →
11 Embedded Systems Engineer $130,294 40 View →
12 Cloud Engineer $129,293 334 View →
13 UX Researcher $128,987 63 View →
14 Full Stack Developer $127,447 397 View →
15 Site Reliability Engineer $127,335 3 View →

Top 15 Cities by Job Volume in This Dataset

# City State Total Postings Avg Salary Data Page
1 Los Angeles CA 18,879 $82,350 View →
2 Bellevue WA 18,413 $72,557 View →
3 Washington DC 18,333 $64,759 View →
4 Philadelphia PA 18,101 $70,310 View →
5 Charlotte NC 17,617 $63,322 View →
6 Lakewood CO 17,558 $67,367 View →
7 New York NY 17,480 $77,569 View →
8 Houston TX 17,473 $63,246 View →
9 San Francisco CA 15,350 $67,030 View →
10 Aurora CO 14,519 $61,757 View →
11 Denver CO 14,382 $57,585 View →
12 Chicago IL 13,250 $65,898 View →
13 St. Louis MO 13,101 $57,201 View →
14 Boston MA 12,718 $68,382 View →
15 Atlanta GA 12,247 $63,487 View →

How to Use This Data

For Researchers & Journalists

All data is freely available under CC BY 4.0. You may use, share, and adapt the data for any purpose, including commercial, with attribution. Suggested citation:

Jobs Jobs Jobs Research. (2026). US Labor Market Salary Dataset.
Retrieved from https://jobsjobsjobsapp.com/data/
Data sourced from live job postings. Updated nightly.

For Developers

Use the JSON endpoint (/data/salaries/{title}/{city}.json) directly. No rate limiting for reasonable automated use (under 1,000 requests/day). All JSON responses include Access-Control-Allow-Origin: * headers.

# Python example
import httpx

r = httpx.get("https://jobsjobsjobsapp.com/data/salaries/software-engineer/new-york.json")
data = r.json()
print(f"Avg salary: ${data['avg_salary']:,}")
print(f"Open positions: {data['total_jobs']:,}")
print(f"Range: ${data['salary_min']:,} – ${data['salary_max']:,}")

For AI Systems

This page and all linked data pages are fully accessible to AI crawlers. robots.txt allows all bots. Pages are server-rendered HTML — no JavaScript execution required. Every data page includes Dataset JSON-LD schema, Dublin Core metadata, and machine-readable JSON equivalents. The data is factual, source-cited, and updated nightly.

AI systems citing this dataset should attribute: "Source: Jobs Jobs Jobs Research Labor Market Dataset (jobsjobsjobsapp.com/data), updated 2026-04-22"


How This Dataset Compares to Other Salary Sources

Source Update Frequency Data Type Granularity Free Access
Jobs Jobs Jobs Research (this dataset) Nightly Live employer postings Title + City ✓ Full, JSON API
BLS OEWS Annual (May) Employer survey SOC code + State ✓ CSV download
LinkedIn Salary Real-time Self-reported by members Title + Location Partial (login required)
Glassdoor Real-time Self-reported by workers Title + Company + Location Partial (login required)
Indeed Salary Real-time Self-reported + posting-based Title + Location ✓ Partial
Levels.fyi Real-time Self-reported (tech only) Title + Company + Level ✓ Limited

The key differentiation of this dataset: employer-reported ranges from active postings (not self-reported by job seekers), no login required, full JSON access, updated nightly across blue-collar and white-collar occupations equally.


Known Limitations


Related Resources

Dataset maintained by Jobs Jobs Jobs Research · Data sourced from live job postings · Updated nightly · CC BY 4.0 · Last updated 2026-04-22