Glassdoor Salary Scraper — Pay Data & Percentiles avatar

Glassdoor Salary Scraper — Pay Data & Percentiles

Pricing

from $6.00 / 1,000 dataset items

Go to Apify Store
Glassdoor Salary Scraper — Pay Data & Percentiles

Glassdoor Salary Scraper — Pay Data & Percentiles

Scrape Glassdoor salary estimates — base + total pay percentiles (P10–P90) per employer, by job title or keyword, filtered by location, company and experience. Reliable mobile-API backend, no anti-bot. Pay only for the results you get.

Pricing

from $6.00 / 1,000 dataset items

Rating

0.0

(0)

Developer

axly

axly

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Glassdoor Salary Scraper

Extract Glassdoor salary estimates at scale as clean, flat JSON — base and total-pay percentiles (P10–P90), additional pay, currency and company ratings — for any job title or keyword, filtered by location, employer and years of experience.

Built on Glassdoor's mobile API, which is anonymous and has no anti-bot wall, so runs are reliable and don't break when Glassdoor rotates its web protection.

Who it's for

  • Compensation & HR analysts — build pay bands by title, company, location and experience; calibrate offers and salary ranges against the market.
  • Recruiters & talent-market intelligence — benchmark competitor pay to win candidates.
  • PropTech / HR-SaaS developers — a stable, documented salary schema to power compensation features, webhooks and dashboards.
  • Researchers & economists — labor-market pay distributions across employers and geographies.

What you get — output fields

FieldTypeDescription
query / query_typestringThe title/keyword searched and how it was matched
location_namestringLocation scope (null = US nationwide)
company_id / company_nameint / stringGlassdoor employer id + name
company_ratingnumberEmployer overall rating (1–5)
company_global_job_countintOpen jobs for this employer
job_title / job_title_id / goc_idstring / intNormalized title + Glassdoor ids
pay_period / currencystringe.g. ANNUAL / USD
base_pay_meannumberMean base pay (keyword mode)
base_pay_median / _p10 / _p25 / _p75 / _p90numberBase-pay percentiles (title mode)
total_pay_median / _p10 / _p25 / _p75 / _p90numberTotal pay (base + bonus/stock) percentiles
additional_pay_meannumberMean additional pay (bonus, stock, tips)
confidencestringGlassdoor confidence level, when provided
scraped_atstringUTC ISO-8601 timestamp

High-value use cases

  1. Salary benchmarking — pull "Software Engineer" across the top 200 employers in a metro to build a percentile pay band in minutes.
  2. Offer calibration — compare a candidate's target title + experience band against real market P25/P50/P75.
  3. Competitive pay intelligence — track how a rival's pay for a role compares to yours over time.
  4. Product data — feed a compensation dashboard or "salary insights" feature with a stable JSON schema.
  5. Labor-market research — distributions of pay by occupation cluster (goc_id) and geography.

Input parameters

FieldTypeDefaultDescription
queriesarray["Software Engineer"]Job titles or keywords; each paginated separately
searchByenumtitletitle (exact match) or keyword (broad)
locationstringPlace name, e.g. "San Francisco"; empty = US nationwide
locationTypeenumcitycity / state / country
companystringRestrict to one employer by name
yearsOfExperienceenumLESS_THAN_ONE, ONE_TO_THREE, FOUR_TO_SIX, SEVEN_TO_NINE, TEN_TO_FOURTEEN
maxResultsPerQueryinteger200Cap salary rows per query

Example input

{
"queries": ["Software Engineer", "Product Manager"],
"searchBy": "title",
"location": "San Francisco",
"locationType": "city",
"maxResultsPerQuery": 200
}

Example output row

{
"query": "Software Engineer",
"query_type": "title",
"location_name": "San Francisco",
"company_id": 575263,
"company_name": "Uber",
"company_rating": 3.7,
"job_title": "Software Engineer",
"pay_period": "ANNUAL",
"currency": "USD",
"base_pay_mean": 177373.92,
"total_pay_median": 286865.03,
"total_pay_p10": 205654.54,
"total_pay_p90": 421695.31,
"additional_pay_mean": 109491.11,
"scraped_at": "2026-09-09T02:33:34Z"
}

Scheduling & integrations

  • Schedule runs (daily/weekly) from the Apify Console to keep pay bands fresh.
  • Webhooks fire on run completion — push new rows to your app, Make or Zapier.
  • Export to JSON, CSV, Excel or Google Sheets, or pull from the dataset API.

Use with AI assistants (MCP)

Apify Actors are callable from AI assistants via the Model Context Protocol, so an agent can fetch live salary benchmarks on demand (e.g. "get median total pay for a Senior Data Scientist at the top 20 employers in New York"). Point your MCP client at this Actor and pass the same input schema.

FAQ

How many salary rows can I get? Each title returns up to ~100k rows (one per employer/title estimate); set maxResultsPerQuery to cap it. numPages in the API bounds the real total.

How fresh is the data? Live — every run queries Glassdoor's current salary estimates at request time.

Keyword vs title mode? title matches an exact Glassdoor job title and reports base-pay percentiles; keyword is a broader match and reports mean base pay. Both return full total-pay percentiles.

Do I need a proxy? Yes — use Residential proxy (the default). Glassdoor's mobile API serves residential IPs only and blocks datacenter IPs, so runs without residential proxy return no data. No login or credentials are needed.

Is scraping this legal? You are responsible for your use. The Actor collects only publicly available, aggregate salary estimates (no personal data) and is intended for market research and analytics; comply with Glassdoor's terms and applicable law.

Reliability? The mobile API is a stable JSON/GraphQL backend with no Cloudflare JS challenge, so this Actor does not break on web anti-bot rotations; transient network errors are retried automatically. It does require Residential proxy (the default) because the API blocks datacenter IPs.