Glassdoor Scraper: Jobs, Salaries, Ratings & Companies avatar

Glassdoor Scraper: Jobs, Salaries, Ratings & Companies

Pricing

from $3.00 / 1,000 serp results

Go to Apify Store
Glassdoor Scraper: Jobs, Salaries, Ratings & Companies

Glassdoor Scraper: Jobs, Salaries, Ratings & Companies

Extract Glassdoor jobs across 20+ countries. Returns title, company, rating (1-5), review count, salary (min/max/currency + estimated flag), location, employment type, workplace type, description, apply URL, easy_apply. Optional employer profile: about, HQ, size, industry, CEO.

Pricing

from $3.00 / 1,000 serp results

Rating

0.0

(0)

Developer

NanoScrape

NanoScrape

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

17 days ago

Last modified

Share

Extract job listings from Glassdoor across 20+ country domains. Every row carries the company's Glassdoor rating (1-5) and review count alongside title, salary, location and apply URL. Optional employer profile enrichment adds "About" text, headquarters, size range, founded year, industry, CEO, rating breakdown and open-role count for each unique company in the run.

What it does

Runs a search on Glassdoor for one or more keyword and location pairs (or a set of pre-filtered start URLs) and returns structured rows. Three fetch modes:

  1. SERP only (default). 25+ fields per job, sourced from Glassdoor's embedded React state plus JSON-LD.
  2. SERP + job detail (includeJobDetails: true). Adds full description (plain text + HTML), direct apply URL and richer employment-type data from each job's detail page.
  3. SERP + job detail + employer profile (includeCompanyDetails: true). Also resolves each unique employer to its Glassdoor company page and returns company enrichment fields merged directly onto each job row: about text, HQ, size, founded year, industry, CEO, rating breakdown (culture, comp, opportunities, senior leadership, work-life balance) and a list of currently-open roles.

Sample output

{
"_type": "job",
"id": "1009123456",
"title": "Senior Software Engineer",
"company_name": "Acme Corp",
"company_rating": 4.2,
"review_count": 1284,
"location": "New York, NY",
"salary_min": 145000,
"salary_max": 205000,
"salary_currency": "USD",
"salary_period": "year",
"salary_text": "$145K - $205K/yr (Employer est.)",
"salary_estimated": true,
"salary_source": "employer",
"employment_type": "full-time",
"workplace_type": "hybrid",
"description_snippet": "We are looking for a senior software engineer...",
"posted_at": "2026-09-19",
"posted_at_datetime": "2026-09-19T00:00:00Z",
"age_days": 1,
"job_url": "https://www.glassdoor.com/job-listing/senior-software-engineer-acme-JV_IC1132348_KO0,24_KE25,34.htm?jl=1009123456",
"apply_url": "https://jobs.acme.com/apply/123",
"apply_type": "external",
"easy_apply": false,
"sponsored": false,
"employer_id": "9079",
"employer_profile_url": "https://www.glassdoor.com/Overview/Working-at-Acme-Corp-EI_IE9079.htm",
"source_platform": "glassdoor.com",
"search_query": "software engineer",
"search_location": "New York, NY",
"serp_page": 1,
"scraped_at": "2026-09-20T08:00:00Z",
"extraction_mode": "serp-apollo"
}

Output fields

FieldTypeDescription
_typestringAlways "job"
idstringGlassdoor jobListingId
titlestringJob title
company_namestringEmployer name
company_logo_urlstringCompany square logo URL (null if only placeholder available)
locationstringLocation text from card
citystringParsed city
statestringParsed state/region
countrystringCountry from structured data
salary_minnumberMinimum salary (numeric)
salary_maxnumberMaximum salary (numeric)
salary_currencystringCurrency code (USD, EUR, GBP, ...)
salary_periodstringPay period: year, month, week, day, hour
salary_textstringHuman-readable salary string synthesized from structured fields (e.g. "$145K - $205K/yr (Glassdoor est.)")
salary_estimatedbooleanTrue when Glassdoor or employer estimated
salary_sourcestring"glassdoor" or "employer" when estimated
employment_typestringfull-time, part-time, contract, temporary, internship, freelance
workplace_typestringremote, hybrid, onsite
description_snippetstringShort description excerpt (SERP)
description_fullstringFull plain-text description (requires includeJobDetails)
description_htmlstringFull HTML description (requires includeJobDetails)
description_mdstringFull Markdown description converted from HTML (requires includeJobDetails)
posted_atstringPosting date YYYY-MM-DD (approximate, derived from "Nd ago")
posted_at_datetimestringISO-8601 UTC datetime (YYYY-MM-DDT00:00:00Z)
age_daysnumberDays since posted
job_urlstringGlassdoor job listing URL
apply_urlstringDirect apply URL (requires includeJobDetails)
apply_typestringquick (Easy Apply), native, external
source_platformstringAlways "glassdoor.com"
company_ratingnumberOverall Glassdoor rating 1.0-5.0
review_countnumberNumber of Glassdoor reviews
easy_applybooleanTrue if Glassdoor Easy Apply available
sponsoredbooleanTrue if sponsored/promoted listing
employer_idstringGlassdoor employer ID (eid)
employer_profile_urlstringGlassdoor company Overview URL
search_querystringKeyword used for this result
search_locationstringLocation used for this result
serp_pagenumberSERP page number
scraped_atstringISO-8601 UTC scrape timestamp
extraction_modestringExtraction path used (serp-apollo, serp-jsonld, serp-html-anchor, +detail)
company_aboutstringEmployer "About" text (requires includeCompanyDetails)
company_websitestringEmployer website URL
company_headquartersstringHeadquarters location
company_size_rangestringEmployee count range (e.g. "10001+ Employees")
company_founded_yearnumberYear founded
company_industrystringIndustry name
company_sectorstringSector name
company_typestringCompany type (Public, Private, Nonprofit, ...)
company_revenue_rangestringAnnual revenue range
company_ceostringCEO name
company_ceo_approval_pctnumberCEO approval %
company_recommend_pctnumberRecommend-to-friend %
company_glassdoor_ratingnumberOverall rating from company page
company_review_countnumberReview count from company page
company_rating_culturenumberCulture and values sub-rating
company_rating_compensationnumberCompensation and benefits sub-rating
company_rating_opportunitiesnumberCareer opportunities sub-rating
company_rating_senior_leadershipnumberSenior leadership sub-rating
company_rating_work_life_balancenumberWork-life balance sub-rating
company_rating_diversitynumberDiversity and inclusion sub-rating
company_active_jobs_countnumberNumber of open roles on company page
company_active_jobsarrayList of open job titles and URLs (up to 20)

Input parameters

ParameterTypeDefaultDescription
searchQueriesstring[]["software engineer"]Job search keywords
startUrlsstring[]Pre-filtered Glassdoor search URLs
locationstringCity or region (e.g. "New York, NY")
countryselectusGlassdoor domain: us, uk, gb, ca, au, ie, in, de, fr, nl, es, it, br, mx, ar, sg, hk, ch, at, be
maxResultsinteger5Total job cap across all queries
maxResultsPerQueryinteger5Per-query job cap
includeJobDetailsbooleanfalseFetch full description and apply URL from PDP
includeCompanyDetailsbooleanfalseFetch employer profile fields
sortByselectnewestnewest or relevance
maxConcurrencyinteger3Max parallel HTTP requests

Pricing

Pay-per-event (PPE) via Apify's platform billing:

EventRateWhen charged
job-start$0.001Once per actor run
job-serp-result$0.003Per job pushed to dataset
job-detail-result$0.002Per job enriched with full description from the detail page
company-detail-result$0.005Per unique employer profile resolved (deduplicated per run)

How it works: You pay a flat rate per event; we absorb compute and proxy costs on our end. No monthly minimum. New Apify accounts include $5 free credit that applies immediately.

Worked examples

SERP-only scan — 100 jobs

EventCountRateSubtotal
job-start1$0.001$0.001
job-serp-result100$0.003$0.300
Total$0.301

SERP + detail enrichment — 500 jobs

EventCountRateSubtotal
job-start1$0.001$0.001
job-serp-result500$0.003$1.500
job-detail-result500$0.002$1.000
Total$2.501

Full pipeline — 1,000 jobs + 200 employer profiles

EventCountRateSubtotal
job-start1$0.001$0.001
job-serp-result1,000$0.003$3.000
job-detail-result1,000$0.002$2.000
company-detail-result200$0.005$1.000
Total$6.001

Supported countries

us (glassdoor.com), uk/gb (glassdoor.co.uk), ca (glassdoor.ca), au (glassdoor.com.au), ie (glassdoor.ie), in (glassdoor.co.in), de (glassdoor.de), fr (glassdoor.fr), nl (glassdoor.nl), es (glassdoor.es), it (glassdoor.it), br (glassdoor.com.br), mx (glassdoor.com.mx), ar (glassdoor.com.ar), sg (glassdoor.sg), hk (glassdoor.com.hk), ch (glassdoor.ch), at (glassdoor.at), be (glassdoor.be)

Use with AI agents (MCP)

This actor is compatible with Apify's MCP server for use in Claude, Cursor, LangChain and other agent frameworks. For per-tool schemas and MCP-client copy-paste snippets, see the MCP tab on the actor page.

{
"mcpServers": {
"apify": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://mcp.apify.com/sse?token=YOUR_APIFY_TOKEN&tools=santamaria-automations~glassdoor-scraper"
]
}
}
}

Feed the company_website field from this actor's output into one of the two below to enrich rows with contact data:

More job scrapers from our fleet you may also want:

Why this scraper

  • Returns Glassdoor's employer rating (1-5) and review count on every SERP row — not just on aggregated employer pages — so compensation and culture signals travel with each job record.
  • Preserves the salary_estimated boolean and salary_source string alongside parsed numeric salary ranges, letting ML pipelines weight or filter employer-declared vs Glassdoor-estimated bands independently.
  • Optional employer profile pass (includeCompanyDetails: true) resolves 20+ company fields — about text, HQ, size, founded year, industry, sector, CEO, CEO approval %, recommend %, six sub-ratings, open-role count and list — deduplicated per unique employer, with no second API call required.
  • Covers 20+ country domains under a single normalized schema: one input change (country: "de") routes the entire run to glassdoor.de without any per-country actor to maintain.
  • Pure Go HTTP stack running at 128 MB RAM baseline with residential proxy and Apify Unblocker — no browser overhead, roughly 30x faster per query than the previous browser-tier implementation.

Use cases

  • Compensation benchmarking across cities and titles using salary_min, salary_max, salary_currency, salary_period and the salary_estimated filter flag.
  • Recruiter lead-gen: identify companies actively hiring for a target role and open a conversation using co-located employer fields (HQ, size, industry, CEO).
  • Market intelligence: track competitor rating trends, open-role counts and review-count velocity across recurring scheduled runs.
  • Pay-transparency research or media reporting, particularly for US postings where Glassdoor publishes salary estimates employers do not disclose elsewhere.
  • Candidate pipeline building with deduplication on employer_id and id (Glassdoor jobListingId) across daily runs.

Notes and limits

  • Glassdoor's "newest" sort applies a fromAge filter (typically last-24 h posts) rather than a strict recency ordering. Results within the window are relevance-ranked. To capture older postings, use sortBy: relevance and paginate deeper.
  • Salary ranges are often Glassdoor's estimates rather than official employer bands. The salary_estimated boolean and salary_source string identify which is which on every row.
  • Employer profile pages sometimes omit fields for smaller companies or non-US regions. Missing values are returned as null rather than backfilled with guesses.
  • description_full, description_html and description_md are only populated when includeJobDetails: true. SERP rows carry only description_snippet (roughly 150 chars).
  • apply_url and the apply_type distinction (external ATS redirect vs Glassdoor Easy Apply) require includeJobDetails: true.
  • Throughput: expect roughly 2-3 jobs per second at maxConcurrency: 3. Total runtime scales approximately linearly with SERP page count (30 rows per page).

Support

  • Questions or issues? Email contact@nanoscrape.com — we typically reply within 6 hours. You can also open a ticket in the Issues tab on the actor page.
  • Feature request? Open a ticket in the Issues tab or email contact@nanoscrape.com with the field / country / employer type you need and (if possible) a URL that shows the data live on glassdoor.
  • Need a scraper for a job board we don't cover yet? Email contact@nanoscrape.com with the target site + your rough usage volume — we ship one-off boards regularly.