Glassdoor Reviews Scraper - Pros, Cons & Sub-Ratings avatar

Glassdoor Reviews Scraper - Pros, Cons & Sub-Ratings

Under maintenance

Pricing

$2.50 / 1,000 review returneds

Go to Apify Store
Glassdoor Reviews Scraper - Pros, Cons & Sub-Ratings

Glassdoor Reviews Scraper - Pros, Cons & Sub-Ratings

Under maintenance

Scrape Glassdoor company reviews. Without a login you only get the first page of each company, so it works best with many companies and few reviews each. Rows have pros, cons, job title, location, rating and six sub-ratings. $2.50 per 1,000 reviews.

Pricing

$2.50 / 1,000 review returneds

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

2

Monthly active users

a day ago

Last modified

Share

Glassdoor Reviews Scraper: pros, cons and six sub-ratings per review

Give it Glassdoor company reviews URLs or plain company names and get one row per review: the summary line, the pros, the cons, the reviewer's job title and location, the overall star rating and six separate sub-ratings for things like work-life balance and pay.

Here is the part worth knowing before you plan around it. Without a Glassdoor login, only the first page of reviews is readable for each company. So this earns its keep across many companies with a few reviews each, not as a way to pull one employer's whole review history. Point it at 200 companies and you get a wide, shallow picture. Point it at one and you get a handful of rows.

InputGlassdoor company reviews URLs, or company names
OutputOne row per review
CeilingThe first page of reviews per company
Account neededNone, and there is nowhere to sign in
Price$2.50 per 1,000 reviews, flat on every plan

πŸ” What Glassdoor Reviews Scraper does

It opens each company's reviews page and reads the reviews off it. A URL carries the employer id in its -E<number>- part, so that route is exact. A name has to be looked up first, and Glassdoor's search decides which employer it means.

Each row carries both the company's own numbers and the individual review's. overallRating and reviewCount belong to the company. ratingOverall and the six sub-ratings belong to that one review. They sit next to each other, so read the field names rather than the column headings.

mode starts on sample. That is deliberate: it returns five built-in example rows instantly, free, so you can see the shape before spending anything. Nothing real happens until you switch it to live.

πŸ“₯ What you give it

{
"mode": "live",
"companyUrls": ["https://www.glassdoor.com/Reviews/Google-Reviews-E9079.htm"],
"maxReviews": 10
}
FieldDefaultWhat it is
modesamplesample returns five example rows free and touches nothing real. live does the actual work. Set it to live or you will get the demo.
companyUrlsnoneReviews URLs in the form .../Reviews/<Company>-Reviews-E<id>.htm. A URL in any other shape is skipped with a warning. The Console shows a Google URL as an example, but that is a prefill, so an API call has to send its own.
companyNamesnoneNames like Netflix or Spotify, for when you do not have the URL. Each is matched to the closest Glassdoor employer.
maxReviews100Per company, 1 to 2,000. Signed-out paging stops well before that, so this acts as a safety cap rather than a target.
notionConnectornoneOptional. Writes every delivered review into your Notion. Authorise a connector once under Settings, API and Integrations, MCP connectors, then pick it here.
notionParentIdnoneOptional. The Notion data source id to write into. Leave it empty and the pages are created privately in your workspace.
proxyConfigurationonOptional network setting. Leave it alone unless you want the run to leave through a network of your own, which is used exactly as you give it.

Send at least one of companyUrls or companyNames. Neither one gets you a BAD_INPUT row.

πŸ“€ What you get back

A real row from run zDcD1eM3TewzasS2W:

{
"ok": true,
"companyName": "Google",
"employerId": "9079",
"overallRating": 4.4,
"reviewCount": 52694,
"companyUrl": "https://www.glassdoor.com/Reviews/Google-Reviews-E9079.htm",
"reviewId": "105583915",
"ratingOverall": 4,
"summary": "Good work-life balance, but limited upward mobility",
"pros": "Cloud is a different animal. Still good work-life-balance, but still more hustle than people associate with Google",
"cons": "Not much mobility upwards for non-tech Entry-Mid level",
"advice": null,
"jobTitle": "Program Manager",
"employmentStatus": "REGULAR",
"isCurrentJob": false,
"lengthOfEmployment": 0,
"location": "New York, NY",
"reviewDate": "2026-09-14",
"reviewDateTime": "2026-09-14T19:14:15.143",
"recommends": "POSITIVE",
"ceoApproval": "APPROVE",
"businessOutlook": "NEUTRAL",
"ratingWorkLifeBalance": 4,
"ratingCultureAndValues": 5,
"ratingCareerOpportunities": 3,
"ratingCompensationAndBenefits": 4,
"ratingSeniorLeadership": 3,
"ratingDiversityAndInclusion": 4,
"countHelpful": 0
}
FieldWhat it is
overallRating, reviewCountThe company's average and total, repeated on every row from that company.
ratingOverallThis one review's star rating. Easy to mix up with the field above.
pros, cons, adviceThe three free-text boxes. advice is null whenever the reviewer left it empty, which is most of the time.
recommends, ceoApproval, businessOutlookPOSITIVE, NEUTRAL or NEGATIVE, and APPROVE for the CEO question.
isCurrentJob, lengthOfEmploymentWhether they still work there, and years served. 0 means under a year.
reviewIdStable. Use it to dedupe across runs.
The six rating… fieldsWork-life balance, culture and values, career opportunities, compensation and benefits, senior leadership, diversity and inclusion.

🧾 Reading the output

Three kinds of row land in the dataset.

RowHow to spot itCharged
A reviewok: true and a reviewIdyes
A sample rowsampleData: true and a _noticeno
A problemok: false and an errorCodeno
CodeWhat it means
BAD_INPUTYou sent neither companyUrls nor companyNames.
NO_RESULTSThe company resolved but no reviews came back off page one.
LOGIN_REQUIREDGlassdoor sent the page to its sign-in screen. Nothing on your side fixes it, and the run moves on to the next company.
BLOCKEDGlassdoor refused the automated visit after the run retried. This one ends the run rather than continuing.

The Console's Overview table hides pros and cons, which are the whole point, and in sample mode two of its columns read blank. Download the dataset as JSON, CSV or Excel, or switch the table to all fields.

▢️ How to run it

  1. Open Glassdoor Reviews Scraper and click Try for free.
  2. Leave Run mode on Sample for the first run and look at the five free rows.
  3. Switch Run mode to Live.
  4. Paste reviews URLs into Company reviews URLs, or type names into Company names.
  5. Set Max reviews per company, click Start, then download the dataset.

πŸ’° How much does it cost?

$2.50 per 1,000 reviews. Flat on every Apify plan, no volume tiers.

You pay per review row. The free sample rows, duplicate reviews and every diagnostic row cost nothing, and a company that returns no reviews is not billed.

πŸ’‘ What people use it for

  • Employer-brand benchmarking across a list of competitors, taking the latest few reviews from each.
  • Spotting which of the six sub-ratings drags a company's average down, then tracking it monthly.
  • Pulling the pros and cons text for a recruiting pitch, so the objections are answered before they are raised.
  • Feeding recent review text into a summariser to see what has changed since the last quarter.

🚧 What it does not do

  • No deep history. Page one per company is what a signed-out visitor can see, and there is no login option here. Plan around breadth, not depth.
  • No salaries, no interview reports, no job postings, no benefits pages, no photos. Reviews only.
  • A name can resolve to the wrong employer. The lookup takes Glassdoor's closest match, so a common or ambiguous name may land somewhere else. Use the reviews URL when it matters.
  • A refused page ends the run. Companies queued behind it are not attempted, so split a long list across several runs.
  • Live runs are not guaranteed. Glassdoor decides whether to serve an automated visit, and when it says no you get a BLOCKED row and no charge rather than partial data.
  • Rows are a snapshot. Reviews can be edited or removed, and a company's average moves.

🧭 Which employer research scraper do you need?

If you wantUse
Employee reviews with pros, cons and sub-ratingsThis one
Job postings from IndeedIndeed Jobs Scraper
Job postings from LinkedInLinkedIn Jobs Scraper
Remote-only job listingsRemotive Jobs Scraper
Customer reviews of a company rather than employee onesTrustpilot Scraper

❓ Questions people ask

Why did I only get three reviews? That is the first page for a signed-out visitor, and it is the honest ceiling. Add more companies rather than raising maxReviews.

Can I sign in to get more? No. There is no credential field, and there will not be one.

Where do I find the reviews URL? Search the company on Glassdoor, open its Reviews tab, and copy the address. It ends -Reviews-E<number>.htm.

Why is my first run full of example data? mode starts on sample. Switch it to live.

What happens when a company is blocked? You get an ok: false row naming it, you are not charged for it, and for BLOCKED the run stops there.

Is this legal? These are public reviews on public company pages. They are written by identifiable people, so GDPR and similar laws apply and you want a reason for collecting them. Apify's write-up on scraping and the law is a good starting point, and we are not lawyers.

πŸ†˜ If something breaks

Open the Issues tab on the actor page. Send the company URL or name and the run id. The errorCode on the diagnostic row usually names the problem by itself.