Glassdoor Jobs Scraper: Salaries, Ratings & Job Listings
Pricing
from $1.00 / 1,000 jobs
Glassdoor Jobs Scraper: Salaries, Ratings & Job Listings
Scrape Glassdoor job listings by keyword and location: title, company, company rating, salary range with median, location, posted date, Easy Apply, skills and benefits. US, UK, Canada, Australia, Germany, France and India. Filters for date, remote, Easy Apply and rating. No login. Pay per job.
Pricing
from $1.00 / 1,000 jobs
Rating
0.0
(0)
Developer
The Mine Works
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
What does Glassdoor Jobs Scraper do?
Give it job titles or keywords and a location. Get back every matching Glassdoor job as a clean row: title, company, the company's Glassdoor star rating, the pay range with its median, pay period and currency, whether the employer posted the pay or Glassdoor estimated it, location, days since posting, Easy Apply, job type, a short description extract, and the skills, benefits, schedule and education tags Glassdoor pulls out of each listing.
It searches seven Glassdoor country sites (United States, United Kingdom, Canada, Australia, Germany, France and India), matches your location against Glassdoor's own city, state and country list, and follows the result pages the way the site's own "load more" button does, up to 30 pages per search.
✅ Salary range and median on every row that has one | ✅ Company rating and logo | ✅ 7 countries | ✅ Filters for date, remote, Easy Apply and rating | ✅ No login or cookies | ✅ Pay only for jobs delivered | ✅ MCP-ready for AI agents
Who is it for?
Recruiters and staffing agencies building lead lists of companies that are hiring right now, and what they pay. HR and compensation teams benchmarking salaries for a role in a city. Job seekers and career coaches tracking new openings with pay and company ratings side by side. Analysts and researchers who need flat, dated job data in a spreadsheet or pipeline.
How much does it cost to scrape Glassdoor jobs?
You pay per job delivered to your dataset, plus $0.005 per run at the default memory.
| Apify plan | Per job |
|---|---|
| Free | $0.0015 |
| Starter (Bronze) | $0.00135 |
| Scale (Silver) | $0.0012 |
| Business (Gold) and above | $0.001 |
The filters, the location lookup, salary data, company ratings and job attributes are all included. Compute and proxies are included.
| Job | Free | Starter | Scale | Business |
|---|---|---|---|---|
| 1 keyword in 1 city, 30 jobs | $0.050 | $0.046 | $0.041 | $0.035 |
| 10 keywords, 100 jobs each (1,000 jobs) | $1.51 | $1.36 | $1.21 | $1.01 |
| 50 keywords, 300 jobs each (15,000 jobs) | $22.51 | $20.26 | $18.01 | $15.01 |
Each row above is one run and includes the $0.005 run fee.
Never charged: location lookups, pages Glassdoor refused or that failed, searches with no results, locations Glassdoor does not know, the same job found again by a second keyword, jobs your rating or Easy Apply filter removed, expired listings, and the run summary. The Pricing tab always shows the rate for your own plan; if this table and the Pricing tab ever disagree, the Pricing tab is right.
How does it get Glassdoor jobs without logging in?
It reads what Glassdoor shows a visitor who is not logged in, in three steps.
First, your location. Glassdoor ignores a typed place name in a search link and quietly searches the whole country instead, so the actor looks your location up in Glassdoor's own location list for the site you chose and uses the id it gets back. "Austin, TX" becomes Austin, Texas; "London" on glassdoor.co.uk becomes the London region. The lookup is done once per location per run and is free.
Second, the first page of results, 30 jobs, straight from the search page Glassdoor builds for that keyword and place. Your filters (posted within N days, remote only, Easy Apply only, minimum rating) are Glassdoor's own filters, applied on its side.
Third, further pages, 30 jobs each, fetched the same way the site's "load more" button fetches them, up to 3 at a time. The actor stops when it has the number of jobs you asked for, when Glassdoor offers no further page, when a page brings nothing new, or at page 30, which is as far as Glassdoor goes.
Glassdoor sits behind Cloudflare, so every request goes through Apify's unblocking proxy, and a refused request is retried on a fresh connection up to 3 times. Refused pages are listed in the run summary and never charged.
What input does it take?
{"keywords": ["data analyst", "business analyst"],"location": "Austin, TX","site": "glassdoor.com","maxResultsPerSearch": 100,"postedWithinDays": 7,"remoteOnly": false,"easyApplyOnly": false,"minCompanyRating": 3}
| Input | Default | What it does |
|---|---|---|
keywords | none | Job titles or keywords, one per line. Each is its own search. Up to 50 per run. A single keyword string is accepted too |
location | empty | A city, state or country, for example Austin, TX, California or London. Empty searches the whole country of the site |
site | glassdoor.com | glassdoor.com (US), glassdoor.co.uk, glassdoor.ca, glassdoor.com.au, glassdoor.de, glassdoor.fr or glassdoor.co.in |
maxResultsPerSearch | 30 | Most jobs per keyword, 1 to 1,000. Glassdoor stops at 30 pages (900 jobs) per search |
postedWithinDays | empty | Only jobs posted in the last N days, 1 to 30 |
remoteOnly | false | Only jobs marked remote or work from home |
easyApplyOnly | false | Only jobs you can apply to on Glassdoor directly |
minCompanyRating | empty | Only companies rated at least 1, 2, 3 or 4 stars. Jobs at companies with no rating are left out |
startUrls | empty | Glassdoor search result URLs instead of keywords. Filters in the URL are kept |
What data do you get back?
One row per job. This is a real row from a test run on 27 Sep 2026, with job_attributes shortened:
{"listing_id": "1010270320133","url": "https://www.glassdoor.com/job-listing/j?jl=1010270320133","title": "Analyst, Data Maintenance","normalized_title": "data analyst","occupation": "data analyst","employer_name": "Visa U.S.A. Inc.","employer_profile_name": "Visa Inc.","employer_id": 3035,"company_rating": 3.7,"employer_logo_url": "https://media.glassdoor.com/sql/3035/visa-inc-squareLogo-1627484054817.png","location": "Austin, TX","location_type": "city","country_id": 1,"remote": false,"salary_min": 89200,"salary_median": 113900,"salary_max": 138600,"salary_currency": "USD","salary_period": "ANNUAL","salary_source": "EMPLOYER_PROVIDED","age_in_days": 5,"posted_date_estimate": "2026-09-22","easy_apply": true,"sponsored": false,"job_types": ["Full-time"],"description_snippet": "The position will require the incumbent to sit and stand at a desk, communicate in person and by telephone, frequently operate standard office equipment, such…","job_attributes": ["Project reporting", "Data integrity assurance", "Internal controls", "Oracle", "SAP Ariba", "Health insurance", "401(k)", "Paid time off", "Hybrid work", "Bachelor's degree"],"search_keyword": "data analyst","search_location": "Austin, TX","site": "glassdoor.com","scraped_at": "2026-09-27T15:22:31.485Z"}
| Field | Description |
|---|---|
listing_id, url | Glassdoor's job id and a link to the job |
title, normalized_title, occupation | The title as posted, Glassdoor's standard title, and the occupation it files the job under |
employer_name, employer_profile_name, employer_id | The company named on the job, the Glassdoor company profile it is linked to (when the name differs) and that profile's id |
company_rating, employer_logo_url | The company's overall Glassdoor rating (1 to 5) and logo |
location, location_type, country_id, remote | Where the job is, whether that is a city, state or country, Glassdoor's country id, and a remote flag |
salary_min, salary_median, salary_max | The pay range Glassdoor shows: low end (10th percentile), median, high end (90th percentile) |
salary_currency, salary_period, salary_source | Currency, ANNUAL, HOURLY, MONTHLY and so on, and EMPLOYER_PROVIDED or ESTIMATED |
age_in_days, posted_date_estimate | Days since posting, and the posting date worked out from it |
easy_apply, sponsored, job_types | Easy Apply, paid listing, and job types such as Full-time or Contract |
description_snippet | The short description extract Glassdoor shows in search results |
job_attributes | Skills, tools, benefits, schedule, education and seniority tags Glassdoor extracted from the listing |
search_keyword, search_location, site, scraped_at | Which search found the row, and when |
In the test runs of 27 Sep 2026, 85% and 97% of rows in the two city searches had a salary range, 95% and 93% had a company rating, and every row had job attributes and a description extract.
Empty fields are dropped rather than sent as null. Each run also writes a summary to the key-value store record OUTPUT: a status for every search (ok, no_results, location_not_found, blocked, skipped), the location Glassdoor matched, pages read and failed, duplicates skipped, and what was charged. A final _type: "info" row in the dataset is informational and never billed.
What are the limitations?
900 jobs per search. Glassdoor's own pages stop at page 30, whatever total it reports. To collect more, split a big search into narrower ones: several keywords, cities instead of a whole country, or a date window.
Description extract, not the full description. You get the short extract Glassdoor shows in search results, plus the extracted skills and benefits. The full job text is on the job page (url).
Salary is what Glassdoor shows. When the employer did not post pay, Glassdoor often shows its own estimate, marked salary_source: "ESTIMATED". Some jobs have no pay at all. Currency is as Glassdoor labels it.
Country wide searches in the US. A glassdoor.com search with no location returned sponsored listings only in our tests. For the full list, give a city or state.
Ratings. The rating filter is Glassdoor's own; the actor also drops any job whose company rating is below your minimum or missing, because Glassdoor let a few through in testing.
Dates. Glassdoor gives the age of a listing in whole days, so posted_date_estimate is exact to the day, not the hour.
Limits. Up to 50 searches per run and 1,000 jobs per search. Glassdoor changes its site from time to time; if it refuses a search, the run summary says so and nothing is charged for it.
What can you use it for?
Salary benchmarking. Pull every data analyst job in a city and compare the pay ranges employers post with Glassdoor's estimates.
Hiring lead lists. Find companies hiring for a role in your territory, with their rating and logo, and track them week by week with the date filter.
Job market research. Count openings by title, city, company and job type, and see which skills and benefits come up most often.
Job boards and alerts. Feed fresh listings posted in the last day or week into your own site, newsletter or Slack channel.
How do I get started?
- Type one or more job titles into Keywords.
- Add a Location and pick the Glassdoor site for that country, or leave the location empty for the whole country.
- Set Jobs per search, and any filters you want.
- Click Start, then download the dataset as JSON, CSV or Excel, or read it through the API or MCP.
Can I run it on a schedule?
Yes. Run it once with the input you want, click Save as a task, then in Apify Console go to Schedules, create a schedule, pick how often (for example every morning) and add the task. With Posted within the last N days set to 1, each daily run returns that day's new jobs. Each scheduled run is billed the same way as a manual one; the schedule itself costs nothing.
FAQ
How much does it cost to scrape 1,000 Glassdoor jobs?
1,000 x $0.0015 on Apify's Free plan, 1,000 x $0.00135 on Starter, 1,000 x $0.0012 on Scale and 1,000 x $0.001 on Business and above, plus $0.005 per run. Salary ranges, ratings, job attributes and filters are included, and duplicates, blocked pages and filtered jobs are not charged.
Do I need a Glassdoor account, cookies or an API key?
No. The actor reads public job listings the way Glassdoor shows them to a visitor who is not logged in. There is nothing of yours to connect, and no account of yours can be blocked.
Does it return salaries?
Yes, whenever Glassdoor shows pay on the job: salary_min, salary_median and salary_max with the period (ANNUAL, HOURLY and so on) and currency. salary_source tells you whether the employer posted it (EMPLOYER_PROVIDED) or it is Glassdoor's estimate (ESTIMATED).
Can I search a whole state or country?
Yes. Type a state (California) or a country (United Kingdom) as the location, or leave the location empty to search the whole country of the Glassdoor site you picked.
How many jobs can one search return?
Up to 900, because Glassdoor stops at 30 pages of 30 jobs. The run summary shows how many jobs Glassdoor reported for each search next to how many were read. For more, use narrower searches: more specific keywords, several cities, or a date window.
Can I get only jobs posted in the last day or week?
Yes. Set Posted within the last N days to anything from 1 to 30. It uses Glassdoor's own date filter, so older jobs are never fetched or charged.
Which countries does it support?
The United States (glassdoor.com), United Kingdom (glassdoor.co.uk), Canada (glassdoor.ca), Australia (glassdoor.com.au), Germany (glassdoor.de), France (glassdoor.fr) and India (glassdoor.co.in). Pick the site, then give a location in that country.
What happens if my location is not found?
The search is reported as location_not_found in the run summary, returns nothing and costs nothing. Try the spelling Glassdoor uses, such as New York, NY or London.
Am I charged for duplicates or blocked pages?
No. The same job found by two keywords is returned and charged once. Pages Glassdoor refuses are retried on a fresh connection; if they still fail they are listed in the run summary and nothing is charged for them.
Can I paste a Glassdoor search URL instead of keywords?
Yes. Put Glassdoor job search result URLs in Glassdoor search URLs. The filters in the URL are kept, and each URL is read up to Jobs per search jobs.
Is it legal to scrape Glassdoor job listings?
The actor collects only publicly visible job listings and never logs in. In hiQ Labs v. LinkedIn a US federal appeals court found that accessing publicly available data is unlikely to breach the Computer Fraud and Abuse Act, but platform terms and privacy laws such as GDPR still apply to how you store and use the data. This is general information, not legal advice.
Use in Claude, ChatGPT and any MCP agent
Add it to Claude Code in one line:
$claude mcp add --transport http apify "https://mcp.apify.com/?tools=themineworks/glassdoor-jobs-salary-scraper"
Or point any MCP client at:
https://mcp.apify.com/?tools=themineworks/glassdoor-jobs-salary-scraper
Things an agent can ask once connected:
- "What do data analyst jobs in Austin pay on Glassdoor right now? Give me the median by company."
- "List remote product manager jobs posted in the last 3 days at companies rated 4 stars or more."
- "Which companies are hiring nurses in London this week, and what hourly rates do they post?"
Or call it from code with the Apify client:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('themineworks/glassdoor-jobs-salary-scraper').call({keywords: ['data analyst'],location: 'Austin, TX',site: 'glassdoor.com',maxResultsPerSearch: 100,postedWithinDays: 7,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.filter((j) => j.salary_source === 'EMPLOYER_PROVIDED' && j.salary_median >= 100000));
More from The Mine Works
Browse every tool at themineworks.com. Related actors for jobs data:
- LinkedIn Jobs Scraper: LinkedIn job listings by keyword and location, no login.
- ATS Jobs Scraper: live jobs straight from company boards on Greenhouse, Lever, Workday and Ashby.
- SEEK Jobs Scraper: SEEK Australia job listings with salary labels and work types.
Found this useful? A quick Store review helps other buyers find it. Found a bug or want a field added? Open an issue on the actor's Apify Console page.
Disclaimer: This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Glassdoor, Inc. Glassdoor is a trademark of Glassdoor, Inc. Use scraped public data in line with GDPR, CCPA and your local laws.