Salary.com Scraper
Pricing
from $3.50 / 1,000 results
Salary.com Scraper
Scrape salary benchmark data from Salary.com. Extract median salary, percentile ranges (10th-90th), experience-level pay, hourly/monthly rates and state-by-state breakdowns for any job title across 60+ categories.
Pricing
from $3.50 / 1,000 results
Rating
0.0
(0)
Developer
Haketa
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Extract salary benchmark data from Salary.com — the compensation platform used by 10,000+ companies for pay decisions. Get median salaries, percentile ranges (10th–90th), experience-level pay, hourly/monthly rates and state-by-state breakdowns across 60+ job categories from CEO to registered nurse.
Why use Salary.com Scraper?
Salary.com is the standard reference for compensation benchmarking. While Levels.fyi covers only tech roles at big companies, Salary.com spans every industry — healthcare, construction, education, finance, legal, manufacturing and more. This is the only Salary.com scraper on Apify Store.
What data can you extract?
Per job title (single page)
Every benchmark page provides: job title, median annual salary, percentile distribution (10th, 25th, 50th, 75th, 90th), hourly rate, monthly and weekly pay, annual bonus, total compensation, experience-level breakdown (entry through expert), related job titles with salaries, job category, data effective date, and job description.
State breakdowns (optional)
Enable scrapeStateData to get salary data for all 50 US states per job title. Compare what a Software Engineer earns in California vs Texas vs New York — essential for geographic pay analysis and relocation decisions.
How much does Salary.com Scraper cost?
| Mode | Speed | Approximate cost |
|---|---|---|
| Per job title | ~10s per title | ~$1 per 100 titles |
| With state data | +50 requests per title | ~$10 per 100 titles |
Playwright browser required for Cloudflare bypass — runs on Apify's managed infrastructure.
Example output
{"jobTitle": "Software Engineer I","slug": "software-engineer-i","category": "IT - Computers, Software","medianSalary": 81660,"percentile10": 68455,"percentile25": 74748,"percentile75": 87772,"percentile90": 93337,"hourlyRate": 39,"annualBonus": 7668,"totalCompensation": 89328,"description": "How much does a Software Engineer I make? The average annual salary of Software Engineer I in the United States is $81,660 or $39 per hour, ranging from $68,455 to $93,337.","sourceUrl": "https://www.salary.com/research/salary/benchmark/software-engineer-i-salary"}
With scrapeStateData enabled, additional field:
{"stateData": [{ "state": "California", "stateCode": "CA", "salary": 95200 },{ "state": "New York", "stateCode": "NY", "salary": 92800 },{ "state": "Washington", "stateCode": "WA", "salary": 91500 },{ "state": "Texas", "stateCode": "TX", "salary": 78900 }]}
Input parameters
Quick start — just add job titles and run
{"jobTitles": ["software-engineer-i", "registered-nurse", "project-manager"],"maxTitles": 10}
Full input reference
| Parameter | Type | Default | Description |
|---|---|---|---|
benchmarkUrls | array | [] | Direct Salary.com benchmark URLs — overrides jobTitles |
jobTitles | array | [] | Job title slugs: software-engineer-i, chief-executive-officer |
scrapeStateData | boolean | false | Fetch salary for all 50 states per title |
states | array | [] | Limit to specific states: ca, tx, ny. Empty = all 50 |
maxTitles | integer | 50 | Max job titles to scrape. 0 = unlimited |
requestDelay | integer | 800 | Delay between requests (ms) |
maxConcurrency | integer | 1 | Parallel requests (1-3) |
Job title slug format
Salary.com uses specific slugs that may not match the exact job title. The safest approach is to copy the slug directly from a Salary.com URL. To find the correct slug:
- Go to salary.com and search for a job title
- Click on the benchmark result
- Copy the slug from the URL:
salary.com/research/salary/benchmark/{THIS-PART}-salary
Verified working slugs:
software-engineer-i · software-engineer-ii · software-engineer-iii · chief-executive-officer · marketing-manager · accountant-i · nurse-practitioner · human-resources-manager · mechanical-engineer-i · teacher-elementary-school · web-developer · graphic-designer · sales-manager · staff-accountant · operations-manager
Important: Not all job titles use obvious slugs. For example, project-manager, data-scientist, civil-engineer and financial-analyst return 404 — these roles may use different slugs like project-manager-it or data-scientist-i, or they may only exist under the /alternate/ path. The scraper automatically skips invalid slugs and logs a warning. When in doubt, use benchmarkUrls with the full URL copied from Salary.com.
Direct URL examples (recommended for accuracy)
{"benchmarkUrls": ["https://www.salary.com/research/salary/benchmark/software-engineer-i-salary","https://www.salary.com/research/salary/benchmark/chief-executive-officer-salary","https://www.salary.com/research/salary/benchmark/nurse-practitioner-salary"]}
State comparison example
{"jobTitles": ["software-engineer-i"],"scrapeStateData": true,"states": ["ca", "tx", "ny", "wa", "co"]}
How to scrape Salary.com data
- Click Try for free to open Salary.com Scraper in Apify Console
- Enter job title slugs (e.g.
software-engineer-i) - Enable
scrapeStateDatafor geographic salary comparison - Click Start and download results as JSON, CSV or Excel
Run programmatically via Apify API, schedule monthly runs for trend tracking, or integrate with Zapier, Make, Google Sheets and 100+ platforms.
Use cases for Salary.com data
Compensation benchmarking — HR teams compare their pay ranges against market data. The 25th–75th percentile range is the standard for setting salary bands.
Offer calibration — Recruiters use percentile data to craft competitive offers. A 50th percentile offer is market rate; 75th percentile wins competitive candidates.
Geographic pay analysis — Compare the same role across states to set location-based pay differentials. Essential for remote-first companies with distributed teams.
Pay equity audits — Compensation analysts benchmark internal salaries against market rates to identify underpaid roles or departments.
Cost-of-hire forecasting — Finance teams estimate headcount costs using market salary data for budget planning.
Career platform data — Job boards, career coaches and salary comparison tools use benchmark data to power their recommendation engines.
Market research — Consulting firms and analysts track salary trends across industries for client reports and publications.
SMB alternative to CompAnalyst — Small businesses that can't afford Salary.com's enterprise product ($5K+/year) use this scraper for the same public benchmark data at a fraction of the cost.
Output fields reference
| Field | Description |
|---|---|
jobTitle | Full job title |
slug | URL identifier |
category | Job category |
asOfDate | Data effective date |
medianSalary | 50th percentile annual salary |
percentile10 | 10th percentile salary |
percentile25 | 25th percentile salary |
percentile75 | 75th percentile salary |
percentile90 | 90th percentile salary |
hourlyRate | Hourly equivalent |
monthlyPay | Monthly salary |
weeklyPay | Weekly salary |
annualBonus | Annual bonus amount |
totalCompensation | Base + bonus total |
experienceLevels | Pay by experience (entry → expert) |
stateData | State-by-state salaries (50 states) |
relatedJobs | Similar titles with salaries |
description | Job description text |
sourceUrl | Salary.com page URL |
Integrations
Salary.com Scraper works with the full Apify ecosystem: API access from Python/Node.js/PHP, webhooks, Google Sheets export, Zapier/Make automation, and Slack/email notifications. Schedule monthly runs to track salary trends over time.
Important: Cloudflare protection
Salary.com uses Cloudflare bot protection. The scraper uses Playwright (real browser) to bypass this automatically. No proxy needed for most cases, but if you experience blocks, enable Apify proxy in the input settings.
Limitations
- US salary data only (Salary.com focuses on the United States)
- Job title slugs must match Salary.com's exact URL format — not all job titles use obvious slugs. Some roles use level suffixes like
-i,-ii,-iii. The scraper logs a warning and skips invalid slugs automatically - For guaranteed accuracy, use
benchmarkUrlswith full URLs copied from Salary.com - State data requires 50 additional requests per job title — increases run time significantly
- Some fields (monthlyPay, weeklyPay, experienceLevels) depend on page content and may be null when data is only in JSON-LD
- Data is updated monthly by Salary.com — check the page title for the effective date