Glassdoor Jobs Scraper & API - Reliable avatar

Glassdoor Jobs Scraper & API - Reliable

Pricing

from $0.30 / 1,000 job scrapeds

Go to Apify Store
Glassdoor Jobs Scraper & API - Reliable

Glassdoor Jobs Scraper & API - Reliable

Scrape Glassdoor job listings from any country by keyword, location, date posted, job type, remote, Easy Apply, rating, salary and seniority, or from Glassdoor URLs. Salary range, company rating and profile, full description. $0.30 per 1,000 jobs.

Pricing

from $0.30 / 1,000 job scrapeds

Rating

0.0

(0)

Developer

Christian Machon

Christian Machon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 hours ago

Last modified

Share

Scrape Glassdoor job listings from any country Glassdoor covers (US, UK, Canada, Germany, France, India, Australia, Netherlands, Singapore, Mexico ...) by keyword and location, with Glassdoor's own filters for date posted, job type, remote, Easy Apply, minimum company rating, minimum salary, seniority, radius and sort order. You can also paste Glassdoor search URLs.

Every job comes as a clean record: job ID, title, company, Glassdoor company rating, location, salary range (min / median / max, period, currency, employer-provided or Glassdoor estimate) plus a yearly equivalent, posted date, Easy Apply flag, occupation, the Glassdoor job URL and apply link. With details turned on (default) you also get the full description, exact location (city, state, country, latitude / longitude) and the company profile: website, size, revenue, type, founding year and headquarters.

The Actor reads Glassdoor's own job-search data feed (the same one its website uses) instead of rendering pages in a browser, so runs are fast (about 550-600 jobs per minute with or without details). Glassdoor blocks datacenter IPs, so it connects through Apify residential proxies, which are included in the price. If a proxy IP gets blocked, the Actor switches to a new one and tries again.

What can you use it for?

  • Salary research: Glassdoor shows a salary range for most jobs (85% in our tests). Each one says whether the employer posted it or Glassdoor estimated it, and is converted to a yearly amount.
  • Lead generation for recruiters and B2B sales: companies hiring right now, with their Glassdoor rating, website, employee count, revenue and headquarters.
  • Job boards and alerts: feed fresh postings into your own site, Slack or a spreadsheet. Schedule a daily run with Date posted = Last 24 hours.
  • Employer and competitor monitoring: track the roles a company opens and where.
  • Pairs with our Indeed Jobs Scraper and Google Jobs Scraper when you want postings from more job boards.

How to use it

  1. Enter one or more keywords (nurse, data analyst, product manager). Each keyword is a separate search.
  2. Enter a location: a city (Austin, TX, London, Berlin), a state (California) or a country (Germany). Glassdoor's location search picks the best match. OUTPUT shows which location was used. Leave it empty to search without a location, or type Remote.
  3. Optionally set date posted, job type, remote only, Easy Apply only, minimum rating, minimum salary, seniority, radius and sort.
  4. Set max jobs per search and run.

Jobs go to the dataset (views: Overview, Salaries, Descriptions & companies). A per-search summary goes to the OUTPUT record in the key-value store. It lists the status, jobs saved, the location used and Glassdoor's headline match count.

Paste Glassdoor URLs

Copy the URL of a Glassdoor job search from any Glassdoor site, for example https://www.glassdoor.com/Job/new-york-ny-software-engineer-jobs-SRCH_IL.0,11_IC1132348_KO12,29.htm?fromAge=7. The keyword, location and the filters in the URL are used (fromAge, jobType, remoteWorkType, applicationType, minRating, minSalary, seniorityType, sortBy, radius). Older jobs.htm?sc.keyword=...&locId=... URLs work too.

How many jobs can I get?

Glassdoor's headline count ("3,747 jobs") is larger than what it lets anyone page through: one search shows at most 30 pages, and the pages overlap. For bigger requests the Actor runs the same search again with narrower Glassdoor filters (newest first, posted in the last 1 / 3 / 7 / 14 / 30 days, job type, seniority ...) and keeps only jobs it has not seen yet. In our tests 1,500 registered nurse jobs across the US (list only) took 161 seconds. Narrow searches stop when Glassdoor has no more matches, and OUTPUT says how many were found. You only pay for unique jobs saved.

Input examples

Simple search:

{
"keywords": ["software engineer"],
"location": "New York, NY",
"maxResults": 100
}

Full-time jobs from the last 3 days at companies rated 4+:

{
"keywords": ["accountant", "financial analyst"],
"location": "California",
"datePosted": "3",
"jobType": "full-time",
"minRating": "4.0"
}

Remote, Easy Apply only, list only (fastest):

{
"keywords": ["data analyst"],
"remoteOnly": true,
"easyApplyOnly": true,
"includeDetails": false,
"maxResults": 500
}

UK, by URL:

{
"startUrls": ["https://www.glassdoor.co.uk/Job/london-nurse-jobs-SRCH_IL.0,6_IC2671300_KO7,12.htm"]
}

What data you get

Fill rates are measured on 3,674 jobs from our final test runs (2,144 with details), across 11 countries.

FieldWhat it isFilled
jobIdGlassdoor job listing ID (stable, used for de-duplication)100%
titleJob title100%
companyName / companyIdEmployer and its Glassdoor employer ID100%
companyRatingGlassdoor employer rating (1-5)85%
location / city / state / countryLocation as shown and its parts (state/country from details)100%
latitude / longitudeCoordinates - with details100%
postalCodePostal code - Glassdoor rarely provides it0%
isRemotetrue when Glassdoor marks the job as remote, otherwise emptyflag
salaryMin / salaryMedian / salaryMaxSalary range (employer-posted range, or Glassdoor estimate p10 / p50 / p90)85%
salaryPeriod / salaryCurrency / salarySourcehour/year..., ISO currency, "employer" or "glassdoor-estimate"85%
salaryAnnualMin / salaryAnnualMaxYearly equivalent of the salary85%
postedDaysAgo / postedDateAge of the posting and the date it was posted100%
easyApply / sponsoredGlassdoor Easy Apply flag, sponsored listing flag100%
occupationGlassdoor occupation category100%
jobUrl / applyUrlGlassdoor job page and apply link100%
descriptionFull job description as plain text (optional HTML in descriptionHtml) - with details100%
discoveredDate / jobSource / isExpiredWhen Glassdoor indexed the job, where it came from, expiry flag - with details100%
companyWebsiteEmployer website - with details85%
companySize / companyType / companyFoundedEmployee count band, ownership type, year founded - with details75%
companyRevenueRevenue band - with details40%
companyHeadquarters / companyLogoUrlHQ city and logo - with details87%
searchQuery / searchLocation / position / scrapedAtSearch that found the job, its rank and scrape time100%

Example record

{
"jobId": "1010305473216",
"title": "Registered Nurse (RN) - Virtual Care Network (1030a-9pm)",
"companyName": "Texas Children's Hospital",
"companyId": 14477,
"companyRating": 3.8,
"location": "Houston, TX",
"city": "Houston",
"state": "Texas",
"country": "United States",
"postalCode": null,
"latitude": 29.76306,
"longitude": -95.36306,
"isRemote": null,
"salaryMin": 50267,
"salaryMedian": 64206,
"salaryMax": 82012,
"salaryPeriod": "year",
"salaryCurrency": "USD",
"salarySource": "glassdoor-estimate",
"salaryAnnualMin": 50267,
"salaryAnnualMax": 82012,
"postedDaysAgo": 3,
"postedDate": "2026-10-24",
"easyApply": false,
"sponsored": false,
"occupation": "registered nurse",
"jobUrl": "https://www.glassdoor.com/job-listing/j?jl=1010305473216",
"applyUrl": "https://www.glassdoor.com/partner/jobListing.htm?...",
"description": "At Texas Children’s Hospital, our mission starts with our people. Guided by our HEART values—Humility, Excellence, Accountability, Respect, and Trust—we strive to create a workplace where teammates feel valued, supported...",
"discoveredDate": "2026-10-24",
"jobSource": "Indeed Job Search Platform",
"isExpired": false,
"companyWebsite": "www.texaschildrenspeople.org",
"companySize": "10000+ Employees",
"companyRevenue": "$1 to $5 billion (USD)",
"companyType": "Nonprofit Organization",
"companyFounded": 1954,
"companyHeadquarters": "Houston, TX",
"companyLogoUrl": "https://media.glassdoor.com/sql/14477/texas-children-s-hospital-squarelogo-1702516763132.png",
"searchQuery": "registered nurse",
"searchLocation": "Houston, TX (US)",
"position": 1,
"scrapedAt": "2026-10-27T16:44:11.034Z"
}

Pricing

Pay per event, with no monthly rental:

  • $0.30 per 1,000 jobs ($0.0003 per job saved). Description and company details are included at no extra cost.
  • $0.0005 per run start (per GB of memory; the default is 256 MB, so one start event).

Residential proxy traffic and compute are included. For example, 1,000 jobs with full details cost about $0.30. Duplicates are never charged. Set Maximum cost per run in the run options to cap what a run can spend; the Actor stops cleanly when it is reached.

Reliability and tests

  • Test results: 36/36 final test runs on the current build succeeded (36 runs, 3,674 jobs, every job charged exactly once). The runs covered US cities and states, nationwide and remote searches, the UK, Germany, France, Canada, India, Australia, the Netherlands, Singapore and Mexico, every filter (date posted, job type, remote, Easy Apply, minimum rating, minimum salary, seniority, radius, newest first), several keywords in one run, Glassdoor URL input, a location-only search and a search with no results (it ends with NO_DATA, not an error).
  • Blocking: Glassdoor blocked some residential IPs in most runs (typically 1-7 per run). The Actor switched to a fresh IP each time, and no run lost data.
  • Speed: median run time 8 s. 600 software engineer jobs in San Francisco with full details took 61 s. 1,500 jobs without details took 161 s.
  • Duplicates: jobs are de-duplicated by jobId within a run, and you only pay for unique jobs.

Limits and caveats

  • Glassdoor is behind Cloudflare. The Actor uses residential proxies and rotates IPs when one is blocked. A run only fails if Glassdoor blocks a long series of fresh IPs. This did not happen in our tests, but it can happen if Glassdoor changes its protection.
  • Page limit per search: see How many jobs can I get?. Very broad searches (e.g. "nurse" with no location) can return a few thousand unique jobs, not the full headline count.
  • Salary: salaryMin / salaryMax are the low and high ends Glassdoor shows. For employer-posted ranges they are the posted range. For Glassdoor estimates (salarySource: "glassdoor-estimate") they are Glassdoor's 10th and 90th percentile estimate. Some jobs have no salary at all.
  • Posted date is computed from Glassdoor's "x days ago", so it is accurate to the day. discoveredDate (with details) is the date Glassdoor first indexed the job.
  • applyUrl is Glassdoor's apply link. It sends the visitor to the employer or ATS page, or to Glassdoor Easy Apply. Glassdoor does not show the employer's direct URL.
  • Company fields (website, size, revenue ...) come from the employer's Glassdoor profile. Small employers often have no profile, so these are blank more often (see fill rates). Revenue is often "Unknown" on Glassdoor, and we leave it empty in that case.
  • Location matching: a free-text location goes through Glassdoor's own location search. The Actor picks the most popular place with exactly that name ("Toronto" -> Toronto, ON; "Springfield" -> Springfield, MO). If Glassdoor has no such name it uses the closest match and says so in locationNote ("Mexico City" -> Mexico; Glassdoor spells it "Ciudad de México"). Check resolvedLocation in OUTPUT, add a state or country ("Springfield, IL"), or paste a Glassdoor URL to pin an exact location.
  • Job descriptions are in the language of the posting.

FAQ

Do I need a Glassdoor account or my own proxy? No. Residential proxy is included.

Can I run it on a schedule? Yes. Use Apify Schedules, for example daily with Date posted = Last 24 hours, and send the dataset to Google Sheets, Slack, a webhook or your database with Apify integrations.

Can I call it as an API? Yes. Call the Actor via the Apify API, or use run-sync-get-dataset-items to get jobs back in one HTTP call. It also works from AI agents through the Apify MCP server.

Is scraping Glassdoor legal? The Actor only collects publicly available job postings. It does not log in and does not collect personal data about job seekers. You are responsible for how you use the data and for following applicable laws and Glassdoor's terms.