Glassdoor Reviews Scraper
Pricing
Pay per event
Glassdoor Reviews Scraper
Scrape employee reviews from Glassdoor. Extract ratings, pros, cons, job titles, and more for any company. Uses multiple filter strategies to collect diverse reviews.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Actor stats
0
Bookmarked
3
Total users
1
Monthly active users
11 hours ago
Last modified
Categories
Share
Scrape employee reviews from Glassdoor for any company. Extract ratings, pros, cons, job titles, recommendations, CEO approval, and more -- structured and ready for analysis.
What does Glassdoor Reviews Scraper do?
This actor scrapes employee reviews from Glassdoor company pages. It handles Glassdoor's aggressive anti-bot protection (Cloudflare Managed Challenge) using residential proxies and an anti-fingerprint browser. You can provide direct Glassdoor review URLs or simply type a company name -- the scraper will find the right page automatically.
Key features
- 🔗 Direct URL or company name -- paste a Glassdoor reviews URL or just type "Google", "Apple", etc.
- 🏢 Multiple companies -- scrape employee reviews for several companies in a single run
- 🔢 Configurable limits -- set how many reviews to extract per company (limited by Glassdoor's public access -- typically ~3 per company without login)
- 🔃 Sort control -- sort by newest or highest rating
- 📊 Full review data -- ratings, pros, cons, advice, job title, employment status, and sentiment indicators
- 🛡️ Anti-bot resilient -- automatic retry with fresh browser sessions, anti-fingerprint browser technology, and residential proxy rotation
Who is it for?
- 👩💼 HR professionals -- benchmark your employer brand against competitors, track employee sentiment trends, and identify retention risk factors before they become crises
- 🔍 Job seekers -- research prospective employers at scale, compare culture and compensation across target companies, and make data-driven career decisions
- 📈 Investors and analysts -- evaluate company culture and management quality as part of due diligence for investments, acquisitions, or equity research
- 🧑💻 Management consultants -- deliver client reports backed by quantitative employee sentiment data rather than anecdotal evidence
- 🎓 Academic researchers -- study workplace satisfaction, organizational behavior, and labor market dynamics across thousands of companies
- 🤝 Recruitment agencies -- identify companies with high turnover signals to prospect for new business, or validate client claims about company culture
Why use this scraper instead of doing it manually?
- ⚡ Scale: Manually copying Glassdoor reviews is slow -- 50 reviews would take over an hour. This scraper does it in minutes
- 🗂️ Structure: Get clean, structured JSON/CSV/Excel data ready for analysis instead of copy-pasting text
- 🕒 Automation: Schedule recurring runs to track review trends over time using Apify's built-in scheduling
- 🛡️ Anti-bot handling: Glassdoor uses aggressive Cloudflare protection that blocks simple scrapers. This actor handles it with residential proxies and anti-fingerprint browser technology
- 🔌 API access: Integrate review data directly into your applications, dashboards, or AI workflows
Data you can extract
| Field | Type | Description |
|---|---|---|
companyName | String | Name of the company |
companyUrl | String | Glassdoor reviews URL for the company |
reviewerTitle | String | Job title of the reviewer |
currentEmployee | Boolean/null | true if current employee, false if former, null if unknown |
rating | Number/null | Overall rating (1-5 stars) |
reviewDate | String | Date the review was posted |
headline | String | Review headline/summary |
pros | String | Positive aspects mentioned by the reviewer |
cons | String | Negative aspects mentioned by the reviewer |
advice | String | Advice to management (if provided) |
recommend | Boolean/null | Whether the reviewer recommends the company |
ceoApproval | Boolean/null | Whether the reviewer approves of the CEO |
businessOutlook | String | Business outlook: Positive, Negative, Neutral, or empty |
ratingWorkLifeBalance | Number/null | Work-life balance sub-rating (1-5) |
ratingCultureAndValues | Number/null | Culture & values sub-rating (1-5) |
ratingDiversityAndInclusion | Number/null | Diversity & inclusion sub-rating (1-5) |
ratingSeniorLeadership | Number/null | Senior leadership sub-rating (1-5) |
ratingCareerOpportunities | Number/null | Career opportunities sub-rating (1-5) |
ratingCompensationAndBenefits | Number/null | Compensation & benefits sub-rating (1-5) |
scrapedAt | String | ISO 8601 timestamp when the review was scraped |
How much does it cost to scrape Glassdoor reviews?
The scraper uses a pay-per-event pricing model. You only pay for what you use.
| Event | Free plan | Bronze | Silver | Gold | Platinum | Diamond | Description |
|---|---|---|---|---|---|---|---|
| Run started | $0.01 | $0.01 | $0.01 | $0.01 | $0.01 | $0.01 | One-time charge per run |
| Review scraped | $0.00345 | $0.003 | $0.00234 | $0.0018 | $0.0012 | $0.00084 | Per review extracted |
Cost examples (Free plan pricing)
| Scenario | Reviews | Estimated cost |
|---|---|---|
| Quick check (1 company) | ~3 | ~$0.02 |
| Competitor comparison (5 companies) | ~15 | ~$0.06 |
| Industry scan (10 companies) | ~30 | ~$0.11 |
| Large-scale research (50 companies) | ~150 | ~$0.53 |
Note: Glassdoor currently limits unauthenticated access to approximately 3 reviews per company. The scraper extracts all publicly visible reviews per company, so total output scales with the number of companies rather than the
maxReviewssetting.
Paid plan users pay less per review — the more you use Apify, the lower the per-review cost.
Free plan: Apify provides $5 in free monthly credits -- enough for many company lookups.
Note: Actual costs include Apify platform fees for compute and residential proxy usage. The estimates above cover only the actor's per-event charges.
How to scrape Glassdoor reviews step by step
- Go to the Glassdoor Reviews Scraper page on Apify Store
- Click Start to open the input configuration
- Enter one or more company URLs or names in the Company URLs or names field
- Set the Max reviews per company (default: 50, start small for testing)
- Choose the Sort order -- "Most recent" or "Highest rating"
- Click Start to begin scraping
- Wait for the run to complete (1-5 minutes depending on review count)
- Download your results from the Dataset tab in JSON, CSV, or Excel format
Input parameters
| Field | Type | Description | Default |
|---|---|---|---|
companyUrls | Array of strings | Glassdoor review URLs or company names | Required |
maxReviews | Integer | Max reviews per company (1-1000) | 50 |
sortBy | String | Sort order: newest or rating | newest |
proxy | Object | Proxy configuration (SHADER with RESIDENTIAL fallback) | Auto-configured |
Input example
{"companyUrls": ["https://www.glassdoor.com/Reviews/Google-Reviews-E9079.htm","Apple","Microsoft"],"maxReviews": 50,"sortBy": "newest"}
Accepted URL formats
The scraper accepts various Glassdoor URL formats:
- Review page URL:
https://www.glassdoor.com/Reviews/Google-Reviews-E9079.htm - Any Glassdoor URL with employer ID:
https://www.glassdoor.com/Overview/Working-at-Google-EI_IE9079.htm - Company name:
Google(the scraper will search Glassdoor and find the right page)
Output
Each review is output as a JSON object:
{"companyName": "Google","companyUrl": "https://www.glassdoor.com/Reviews/Google-Reviews-E9079.htm","reviewerTitle": "Software Engineer","currentEmployee": true,"rating": 4,"reviewDate": "Mar 15, 2026","headline": "Great company with room to grow","pros": "Excellent benefits, smart colleagues, interesting projects, great work-life balance","cons": "Can be bureaucratic, promotion process is slow, some teams have unclear direction","advice": "More transparency in the promotion process would help retain talent","recommend": true,"ceoApproval": true,"businessOutlook": "Positive","ratingWorkLifeBalance": 4,"ratingCultureAndValues": 4,"ratingDiversityAndInclusion": 4,"ratingSeniorLeadership": 3,"ratingCareerOpportunities": 4,"ratingCompensationAndBenefits": 5,"scrapedAt": "2026-03-27T12:00:00.000Z"}
Tips for best results
- 🐣 Start small: Set
maxReviewsto 10-20 for your first run to verify it works, then increase - 🔗 Use URLs when possible: Direct Glassdoor review URLs are faster and more reliable than company name search
- 💸 Monitor costs: Each employee review costs ~$0.003 in per-event charges plus platform compute costs. Large runs (500+ reviews) use more resources
- 🗓️ Schedule recurring runs: Use Apify's scheduling to track review trends weekly or monthly
- 🔗 Combine with other scrapers: Pair with Glassdoor Jobs Scraper for a complete company research dataset
- 🔄 Handle Cloudflare blocks: If a run fails due to Cloudflare challenges, wait a few minutes and retry -- protection levels fluctuate
Integrations
Connect Glassdoor Reviews Scraper with your existing tools and workflows:
- 📊 Google Sheets -- automatically export new employee reviews to a spreadsheet for team dashboards. Set up a recurring schedule to track sentiment trends weekly
- 💬 Slack / Microsoft Teams -- get notified when scraping completes so you can immediately review the data
- 🔔 Webhooks -- trigger downstream processing (sentiment analysis, database updates) when a run finishes
- 🔧 Zapier / Make -- build multi-step automations: scrape reviews, analyze sentiment with AI, update a CRM, and alert stakeholders
- 🖥️ Custom API -- access results programmatically for integration into internal tools, BI platforms, or AI pipelines
API usage
cURL
curl -X POST "https://api.apify.com/v2/acts/automation-lab~glassdoor-reviews-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"companyUrls": ["https://www.glassdoor.com/Reviews/Google-Reviews-E9079.htm"],"maxReviews": 50,"sortBy": "newest"}'
Node.js (JavaScript)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('automation-lab/glassdoor-reviews-scraper').call({companyUrls: ['https://www.glassdoor.com/Reviews/Google-Reviews-E9079.htm'],maxReviews: 50,sortBy: 'newest',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Scraped ${items.length} reviews`);for (const review of items) {console.log(`${review.rating}/5 - ${review.headline} (${review.reviewerTitle})`);}
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("automation-lab/glassdoor-reviews-scraper").call(run_input={"companyUrls": ["https://www.glassdoor.com/Reviews/Google-Reviews-E9079.htm"],"maxReviews": 50,"sortBy": "newest",})items = client.dataset(run["defaultDatasetId"]).list_items().itemsfor item in items:print(f"{item['companyName']}: {item['headline']} ({item['rating']}/5)")
Use with AI agents via MCP
Glassdoor Reviews Scraper is available as a tool for AI assistants that support the Model Context Protocol (MCP).
Add the Apify MCP server to your AI client — this gives you access to all Apify actors, including this one:
Setup for Claude Code
$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/glassdoor-reviews-scraper"
Setup for Claude Desktop, Cursor, or VS Code
Add this to your MCP config file:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/glassdoor-reviews-scraper"}}}
Your AI assistant will use OAuth to authenticate with your Apify account on first use.
Example prompts
- "Use automation-lab/glassdoor-reviews-scraper to get the latest 20 employee reviews for Google and summarize the main pros and cons"
- "Compare employee sentiment between Apple and Microsoft using their Glassdoor reviews"
- "Get 50 Glassdoor reviews for Amazon and identify the most common complaints about management"
Learn more in the Apify MCP documentation.
Legality
This actor scrapes only publicly available data from Glassdoor's website. No login credentials are used, and no private or user-specific data is accessed. The scraping complies with standard web scraping practices:
- Only publicly visible reviews are collected
- No account creation or login bypass is involved
- Data is accessed through a standard web browser (the same way any user would view it)
- The actor respects rate limits by processing pages sequentially with natural delays
Users are responsible for ensuring their use of the scraped data complies with applicable laws and Glassdoor's Terms of Service in their jurisdiction.
FAQ
Q: Why did my run fail with 0 reviews? A: Glassdoor uses aggressive Cloudflare anti-bot protection. If all retry attempts get blocked, the run completes with 0 results. This can happen when Cloudflare is in heightened protection mode. Try again after 15-30 minutes -- protection levels fluctuate throughout the day.
Q: Why are some fields empty (recommend, ceoApproval, businessOutlook)? A: In Glassdoor's current design, sentiment indicators (recommend, CEO approval, business outlook) are shown as page-level aggregate statistics rather than per-review data. These fields may be null for individual reviews.
Q: Can I scrape reviews in languages other than English? A: The scraper currently returns reviews in the default language shown on Glassdoor for the given URL. Most Glassdoor pages default to English. International Glassdoor sites (e.g., glassdoor.de) may return reviews in other languages.
Q: How many reviews can I scrape per company?
A: Glassdoor currently shows approximately 3 reviews per page for unauthenticated sessions and requires login to view additional pages. This means each company typically yields around 3 reviews per run. The maxReviews parameter still controls the upper limit, but actual output depends on what Glassdoor makes publicly available without authentication.
Q: Why does this scraper use residential proxies? A: Glassdoor uses Cloudflare Managed Challenge which blocks datacenter IP addresses. The scraper uses a tiered proxy strategy: it first tries SHADER proxies (cheaper) and automatically falls back to RESIDENTIAL proxies if Cloudflare blocks the request. This optimizes cost while maintaining reliability.
Technical details
Anti-bot handling
Glassdoor uses Cloudflare Managed Challenge to protect against automated access. This scraper:
- Uses a tiered proxy strategy -- SHADER proxies first for cost savings, with automatic fallback to RESIDENTIAL proxies
- Launches an anti-fingerprint browser (camoufox) when available, falling back to Chromium with stealth patches
- Rotates proxy sessions with fresh browser contexts per retry
- Detects Cloudflare challenge pages and automatically retries with new sessions
- Employs realistic browser fingerprints (viewport, locale, headers)
Pagination
Reviews are paginated at ~3 per page (Glassdoor's current layout for unauthenticated users). The scraper automatically navigates through pages until the requested number of reviews is collected or no more reviews are available.
Rate limiting
The scraper processes one page at a time with natural delays between requests. Each retry uses a completely new browser session to avoid session-based blocking.
Related scrapers
- Glassdoor Jobs Scraper -- scrape job listings from Glassdoor search results
- LinkedIn Jobs Enrichment -- enrich job listings with company details
- Google Jobs Scraper -- scrape job listings from Google Jobs