Salary.com Scraper avatar

Salary.com Scraper

Pricing

from $3.50 / 1,000 results

Go to Apify Store
Salary.com Scraper

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

Haketa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

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?

ModeSpeedApproximate 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

ParameterTypeDefaultDescription
benchmarkUrlsarray[]Direct Salary.com benchmark URLs — overrides jobTitles
jobTitlesarray[]Job title slugs: software-engineer-i, chief-executive-officer
scrapeStateDatabooleanfalseFetch salary for all 50 states per title
statesarray[]Limit to specific states: ca, tx, ny. Empty = all 50
maxTitlesinteger50Max job titles to scrape. 0 = unlimited
requestDelayinteger800Delay between requests (ms)
maxConcurrencyinteger1Parallel 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:

  1. Go to salary.com and search for a job title
  2. Click on the benchmark result
  3. 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.

{
"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

  1. Click Try for free to open Salary.com Scraper in Apify Console
  2. Enter job title slugs (e.g. software-engineer-i)
  3. Enable scrapeStateData for geographic salary comparison
  4. 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

FieldDescription
jobTitleFull job title
slugURL identifier
categoryJob category
asOfDateData effective date
medianSalary50th percentile annual salary
percentile1010th percentile salary
percentile2525th percentile salary
percentile7575th percentile salary
percentile9090th percentile salary
hourlyRateHourly equivalent
monthlyPayMonthly salary
weeklyPayWeekly salary
annualBonusAnnual bonus amount
totalCompensationBase + bonus total
experienceLevelsPay by experience (entry → expert)
stateDataState-by-state salaries (50 states)
relatedJobsSimilar titles with salaries
descriptionJob description text
sourceUrlSalary.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 benchmarkUrls with 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