Glassdoor Reviews Scraper - Pros, Cons & Sub-Ratings
Under maintenancePricing
$2.50 / 1,000 review returneds
Glassdoor Reviews Scraper - Pros, Cons & Sub-Ratings
Under maintenanceScrape 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
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
2
Monthly active users
a day ago
Last modified
Categories
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.
| Input | Glassdoor company reviews URLs, or company names |
| Output | One row per review |
| Ceiling | The first page of reviews per company |
| Account needed | None, 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}
| Field | Default | What it is |
|---|---|---|
mode | sample | sample returns five example rows free and touches nothing real. live does the actual work. Set it to live or you will get the demo. |
companyUrls | none | Reviews 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. |
companyNames | none | Names like Netflix or Spotify, for when you do not have the URL. Each is matched to the closest Glassdoor employer. |
maxReviews | 100 | Per company, 1 to 2,000. Signed-out paging stops well before that, so this acts as a safety cap rather than a target. |
notionConnector | none | Optional. Writes every delivered review into your Notion. Authorise a connector once under Settings, API and Integrations, MCP connectors, then pick it here. |
notionParentId | none | Optional. The Notion data source id to write into. Leave it empty and the pages are created privately in your workspace. |
proxyConfiguration | on | Optional 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}
| Field | What it is |
|---|---|
overallRating, reviewCount | The company's average and total, repeated on every row from that company. |
ratingOverall | This one review's star rating. Easy to mix up with the field above. |
pros, cons, advice | The three free-text boxes. advice is null whenever the reviewer left it empty, which is most of the time. |
recommends, ceoApproval, businessOutlook | POSITIVE, NEUTRAL or NEGATIVE, and APPROVE for the CEO question. |
isCurrentJob, lengthOfEmployment | Whether they still work there, and years served. 0 means under a year. |
reviewId | Stable. Use it to dedupe across runs. |
The six rating⦠fields | Work-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.
| Row | How to spot it | Charged |
|---|---|---|
| A review | ok: true and a reviewId | yes |
| A sample row | sampleData: true and a _notice | no |
| A problem | ok: false and an errorCode | no |
| Code | What it means |
|---|---|
BAD_INPUT | You sent neither companyUrls nor companyNames. |
NO_RESULTS | The company resolved but no reviews came back off page one. |
LOGIN_REQUIRED | Glassdoor sent the page to its sign-in screen. Nothing on your side fixes it, and the run moves on to the next company. |
BLOCKED | Glassdoor 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
- Open Glassdoor Reviews Scraper and click Try for free.
- Leave Run mode on Sample for the first run and look at the five free rows.
- Switch Run mode to Live.
- Paste reviews URLs into Company reviews URLs, or type names into Company names.
- 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
BLOCKEDrow 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 want | Use |
|---|---|
| Employee reviews with pros, cons and sub-ratings | This one |
| Job postings from Indeed | Indeed Jobs Scraper |
| Job postings from LinkedIn | LinkedIn Jobs Scraper |
| Remote-only job listings | Remotive Jobs Scraper |
| Customer reviews of a company rather than employee ones | Trustpilot 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.