Glassdoor Company Reviews Scraper avatar

Glassdoor Company Reviews Scraper

Pricing

$2.50 / 1,000 review returneds

Go to Apify Store
Glassdoor Company Reviews Scraper

Glassdoor Company Reviews Scraper

Scrape Glassdoor company reviews and ratings. Per-review rows with overall rating, pros, cons, summary, job title, employment status, location, date, recommends and CEO approval, plus company overall rating and review count. Real browser beats Cloudflare; never charges blocked/empty runs.

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

2

Total users

1

Monthly active users

20 hours ago

Last modified

Share

Scrape company reviews and ratings from Glassdoor — one row per review, carrying the company context.

Glassdoor sits behind Cloudflare Bot Management (the Just a moment… interstitial), which is why plain HTTP scrapers get blocked instantly. This actor runs a real browser with anti-detection, reads reviews straight from Glassdoor's own Next.js __NEXT_DATA__ Apollo GraphQL cache, and rotates a fresh residential IP whenever a page is challenged — so it returns reviews or an honest BLOCKED, never silent-empty.

Input

FieldNotes
modesample (default) returns a few built-in example reviews instantly — no proxy, no charge — so you can preview the output shape for free. Switch to live to scrape real Glassdoor reviews.
companyUrlsGlassdoor reviews URLs, e.g. https://www.glassdoor.com/Reviews/Google-Reviews-E9079.htm. The employer id is read from the E{id} in the URL.
companyNamesCompany names to resolve to an employer first (e.g. Netflix) when you don't have the URL.
maxReviewsReviews to collect per company (paginates by 10s).
proxyConfigurationRESIDENTIAL proxy recommended (required to beat Cloudflare).

Quick start: the default sample mode lets you try the actor for free and see exactly what a review row looks like. When you're ready for real data, set mode to live and add a residential proxy.

Provide companyUrls, companyNames, or both. Submitting neither returns an uncharged BAD_INPUT diagnostic row (not a crashed run).

Output

One row per review, each carrying its company context:

  • Company: companyName, employerId, overallRating, reviewCount, companyUrl
  • Review: ratingOverall, summary, pros, cons, advice, jobTitle, employmentStatus, isCurrentJob, location, reviewDate, recommends, ceoApproval, businessOutlook, and sub-ratings (ratingWorkLifeBalance, ratingCultureAndValues, ratingCareerOpportunities, ratingCompensationAndBenefits, ratingSeniorLeadership, ratingDiversityAndInclusion).

Nullable fields: Glassdoor reviewers fill these in optionally, so most review-level fields can be null when the reviewer left them blank — advice, jobTitle, location, employmentStatus, isCurrentJob, recommends, ceoApproval, businessOutlook, and any of the sub-ratings. Every row always carries the company context plus at least one of summary / pros / cons / ratingOverall (rows with none of these are dropped, never charged).

Each successful review is charged as one review unit. Blocked, bad-input, or empty runs return a coded diagnostic row (BLOCKED / BAD_INPUT / NO_RESULTS, all with ok:false) and are not charged.

Notes

Data is read from Glassdoor's embedded GraphQL cache (props.pageProps.apolloCache), not brittle HTML selectors. Cloudflare challenges trigger a full browser + residential-IP rotation (up to 7 times) before giving up with a BLOCKED diagnostic.