Glassdoor Jobs Scraper - Salaries, Ratings, 20+ Countries
Pricing
from $3.00 / 1,000 serp results
Glassdoor Jobs Scraper - Salaries, Ratings, 20+ Countries
Scrape Glassdoor jobs in 20+ countries with salary ranges (min, max, currency, estimated flag), company rating and review count, workplace type, Easy Apply and apply URL. Optional full descriptions and employer profiles (HQ, size, industry, CEO). No login.
Pricing
from $3.00 / 1,000 serp results
Rating
0.0
(0)
Developer
NanoScrape
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
2
Monthly active users
2 days ago
Last modified
Categories
Share
Glassdoor Scraper: Jobs, Salaries, Ratings & Companies
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.
- 20+ countries: one
countryinput switches the Glassdoor domain (us, uk, ca, au, de, fr, nl, ch, at, in, sg and more). - Salary:
salary_min,salary_max, currency and period parsed from the listing, with asalary_estimatedflag for employer or Glassdoor estimates. - Rating on every row:
company_ratingandreview_countcome with the SERP, no extra cost. - Employer profile (optional): about text, headquarters, size, founded year, industry, CEO, rating breakdown and open-role count via
includeCompanyDetails. - Paste any URL:
startUrls,searchUrls,companyUrlsanddirectUrlsaccept Glassdoor links you already have.
Quick start. An empty {} input runs the same search with 20 results. Or pass:
{ "searchQueries": ["software engineer"], "location": "New York, NY", "country": "us" }
{"title": "Senior Software Engineer","company_name": "Acme Corp","company_rating": 4.2,"location": "New York, NY","salary_min": 145000,"salary_max": 205000,"salary_currency": "USD","job_url": "https://www.glassdoor.com/job-listing/..."}
Price: $0.001 per run start plus $0.003 per job. Job descriptions add $0.002 per job and each unique employer profile adds $0.005 (see Pricing below).
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:
- SERP only (default). 25+ fields per job, sourced from Glassdoor's embedded React state plus JSON-LD.
- 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. - 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
| Field | Type | Description |
|---|---|---|
_type | string | Always "job" |
id | string | Glassdoor jobListingId |
title | string | Job title |
company_name | string | Employer name |
company_logo_url | string | Company square logo URL (null if only placeholder available) |
location | string | Location text from card |
city | string | Parsed city |
state | string | Parsed state/region |
country | string | Country from structured data |
salary_min | number | Minimum salary (numeric) |
salary_max | number | Maximum salary (numeric) |
salary_currency | string | Currency code (USD, EUR, GBP, ...) |
salary_period | string | Pay period: year, month, week, day, hour |
salary_text | string | Human-readable salary string synthesized from structured fields (e.g. "$145K - $205K/yr (Glassdoor est.)") |
salary_estimated | boolean | True when Glassdoor or employer estimated |
salary_source | string | "glassdoor" or "employer" when estimated |
employment_type | string | full-time, part-time, contract, temporary, internship, freelance |
workplace_type | string | remote, hybrid, onsite |
description_snippet | string | Short description excerpt (SERP) |
description_full | string | Full plain-text description (requires includeJobDetails) |
description_html | string | Full HTML description (requires includeJobDetails) |
description_md | string | Full Markdown description converted from HTML (requires includeJobDetails) |
posted_at | string | Posting date YYYY-MM-DD (approximate, derived from "Nd ago") |
posted_at_datetime | string | ISO-8601 UTC datetime (YYYY-MM-DDT00:00:00Z) |
age_days | number | Days since posted |
job_url | string | Glassdoor job listing URL |
apply_url | string | Direct apply URL (requires includeJobDetails) |
apply_type | string | quick (Easy Apply), native, external |
source_platform | string | Always "glassdoor.com" |
company_rating | number | Overall Glassdoor rating 1.0-5.0 |
review_count | number | Number of Glassdoor reviews |
easy_apply | boolean | True if Glassdoor Easy Apply available |
sponsored | boolean | True if sponsored/promoted listing |
employer_id | string | Glassdoor employer ID (eid) |
employer_profile_url | string | Glassdoor company Overview URL |
search_query | string | Keyword used for this result |
search_location | string | Location used for this result |
serp_page | number | SERP page number |
scraped_at | string | ISO-8601 UTC scrape timestamp |
extraction_mode | string | Extraction path used (serp-apollo, serp-jsonld, serp-html-anchor, +detail) |
company_about | string | Employer "About" text (requires includeCompanyDetails) |
company_website | string | Employer website URL |
company_headquarters | string | Headquarters location |
company_size_range | string | Employee count range (e.g. "10001+ Employees") |
company_founded_year | number | Year founded |
company_industry | string | Industry name |
company_sector | string | Sector name |
company_type | string | Company type (Public, Private, Nonprofit, ...) |
company_revenue_range | string | Annual revenue range |
company_ceo | string | CEO name |
company_ceo_approval_pct | number | CEO approval % |
company_recommend_pct | number | Recommend-to-friend % |
company_glassdoor_rating | number | Overall rating from company page |
company_review_count | number | Review count from company page |
company_rating_culture | number | Culture and values sub-rating |
company_rating_compensation | number | Compensation and benefits sub-rating |
company_rating_opportunities | number | Career opportunities sub-rating |
company_rating_senior_leadership | number | Senior leadership sub-rating |
company_rating_work_life_balance | number | Work-life balance sub-rating |
company_rating_diversity | number | Diversity and inclusion sub-rating |
company_active_jobs_count | number | Number of open roles on company page |
company_active_jobs | array | List of open job titles and URLs (up to 20) |
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQueries | string[] | ["software engineer"] | Job search keywords |
startUrls | string[] | Pre-filtered Glassdoor search URLs | |
location | string | City or region (e.g. "New York, NY") | |
country | select | us | Glassdoor domain: us, uk, gb, ca, au, ie, in, de, fr, nl, es, it, br, mx, ar, sg, hk, ch, at, be |
maxResults | integer | 20 | Total job cap across all queries |
maxResultsPerQuery | integer | 20 | Per-query job cap |
includeJobDetails | boolean | false | Fetch full description and apply URL from PDP |
includeCompanyDetails | boolean | false | Fetch employer profile fields |
sortBy | select | newest | newest or relevance |
postedWithinDays | integer | 0 | Only jobs posted within the last N days (0 = no limit). Server-side 1/3/7/14/30 day bucket, then exact client-side cut before push and charge. |
maxConcurrency | integer | 1 | Max parallel HTTP requests for detail and company fetches. Raise to 3 for large runs with details on. |
Pricing
Pay-per-event (PPE) via Apify's platform billing:
| Event | Rate | When charged |
|---|---|---|
job-start | $0.001 | Once per actor run |
job-serp-result | $0.003 | Per job pushed to dataset |
job-detail-result | $0.002 | Per job enriched with full description from the detail page |
company-detail-result | $0.005 | Per 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
| Event | Count | Rate | Subtotal |
|---|---|---|---|
job-start | 1 | $0.001 | $0.001 |
job-serp-result | 100 | $0.003 | $0.300 |
| Total | $0.301 |
SERP + detail enrichment — 500 jobs
| Event | Count | Rate | Subtotal |
|---|---|---|---|
job-start | 1 | $0.001 | $0.001 |
job-serp-result | 500 | $0.003 | $1.500 |
job-detail-result | 500 | $0.002 | $1.000 |
| Total | $2.501 |
Full pipeline — 1,000 jobs + 200 employer profiles
| Event | Count | Rate | Subtotal |
|---|---|---|---|
job-start | 1 | $0.001 | $0.001 |
job-serp-result | 1,000 | $0.003 | $3.000 |
job-detail-result | 1,000 | $0.002 | $2.000 |
company-detail-result | 200 | $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"]}}}
Related actors
Feed the company_website field from this actor's output into one of the two below to enrich rows with contact data:
- Website Email & Phone Scraper — regex-based, fast & cheap; scrapes emails + phones from a company website.
- Website Contact Extractor — LLM-based, higher precision on structured contacts (names, roles, dept-scoped emails).
More job scrapers from our fleet you may also want:
- LinkedIn Jobs Scraper — LinkedIn's public job search across every geo.
- Stepstone.de Scraper — flagship DACH board (Germany).
- Arbeitsagentur DE Scraper — the German federal employment agency (jobsuche.arbeitsagentur.de).
- France Travail Scraper — the French national public employment service.
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_estimatedboolean andsalary_sourcestring 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_periodand thesalary_estimatedfilter 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_idandid(Glassdoor jobListingId) across daily runs.
Notes and limits
sortBy: newestsorts by date (GlassdoorsortBy=date_desc). Pages beyond the first are loaded through Glassdoor's cursor API, not?page=N.- Salary ranges are often Glassdoor's estimates rather than official employer bands. The
salary_estimatedboolean andsalary_sourcestring 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_htmlanddescription_mdare only populated whenincludeJobDetails: true. SERP rows carry onlydescription_snippet(roughly 150 chars).apply_urland theapply_typedistinction (external ATS redirect vs Glassdoor Easy Apply) requireincludeJobDetails: 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.