Glassdoor Jobs Scraper – Salary Ranges, Ratings & Easy Apply
Pricing
from $1.00 / 1,000 jobs
Glassdoor Jobs Scraper – Salary Ranges, Ratings & Easy Apply
Scrape Glassdoor job listings by keyword and location without an account. Typed JSON per job: salary range (min / median / max, employer-stated or estimated), company rating and profile, posting age, Easy Apply flag, full description and apply link — plus a companies-hiring summary.
Pricing
from $1.00 / 1,000 jobs
Rating
0.0
(0)
Developer
inovaflow
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
If you need Glassdoor job listings as data — with the salary ranges and company ratings that make Glassdoor different from every other job board — Glassdoor Jobs Scraper turns any Glassdoor job search into clean, typed JSON. No Glassdoor account, nothing to log in with. Each job comes back with its salary range (min / median / max, employer-stated or Glassdoor's estimate), the employer's rating and profile, posting age, Easy Apply flag, full description and apply link — plus a companies-hiring summary for the whole run.
- Job seekers & career coaches — compare pay bands and employer ratings across hundreds of openings at once.
- Recruiters & compensation analysts — market salary data by role and city, straight from live postings.
- Job boards & aggregators — a scheduled feed of new roles with pay ranges and company reputation attached.
- Sales & B2B teams — hiring is a buying signal: see which well-rated companies are growing, with size, industry, HQ and website.
What does Glassdoor Jobs Scraper do?
Give it job titles or keywords and locations (or paste a Glassdoor job search URL from your browser) and it returns the matching Glassdoor job listings — each with title, company, company rating (overall plus culture, compensation, work-life balance, management, career opportunities, CEO approval), location, posting age, salary range, Easy Apply flag, job type, Glassdoor's skill tags, the full description as text and HTML, the employer profile (industry, sector, size, revenue, type, founded, headquarters, website) and links to the job, the apply page and the company's reviews and salaries pages. Duplicates across searches are removed, and a companies-hiring summary is written next to the dataset. It works as a Glassdoor jobs API: call it from the Apify API, schedule it, or use it from an AI agent through MCP.
Why use this Glassdoor jobs scraper?
- No login. It reads what Glassdoor shows to visitors; there is no account to get flagged.
- Salary ranges as numbers.
salaryMin/salaryMedian/salaryMax/salaryCurrency/salaryPeriod, withsalarySourcetelling you whether the employer disclosed it or Glassdoor estimated it. - Employer reputation in every row. Overall rating plus the full breakdown and the company profile — no second scraper needed.
- Glassdoor's own filters. Posted within 24h / 3 / 7 / 14 / 30 days, remote, job type, seniority, Easy Apply, minimum salary, minimum company rating, radius, sort by date — plus your own title / company include-exclude lists.
- Companies hiring.
COMPANIESranks employers by open roles with rating, titles, locations, newest posting and Easy Apply share — a ready-made hiring-intent signal. - Pay per job, no minimums. 5 jobs cost 5 jobs. Duplicates and filtered-out jobs are free.
- Built for pipelines. Deduplicated across searches, CSV exports, webhooks and 20+ export formats via Apify.
What data does it extract?
| Field | Description |
|---|---|
id, url, applyUrl | Glassdoor listing ID, the public job page and the apply link |
title, occupation | Title as posted and Glassdoor's normalised occupation |
company, companyId, companyRating, companyRatings | Employer, overall rating and the rating breakdown (culture & values, compensation & benefits, work-life balance, senior management, career opportunities, CEO approval, recommend-to-friend) |
companyUrl, companyReviewsUrl, companySalariesUrl, companyWebsite, companyLogoUrl | Employer links |
companyIndustry, companySector, companySize, companyRevenue, companyType, companyFounded, companyHeadquarters, companyCeo | Employer profile |
location, locationType, isRemote | Location as posted (city / state / country) and remote flag |
postedAt, ageInDays | ISO date and Glassdoor's posting age |
salaryText, salaryMin, salaryMedian, salaryMax, salaryCurrency, salaryPeriod, salarySource | Salary range; salarySource is employer or estimate |
easyApply, sponsored | Apply on Glassdoor; sponsored listing |
jobTypes, attributes | e.g. ["full-time"]; Glassdoor's skill / requirement / schedule tags |
descriptionSnippet, description, descriptionHtml | Search snippet, full description as readable text, and as HTML |
searchKeywords, searchLocation, scrapedAt | Provenance |
How to scrape Glassdoor jobs
- Open the Actor and click Try for free.
- Enter Job titles / keywords (one per line) and Locations (one per line — cities, states, countries or
Remote). Every keyword is searched in every location. - Optionally narrow with Posted within, Remote only, Job type, Seniority, Easy Apply only, Minimum salary or Minimum company rating, or paste a Glassdoor search URL from your browser.
- Set Max jobs per search and click Start. 100 jobs with full details take about a minute.
- Read the Output tab, download JSON / CSV / Excel, or open
COMPANIESto see who is hiring most.
How to build a salary dataset
Search a role across several cities — e.g. keyword data analyst, locations New York, NY, Chicago, Austin, Remote — with Fetch full job details off for speed. Every row carries salaryMin / salaryMedian / salaryMax and salarySource; export to CSV and pivot by searchLocation.
How to track new Glassdoor jobs every day
Set Posted within to Last 24 hours, Sort by to Most recent, and schedule the Actor daily in Apify. Add a webhook or an integration (Slack, Google Sheets, Make, Zapier, n8n) to push new rows where your team works.
How to find well-rated companies that are hiring
Set Minimum company rating to 4, run a broad search (e.g. software engineer in United States, 300 jobs) and open COMPANIES: employers ranked by open roles, each with its rating and newest posting date.
How much does it cost to scrape Glassdoor jobs?
Pay-per-event: $0.001 per job delivered plus a small run-start fee — 1,000 jobs for about $1. Duplicates, filtered-out jobs and failed searches are never charged. Residential proxies (the default, needed for Glassdoor) are billed by Apify at your plan's rate; a run of 100 jobs with full details transfers roughly 8 MB, a list without details a fraction of that.
Input
Example — two roles in two cities, posted this week, remote, well-rated employers only:
{"keywords": ["python developer", "data engineer"],"locations": ["New York, NY", "Austin"],"postedWithin": "week","remoteOnly": true,"minCompanyRating": 4,"maxJobsPerSearch": 100}
Or paste a search URL from your browser:
{ "startUrls": [{ "url": "https://www.glassdoor.com/Job/new-york-ny-python-developer-jobs-SRCH_IL.0,11_IC1132348_KO12,28.htm?fromAge=7" }] }
All fields are optional except one of keywords / locations / startUrls. Aliases such as query, location, remote: true, limit, daysOld and experienceLevels are accepted, so inputs written for other job scrapers usually work unchanged.
Output
One dataset row per job:
{"id": "1010253473691","title": "Senior Software Engineer - Frontend Major","company": "Back Market","companyRating": 4.2,"companyRatings": { "overallRating": 4.2, "cultureAndValuesRating": 4.4, "compensationAndBenefitsRating": 3.4, "workLifeBalanceRating": 4.1, "seniorManagementRating": 3.9, "careerOpportunitiesRating": 3.9, "ceoRating": 0.88, "recommendToFriendRating": 0.87 },"companyUrl": "https://www.glassdoor.com/Overview/Working-at-Back-Market-EI_IE1780208.11,22.htm","companyIndustry": "Internet & Web Services","companySector": "Information Technology","companySize": "501 to 1000 Employees","companyType": "Company - Private","companyFounded": 2014,"companyHeadquarters": "Paris, France","companyWebsite": "https://www.backmarket.com","location": "New York, NY","locationType": "city","isRemote": false,"jobTypes": ["full-time"],"postedAt": "2026-09-04","ageInDays": 5,"url": "https://www.glassdoor.com/job-listing/senior-software-engineer-frontend-major-back-market-JV_IC1132348_KO0,39_KE40,51.htm?jl=1010253473691","applyUrl": "https://www.glassdoor.com/partner/jobListing.htm?…&jobListingId=1010253473691","easyApply": false,"salaryText": "$160,000 - $200,000 a year","salaryMin": 160000,"salaryMedian": 180000,"salaryMax": 200000,"salaryCurrency": "USD","salaryPeriod": "year","salarySource": "employer","description": "Location\n\nNew York\n\nEmployment Type\n\nFull time\n\n…","searchKeywords": "python developer","searchLocation": "New York, NY"}
Also in the key-value store: COMPANIES (+ COMPANIES.csv) — employers ranked by open roles — JOBS.csv, and OUTPUT with run counts (jobs delivered, with salary, Easy Apply, companies, total matches on Glassdoor per search, filtered, duplicates).
Using it from AI agents and code
Through the Apify MCP server an agent can call this Actor with plain-language inputs (keywords, locations, postedWithin, minCompanyRating). Rows are flat and typed, and the OUTPUT summary says how many jobs were delivered, how many Glassdoor had in total for each search, and how many were skipped as duplicates or filtered out — so an agent never has to guess. From code, use the Apify API or clients:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('inovaflow/glassdoor-jobs-scraper').call({keywords: ['registered nurse'],locations: ['Texas'],postedWithin: 'day',includeDetails: false,maxJobsPerSearch: 200,});const { items } = await client.dataset(run.defaultDatasetId).listItems();
Tips
- Details are the expensive part. Turn Fetch full job details off when you only need titles, companies, ratings and salary ranges — that data is already in the search results and comes back in seconds.
- Locations can be a city (
Austin), a state or region (Texas,England), a country (Germany) orRemote. Ambiguous names resolve to the best Glassdoor match; the log shows what was chosen. salarySource: "estimate"rows are Glassdoor's own pay estimates; filter them out if you only want employer-disclosed numbers.- Large runs: each search fetches 50 jobs per page, so 1,000 jobs are ~20 search requests plus the details you ask for.
FAQ
Do I need a Glassdoor account? No. The Actor never logs in.
Is it legal to scrape Glassdoor? Job listings are public information published to be found. You are responsible for how you use the data — respect Glassdoor's and the employers' terms, and personal-data laws where you operate.
Why do some jobs have no employer profile? Smaller or unverified employers have no Glassdoor company page; the job still carries whatever the listing itself states.
Can I filter by company? Use companyExclude to drop employers, or add the company name to keywords.
Why residential proxies? Glassdoor's entry check blocks most datacenter IPs. The default configuration uses Apify residential proxies and keeps traffic small (about half a megabyte per IP for the warm-up, then only compact JSON).
Support
Found a field you need or a search that misbehaves? Open an issue on the Actor's Issues tab — feedback shapes the roadmap.