Glassdoor Job Scraper avatar

Glassdoor Job Scraper

Pricing

from $0.25 / 1,000 job-details

Go to Apify Store
Glassdoor Job Scraper

Glassdoor Job Scraper

Scrape Glassdoor job listings for a role and location. Get title, employer, location, salary range with its source, posting age and easy-apply flag, across as many pages as you need. Export to CSV, JSON or Excel, or schedule it.

Pricing

from $0.25 / 1,000 job-details

Rating

0.0

(0)

Developer

BonCross API

BonCross API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

What is Glassdoor Job Scraper?

Glassdoor Job Scraper gets you the job listings Glassdoor shows for a role and a place, each with its salary range and a label that says whether the employer published that salary or Glassdoor estimated it. The two are easy to mix up, and a benchmark built on the mix is wrong. Here you can keep them apart, or ask for employer-stated pay only.

Type a job title and a location, choose one of eight national Glassdoor sites, and decide whether you want the full advert and the employer's profile as well.

What you're getting:

  • Pay you can trust, because you know its source. Low, median and high figures with currency and period, plus salarySource on each row.
  • The employer behind the job. With full details on you get five Glassdoor ratings, size, revenue, industry, sector, headquarters and website on the same row as the advert.
  • About 900 jobs a minute with full details. Six searches of five pages returned 670 jobs in 42 to 47 seconds on 2 October 2026.
  • $0.30 per 1,000 jobs with full details on the Free plan, and $0.20 per 1,000 if listings are enough. No proxy to set up and no proxy charges.

BonCross Verified means we tested this actor against the live site before release and kept the record:

  • 23 of 23 live checks on its inputs and filters passed on 7 October 2026
  • 2 searches run the same day in Austin and New York: 60 jobs, none empty
  • Charges matched the rows: 1 start, 2 searches, 60 jobs

Read this before you use the pay

Many of Glassdoor's salary ranges are estimates. EMPLOYER_PROVIDED means the employer's own figure. ESTIMATED means the output of Glassdoor's model. On a 60-row London run it split 23 stated, 28 estimated and 9 with no salary at all.

For a salary benchmark, switch on "Only employer-stated pay". Don't present an estimate as a published salary.

What data can you extract from Glassdoor?

Every row has the listing fields:

FieldNotes
title, normalisedTitle💼 the listing title, and Glassdoor's normalised version
company, employerId🏢 the employer, and its id for joining to other data
location, locationType, countryId📍 where the job is (C city, S state, N country)
payMin, payMedian, payMax💷 the salary range for the role
payCurrency, payPeriode.g. GBP, ANNUAL
salarySourceEMPLOYER_PROVIDED or ESTIMATED
ageInDayshow long the listing has been up
isEasyApplyapply without leaving the site
isExpired, isSponsoredlisting state and whether it holds a paid slot
descriptionSnippetthe site's summary fragments
companyLogoemployer logo
searchwhich of your searches produced the row
url, id🔗 link to the listing and its id
scrapedAtwhen the row was collected

With "Fetch full job details" on, each row adds:

FieldNotes
description, descriptionHtml📄 the full advert as plain text, and (optionally) its original HTML
discoveredAtwhen Glassdoor first found the listing
jobTypes, remoteWorkTypes, skillse.g. Full-time; the remote-work arrangement Glassdoor tags on the job, where it tags one; the skills listed against the job
lat, lng, city, region, countrythe job's map position and address parts
employerRating, employerRatingCulture, employerRatingWorkLife, employerRatingCareer, employerRatingPay⭐ the employer's Glassdoor ratings, out of 5
employerSize, employerRevenue, employerType, employerFoundedemployer profile
employerWebsite, employerHeadquarters, employerIndustry, employerSectoremployer profile

How to scrape Glassdoor jobs

  1. Create a free Apify account and open Glassdoor Job Scraper.
  2. Type the role you're after and a location. Leave the location empty to search the whole country.
  3. Put any further keywords under "More searches".
  4. Choose how many pages you want from each search. A page is 30 listings.
  5. Turn on "Fetch full job details" if you want the advert and the employer profile.
  6. Press Start, then download the rows as Excel, CSV, JSON, XML or HTML.

⬇️ Input

The one thing you must give is a keyword. A location narrows it.

Depth is set in pages here, not rows: "Max pages per search" defaults to 5 (150 listings) and goes up to 30. "Max rows in total" caps the run across all your searches, and 0 means no ceiling.

InputTypeNotes
keywordstringJob title or keyword
locationstringCity or area. Empty searches the whole country
searchesarrayMore keywords, each using the location above
maxPagesPerSearchintegerPages per search, 30 listings a page. Default 5, maximum 30. A search whose filters keep nothing stops after 5 pages in a row with no job kept
maxItemsintegerCeiling on rows for the whole run, across every search. Default 0, no ceiling
fetchDetailsbooleanOpen each job for the full advert and employer profile. Default off
includeDescriptionbooleanKeep the advert as plain text when details are fetched. Default on
includeDescriptionHtmlbooleanAlso keep the advert's original HTML. Default off
excludeExpiredbooleanDrop expired listings. Default on
excludeSponsoredbooleanDrop paid-slot listings. Default off
onlyEasyApplybooleanKeep only apply-on-site listings
onlyEmployerStatedPaybooleanKeep only listings where the employer published the salary
minPayintegerDrop listings whose top of range is below this, and listings with no pay. 0 keeps everything
maxAgeInDaysintegerDrop listings older than N days. 0 keeps everything
domainstringWhich national Glassdoor site to search. Default www.glassdoor.co.uk

Paralegal jobs in London, posted in the last two weeks

{
"keyword": "paralegal",
"location": "London",
"maxPagesPerSearch": 5,
"maxAgeInDays": 14,
"domain": "www.glassdoor.co.uk"
}

Several roles in one run, with full adverts and only employer-stated pay

{
"keyword": "paralegal",
"searches": ["legal secretary", "conveyancer"],
"location": "Manchester",
"maxPagesPerSearch": 2,
"maxItems": 150,
"fetchDetails": true,
"onlyEmployerStatedPay": true
}

For developers

  • Rows are de-duplicated by listing id across the whole run, searches included. Pages after the first hold new listings, not repeats.
  • A search whose filters keep nothing stops after 5 pages in a row with no job kept.
  • Filters run on the listing before details are fetched, and a listing they drop isn't charged. excludeExpired is applied again after the detail fetch, because the full record is where the expired flag is reliable. A job fetched with details and then dropped as expired is billed job-detail.
  • minPay drops listings whose top of range is below your figure, and listings with no pay.
  • Several searches are worked on at once, which is why adding searches adds little time.
  • If Apify moves a run to another server part-way through, it carries on from where it stopped. Nothing is returned or billed a second time.

⬆️ Output

Each listing is one row. The Overview view shows title, employer, location, pay range, salary source, age and the easy-apply flag.

{
"id": "1010260150053",
"title": "Court of Protection Paralegal - London Bridge",
"normalisedTitle": "paralegal",
"company": "Anthony Gold Solicitors",
"employerId": 768388,
"location": "London, England",
"locationType": "C",
"countryId": 2,
"url": "https://www.glassdoor.co.uk/job-listing/court-of-protection-paralegal-london-bridge-anthony-gold-JV_IC2671300_KO0,43_KE44,56.htm?jl=1010260150053",
"ageInDays": 14,
"isEasyApply": false,
"isExpired": false,
"isSponsored": false,
"salarySource": "ESTIMATED",
"payCurrency": "GBP",
"payPeriod": "ANNUAL",
"payMin": 29250,
"payMedian": 31582,
"payMax": 34100,
"companyLogo": "https://media.glassdoor.com/sql/768388/anthony-gold-squarelogo-1541512638929.png",
"descriptionSnippet": "Manage professionally and confidentially, written and telephone correspondence with clients…",
"search": "paralegal in London",
"scrapedAt": "2026-09-26T11:01:47.445Z",
"description": "…",
"discoveredAt": "2026-09-11T00:00:00",
"skills": ["Microsoft Word", "Legal drafting", "Communication skills"],
"lat": 51.5,
"lng": -0.1166667,
"city": "London, England",
"region": "England",
"country": "United Kingdom",
"employerRating": 3.5,
"employerSize": "51 to 200 Employees",
"employerIndustry": "Legal",
"employerWebsite": "https://www.anthonygold.co.uk"
}

A search that fails writes one row with search and error in place of listings. A job whose full details couldn't be fetched keeps its listing fields and gains detailError.

How many listings can you get, and how fast?

A search tells you how many listings it has: a London paralegal search reported 826. You can take up to 30 pages of 30 from each search.

London searches, whole runs on Apify, 2 October 2026:

RunRowsTime
1 page, listings only302 to 3 seconds
3 pages, listings only903 seconds
4 searches × 3 pages, listings only2814.4 seconds
1 page, full details303 to 5 seconds
6 searches × 5 pages, full details669 to 67042 to 47 seconds

How complete are the rows? On a 60-row listings run, title, employer, location, age, flags and snippet were on every row, the salary range on 51 of 60 and the logo on 46 of 60. With full details (30 rows), the advert, coordinates and address were on all 30, the employer ratings on 25 and the industry on 22.

How much does it cost to scrape Glassdoor?

EventFree planStarterScaleBusiness
actor-start, per run$0.001$0.001$0.001$0.001
search-run, per search that returned its first page$0$0$0$0
job-detail, per job written with its full details, or fetched with details and then dropped as expired$0.0003$0.00028$0.00026$0.00025
job-listed, per listing row written without details (details off, or a job whose details could not be fetched)$0.0002$0.0002$0.0002$0.0002

Enterprise plans pay the Business price.

$0.30 per 1,000 jobs with full details on the Free plan and $0.25 on Business. Listing-only rows are $0.20 per 1,000 on every plan. A job is billed one event or the other, never both. Platform usage and proxy usage are included.

  • Six searches of five pages with full details, 670 jobs: $0.001 + 670 × $0.0003 = $0.202 ($0.169 on Business).
  • The same run listing-only: $0.001 + 670 × $0.0002 = $0.135 on every plan.

Listings dropped by a filter before details are fetched aren't charged, and neither are error rows.

For half as much again as the listing price you get the advert, the coordinates and the employer's ratings, so we'd turn details on unless you only need titles and pay.

One search of five pages with details costs about $0.046. The $5 of credits in Apify's Free plan each month pays for about 108 of those, or roughly 16,000 jobs.

Limitations

  • Job listings only. Company reviews, company salary pages and employer profile pages are separate products on Glassdoor and aren't covered.
  • The full advert needs "Fetch full job details". Without it you get the site's summary fragments. Some adverts arrive already shortened by the employer's feed.
  • A location search can include remote and nationwide listings beside local ones, as Glassdoor's own results do. If a place name can't be matched, that search runs across the whole country and the run log says so.
  • employerId is 0 on some listings, typically agency postings, so it isn't always usable as a join key.
  • The sponsored flag is Glassdoor's, and it varies. On some days the UK site has marked its whole result set as sponsored, which leaves nothing after "Exclude sponsored listings".
  • The expired flag is only reliable with full details. The listing rarely marks a job expired. The full record does.
  • Two of the eight sites are tested. The UK site and glassdoor.com have been exercised in our checks. The other six national sites are offered but unverified.
  • Pay figures are in the currency of the national site you choose.

FAQ

Is the salary the employer's figure or Glassdoor's estimate?

It can be either, and salarySource tells you which on each row. "Only employer-stated pay" keeps just the published ones.

How do I tell whether a job is still open?

Run with "Fetch full job details" on and read isExpired. With details on, the flag comes from the job's own record, which is the one to trust for monitoring.

How do I get only fresh listings?

Set "Maximum age in days". The first example keeps the last two weeks. On a daily schedule, 1 or 2 days is enough.

Will I see the same job twice if two of my searches find it?

You shouldn't. Rows are de-duplicated by listing id across the run.

Why did "Exclude sponsored listings" return nothing?

Glassdoor sometimes marks an entire result set as sponsored. On those days the filter removes all of it. Turn the filter off and use isSponsored in the rows.

The eight Glassdoor sites in the "Glassdoor site" list: the UK, the US (glassdoor.com), Canada, Australia, Ireland, Germany, France and the Netherlands. The site you choose sets the language and the currency.

Do I need a proxy or a Glassdoor account?

No account, no login, and no proxy to arrange. There are no proxy charges either.

These are job listings Glassdoor shows to any visitor. Gathering public data is generally lawful in the UK and EU, and the responsibility for how you use it is yours, including under UK GDPR where a record identifies a person.

Benchmarks, monitors and code

For a pay benchmark, schedule a weekly run per role with employer-stated pay only and send the dataset to Google Sheets or Airbyte. For hiring-market tracking, keep ageInDays and discoveredAt and you can see how long listings stay up. Slack, Zapier, Make and webhooks are there when a run should trigger something.

In code, Apify's run-sync-get-dataset-items endpoint runs the actor and returns the rows in one call. Use apify-client from Python or JavaScript. The API tab on the actor's page has the reference with your token already in it.

An AI agent connected to the Apify MCP server (https://mcp.apify.com) can call the actor as a tool and answer questions like "who is hiring paralegals in London, and what do the stated salaries look like?".

More from BonCross

Your feedback

If a salary is labelled with the wrong source, or one of the national sites misbehaves for you, tell us on the Issues tab in Apify Console. Reports about the six sites we haven't verified are especially welcome, and we read all of them.