Glassdoor Reviews Scraper
Pricing
from $10.00 / 1,000 glassdoor review scrapeds
Glassdoor Reviews Scraper
Scrape public Glassdoor employee reviews for company reputation research. Extract ratings, pros, cons, job title, employment status, dates, employer replies, and company context in structured JSON for HR analytics, competitive intelligence, SEO, and AI agents. MCP/API-ready.
Pricing
from $10.00 / 1,000 glassdoor review scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
What is Glassdoor Reviews Scraper?
Glassdoor Reviews Scraper extracts public employee reviews from Glassdoor company review pages into one dataset row per review. Each row returns the company name, overall company rating and review total, the review title, pros and cons text, review date, the reviewer's role line, a link to the review, and any sub-ratings, recommendation signals and employer replies that Glassdoor shows on the page. HR analysts, employer-brand teams, recruiters, investors researching culture and AI agents use it to turn what employees write about a company into structured employee-sentiment data.
Why employer-brand and HR teams use it
- Pros and cons as text.
prosandconshold the review body, ready for theme tagging or sentiment scoring. - Company context on every row.
companyName,companyRatingandcompanyReviewCountlet you compare employers side by side. - Two ways in. Paste Glassdoor review page URLs, or list company names and let the Actor find each review page.
- Recent or popular first.
sortBypulls the newest feedback for monitoring, or the most helpful reviews for a culture read. - Concise or detailed rows.
responseFormat: "concise"keeps the core fields for AI agents;detailedadds every available field. - Honest run outcomes. Every run writes
OUTPUTandRUN_SUMMARYwith anoutcomeand a plain message. If Glassdoor shows a security check on every page and no review is saved, the run ends as failed withUPSTREAM_FAILED, no dataset rows and no review charges.
Best fit for this Actor
- Best fit for reputation research on specific employers, starting from their Glassdoor
/Reviews/...-Reviews-E....htmpage. - Use direct review URLs for the most predictable runs, and
companyNameswhen you only know the company. - Designed for public review content; each row is one review.
- When you also want the open roles at the same companies, continue with Glassdoor Jobs Scraper and join on
companyName.
Example workflow: a quarterly employer-brand check
An employer-brand lead at a software company starts with the Glassdoor review pages of her company and three competitors. She pastes them into startUrls with sortBy: "recent", maxReviewsPerCompany: 25 and responseFormat: "detailed". The dataset returns rows with companyName, reviewTitle, pros, cons and reviewDate. She exports them, tags recurring themes such as growth, workload and management, then compares how often each theme appears per company. She schedules the same input each quarter so new feedback lands in the next report.
Input
{"startUrls": [{ "url": "https://www.glassdoor.com/Reviews/Apify-Reviews-E3100324.htm" }],"maxReviewsPerCompany": 25,"maxResults": 50,"sortBy": "recent","includeSubRatings": true,"includeEmployerResponses": true,"responseFormat": "detailed"}
Find review pages by company name:
{"companyNames": ["Apify", "OpenAI"],"maxReviewsPerCompany": 10,"maxResults": 20,"responseFormat": "concise"}
| Field | Type | What it controls |
|---|---|---|
startUrls | array | Glassdoor company review URLs such as https://www.glassdoor.com/Reviews/Apify-Reviews-E3100324.htm. |
companyNames | array of strings | Company names to look up on Glassdoor first. |
maxReviewsPerCompany | integer | Review rows per company, 1 to 1,000. Default 25. |
maxResults | integer | Review rows across the whole run, 1 to 5,000. Default 50. |
sortBy | string | recent, popular or default. Default recent. |
includeSubRatings | boolean | Add culture, compensation, career, work-life and management ratings when shown. Default true. |
includeEmployerResponses | boolean | Add the employer's public reply when shown. Default true. |
responseFormat | string | concise core fields or detailed full rows. Default detailed. |
debug | boolean | Save page snapshots for troubleshooting. Default false. |
proxyConfiguration | object | Proxy settings. Default Apify Residential, US. |
Output
One row per review. A real concise row (pros and cons shortened):
{"recordType": "review","companyName": "Apify","companyUrl": "https://www.glassdoor.com/Reviews/Apify-Reviews-E3100324.htm","companyRating": 4.9,"companyReviewCount": 40,"reviewId": "105560498","reviewUrl": "https://www.glassdoor.com/Reviews/Employee-Review-Apify-E3100324-RVW105560498.htm","rating": null,"reviewTitle": "Great culture and growth, but can feel overwhelming","pros": "The company culture is amazing. Apify is progressing and growing rapidly... There are great opportunities for career growth.","cons": "Sometimes it can feel like you're struggling to keep up...","adviceToManagement": null,"reviewDate": "Sep 12, 2026","employmentStatus": null,"jobTitle": "less than 1 year Prague Sep 12","location": null,"recommendToFriend": null,"businessOutlook": null,"ceoApproval": null,"subRatings": null,"employerResponse": null,"sourceUrl": "https://www.glassdoor.com/Reviews/Apify-Reviews-E3100324.htm","scrapedAt": "2026-10-01T12:40:48.688Z","diagnosticStatus": null,"diagnosticMessage": null}
| Field | What it contains |
|---|---|
recordType | review for review rows, diagnostic for free run notes on empty or invalid-input runs |
companyName, companyUrl, companyRating, companyReviewCount | Company context from the review page |
reviewId, reviewUrl, reviewTitle, reviewDate | Review identity, link, headline and date |
pros, cons | The review body |
jobTitle | The reviewer's role line as shown on the card, which can include tenure and city |
rating, adviceToManagement, employmentStatus, location | Filled when Glassdoor shows them on the page |
recommendToFriend, businessOutlook, ceoApproval | Filled when Glassdoor shows them on the page |
subRatings, employerResponse | Filled when shown and the matching toggle is on |
sourceUrl, scrapedAt | The page read and the collection time |
diagnosticStatus, diagnosticMessage | Explanation on diagnostic rows |
Every run also writes OUTPUT and RUN_SUMMARY to the key-value store. Their outcome field is COMPLETE, PARTIAL (some reviews saved, some pages blocked), VALID_EMPTY (pages loaded but held no reviews), INVALID_INPUT or UPSTREAM_FAILED (Glassdoor blocked every page, so the run fails).
Pricing
This Actor uses Pay per event plus Apify platform usage. You pay one Glassdoor review scraped event for each review row saved and one Actor Start event per run, and Apify platform usage for the browser and residential proxy is billed alongside. The live Pricing tab on this page shows the current event prices.
Worked example in words: four companies with maxReviewsPerCompany: 25 and maxResults: 100 save up to one hundred rows, so the run costs at most that many review events, one start event and its platform usage. maxResults is a hard ceiling, and the run logs its maximum event cost at the start. Diagnostic rows are free, and a run that saves no reviews makes no review charges; only the start event and platform usage apply. Each review is saved and charged once: partial copies of a review that Glassdoor repeats inside the same review card, and page summary boxes that quote review snippets, are dropped before any charge (OUTPUT.duplicateRowsSkipped and OUTPUT.nonReviewRowsSkipped count them).
Use with AI agents (MCP)
Connect the Actor to an MCP client through Apify MCP and ask:
Collect the most recent Glassdoor reviews for Apify, then summarize the top themes in pros and cons with one quote each and the review link.
Agent checklist:
- Pass the review page in
startUrlsand setresponseFormat: "concise"to keep context small. - Read rows with
get-dataset-items; keep rows whererecordTypeisreview. - Cite
reviewUrlandreviewDateas provenance for each quote. - Check
OUTPUT.outcome:UPSTREAM_FAILEDmeans Glassdoor blocked every page, so retry later instead of reporting "no reviews". - Cost scope: one review event per saved row, capped by
maxResults.
API example
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~glassdoor-reviews-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"startUrls": [{"url": "https://www.glassdoor.com/Reviews/Apify-Reviews-E3100324.htm"}], "maxResults": 10, "responseFormat": "concise"}'
Related employer research tools
| Your next step | Use | Why |
|---|---|---|
| When you want the same companies' open roles | Glassdoor Jobs Scraper | Job listings to pair with sentiment |
| When you research employers in German-speaking markets | Kununu Reviews Scraper | Employee reviews from Kununu |
Best results
| Starting situation | Helpful action | Expected outcome |
|---|---|---|
| You know the company | Use its /Reviews/...-Reviews-E....htm URL in startUrls | The most predictable runs |
| Monitoring new feedback | sortBy: "recent" on a schedule | The latest reviews each run |
| Rows for an LLM | responseFormat: "concise" | Compact review rows |
| Clean review set | Keep rows with recordType review | One row per distinct review; repeated partial copies are removed before billing |
The run fails with outcome: UPSTREAM_FAILED | Glassdoor showed a security check on every page; run again later with the default residential proxy | Review rows once the pages show reviews |
A diagnostic row with diagnosticStatus: empty appears | Check that the URL is a /Reviews/...-Reviews-E....htm page with public reviews | Review rows from the right page |
Builder's note
I found that employer research almost always comes down to what people praise and what they push back on, so I put pros and cons at the center of every row and kept the company context beside them. A review page sometimes shows a security check instead of reviews, so every run states its outcome: a run that saves nothing because of a block ends as failed with the reason in OUTPUT, which is more useful to a reviewer or an agent than an unexplained empty dataset.
FAQ
Do I need a Glassdoor account?
No. The Actor reads public Glassdoor review pages.
Does it collect salaries or interview reports?
The Actor focuses on employee reviews. For job listings, use the Glassdoor Jobs Scraper linked above.
Why are some fields empty?
Glassdoor shows different details on different review cards. Fields such as rating, employmentStatus or subRatings are filled when the page shows them.
Responsible use
This Actor collects public employee reviews from Glassdoor. Review text can contain personal details and is subject to Glassdoor's terms, copyright and privacy law, so use it for aggregate analysis, quote briefly with attribution, and respect applicable laws such as the GDPR. Glassdoor is a trademark of its owner; this independent Actor is not affiliated with or endorsed by Glassdoor.