Glassdoor Scraper — Reviews, Salaries, Jobs & Interviews
Pricing
from $2.00 / 1,000 company review rows
Glassdoor Scraper — Reviews, Salaries, Jobs & Interviews
Scrape Glassdoor at scale: company search, overview, reviews, salaries, interviews, jobs & salary estimates. 9 operations, one clean JSON dataset. Built for HR-tech, employer branding, recruiting intel and compensation benchmarking. The complete employer-intelligence bundle.
Glassdoor Scraper — Reviews, Salaries, Jobs & Interviews 🏢
🎉 The complete Glassdoor employer-intelligence bundle — reviews, salaries, interviews, jobs & company overviews in ONE actor
9 operations, one clean dataset. Built for HR-tech, employer branding, recruiting intelligence and compensation benchmarking.
📋 Overview
Most "Glassdoor scrapers" only pull job listings. This one pulls the whole employer story — company reviews, salaries, interviews, jobs, and full company profiles — so you can benchmark employer brand, build compensation bands, and research hiring funnels from a single, query-ready dataset.
Why teams choose this Glassdoor scraper:
- ✅ 9 operations in one actor: company search, overview, reviews, company jobs, salaries (role lookup), salaries (bulk), interviews, job search, and salary estimation — no stitching multiple tools together.
- ⚡ Full curated interview data: questions, difficulty, outcome, and process descriptions — a data set most Glassdoor scrapers simply don't expose.
- 🎯 Dual salary engines: a targeted single-role lookup and a bulk company-wide scan with base / cash-bonus / stock-bonus min, median, and max for every role.
- 💰 Pay-per-result, no monthly wall: pay only for the rows you scrape — no flat $32/mo subscription to evaluate or run small jobs.
- 💎 Clean, query-ready rows: curated camelCase fields (companyId, medianBaseSalary, reviewSummary, difficulty…) with the raw upstream fields spread alongside.
- ✨ 14 regional Glassdoor sites: US, UK, Canada, Germany, France, India, Australia and more.
✨ Features
- 🔎 Company Search — find any employer by name or keyword and get the
companyIdthat powers every other operation. - 🏢 Company Overview — full employer profile: overall rating, sub-ratings (culture, work-life balance, diversity, senior management), CEO, size, HQ, revenue, and competitors.
- ⭐ Company Reviews — paginated employee reviews with pros, cons, star rating, employment status, and current-vs-former flag.
- 💼 Company Jobs — all jobs posted by a specific company (~40 per page) with salary ranges and sponsorship flags.
- 💵 Company Salaries (role lookup) — targeted compensation for a single role: base, additional pay, and total with confidence level.
- 📊 Company Salaries (bulk) — paginated comp across all roles at a company with base, cash-bonus, and stock-bonus breakdowns.
- 🗣️ Company Interviews — interview questions, difficulty, outcome, duration, and full process descriptions.
- 🔍 Job Search — search jobs across Glassdoor by query + location with remote, easy-apply, and min-rating filters.
- 📈 Salary Estimation — salary estimate for any role + location (no company required), by experience band.
- 🛡️ Resilient by design — automatic retries through Glassdoor's anti-bot layer so transient drops don't fail your run.
🎬 Quick Start
Pick one operation per run, set the required inputs, and run. Each run produces one clean dataset matching the chosen mode. Start with Company Search to discover a companyId, then drill into reviews, salaries, jobs, and interviews.
curl -X POST "https://api.apify.com/v2/acts/sian.agency~glassdoor-data-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"operation": "companyReviews", "companyId": "1138", "maxPages": 3}'
🚀 Getting Started (3 Simple Steps)
Step 1: Find the company
Run Company Search with a query like apple — the result rows include a companyId (e.g. 1138).
Step 2: Pick your operation
Choose what you want: reviews, salaries, interviews, jobs, or the full overview. Set companyId (and a jobTitle or location if the operation needs it).
Step 3: Run and export
Run the actor and export the dataset as JSON, CSV, or Excel.
That's it! In under a minute, you'll have:
- Clean, structured employer-intelligence rows
- Curated camelCase fields ready for analysis
- An HTML run summary in the key-value store
📥 Input Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| operation | string | Yes | One of: companySearch, companyOverview, companyReviews, companyJobs, companySalaries, companySalariesV2, companyInterviews, jobSearch, salaryEstimation |
| query | string | For search ops | Company name (Company Search) or job query (Job Search) |
| companyId | string | For company ops | Glassdoor company ID (e.g. 1138 for Apple) |
| jobTitle | string | For salary/role ops | Job title to look up compensation for |
| location | string | For Job Search & Salary Estimation | Free-form location (e.g. New York) |
| locationType | string | No | ANY, CITY, STATE, or COUNTRY |
| domain | string | No | Glassdoor regional site (default www.glassdoor.com) |
| reviewSort / jobSort / salarySort / interviewSort | string | No | Sort order per operation |
| maxPages | integer | No | Pages to fetch for paginated ops (default 5, max 50) |
Example — Company Reviews:
{"operation": "companyReviews","companyId": "1138","reviewSort": "MOST_RECENT","maxPages": 3}
Example — Bulk Salaries:
{"operation": "companySalariesV2","companyId": "1138","salarySort": "MOST_SALARIES","maxPages": 5}
📤 Output
Results are saved to the Apify dataset as flat, query-ready rows. Filter by _operation to split modes. Fields vary by operation; the most useful include:
| Field | Type | Description |
|---|---|---|
| companyId | string | Glassdoor company ID |
| companyName | string | Employer name |
| rating | number | Overall Glassdoor rating |
| reviewSummary / pros / cons | string | Review headline + pros + cons |
| reviewRating | integer | Star rating of a review |
| employmentStatus | string | Reviewer status (REGULAR, INTERN, …) |
| medianSalary / medianBaseSalary | number | Median total pay / median base salary |
| medianCashBonus / medianStockBonus | number | Median cash + stock bonus (bulk salaries) |
| difficulty / outcome | string | Interview difficulty + outcome |
| questions | array | Interview questions |
| jobId / jobTitle / jobLink | string | Job listing identifiers + link |
| salaryMin / salaryMedian / salaryMax | number | Job salary range |
Example — review row:
{"_operation": "companyReviews","companyId": "1138","companyName": "Apple","reviewSummary": "Good place to work while in college","pros": "Good culture toward employees","cons": "Pay vs workload not competitive","reviewRating": 3,"employmentStatus": "REGULAR","isCurrentEmployee": false,"location": "Trumbull, CT","reviewLink": "https://www.glassdoor.com/Reviews/Employee-Review--RVW104260276.htm","status": "success"}
💼 Use Cases & Examples
1. Employer Branding Audit
Employer-branding teams benchmarking their reputation against competitors.
Input: Company Overview + Company Reviews for your company and 3 rivals. Output: Overall and sub-ratings (culture, work-life balance, diversity, senior management) plus paginated reviews. Use: Quantify your employer brand, track sentiment over time, and find the themes driving negative reviews.
2. Compensation Benchmarking
Comp & rewards teams building pay bands by role and location.
Input: Company Salaries (bulk) for target companies + Salary Estimation for market context. Output: Base, cash-bonus, and stock-bonus min/median/max per role. Use: Calibrate offers, defend pay equity, and benchmark total comp against the market.
3. Recruiting Intelligence
Talent-acquisition analysts tracking competitor hiring.
Input: Company Jobs + Job Search filtered by function, location, and recency. Output: Open roles, salary ranges, sponsorship flags, and posting age. Use: Spot competitor expansion, monitor hiring velocity, and map salary ranges in your segment.
4. Interview Prep & Talent Research
Career-coaching and L&D teams building interview-prep content.
Input: Company Interviews for target employers and roles. Output: Interview questions, difficulty, outcome, and process descriptions. Use: Build candidate-prep material, analyze offer rates, and understand hiring funnels.
5. HR-Tech Data Enrichment
Product teams enriching ATS, people-analytics, or voice-of-employee tools.
Input: Any operation, one per run. Output: Clean, structured, query-ready rows. Use: Pipe employer reviews, ratings, and comp data straight into your product.
🔗 Integration Examples
JavaScript / Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('sian.agency/glassdoor-data-scraper').call({operation: 'companyReviews',companyId: '1138',maxPages: 3,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('sian.agency/glassdoor-data-scraper').call(run_input={'operation': 'companySalariesV2', 'companyId': '1138', 'maxPages': 5})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item)
cURL
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~glassdoor-data-scraper/runs?token=YOUR_TOKEN' \-H 'Content-Type: application/json' \-d '{"operation": "companyInterviews", "companyId": "1138", "maxPages": 2}'
Automation Workflows (N8N / Zapier / Make)
- Trigger: Schedule (e.g. weekly comp refresh) or webhook
- HTTP Request: Call the actor API
- Process: Handle the JSON dataset
- Action: Save to your warehouse, notify, or transform
📊 Performance & Pricing
FREE Tier (Try It Now)
- Full feature access across all 9 operations — same data quality
- No credit card required
- Perfect for evaluation and small projects
PAID Tier (Production Ready)
- Scale to thousands of rows per run
- Pay-per-result: only charged for successful rows
💰 Transparent, per-operation pricing — cheap high-volume bulk ops (reviews, salaries, interviews, jobs) and fair pricing for premium single-row company intelligence. No flat monthly subscription wall.
❓ Frequently Asked Questions
Q: How do I get a company's companyId?
A: Run the Company Search operation first — every result row includes a companyId. It also appears in Glassdoor overview URLs (.../EI_IE1138... → 1138).
Q: What's the difference between the two salary operations? A: Company Salaries (role lookup) returns comp for ONE role at a company. Company Salaries (bulk) paginates across ALL roles with base, cash-bonus, and stock-bonus breakdowns.
Q: Can I scrape interview data? A: Yes — the Company Interviews operation returns questions, difficulty, outcome, duration, and process descriptions.
Q: Which regions are supported?
A: 14 Glassdoor regional sites including US, UK, Canada, Germany, France, India, Australia, Singapore, and more — set via the domain field.
Q: What output formats are available? A: JSON, CSV, and Excel — export directly from the Apify dataset.
Q: Is this legal? A: We only extract publicly available data. See the legal section below.
Q: Why did a page occasionally return an error row?
A: Glassdoor sits behind anti-bot protection that can drop a connection. The actor automatically retries; persistent drops are saved as an error row so your run never silently fails.
🐛 Troubleshooting
"Missing required input" error
- Each operation needs specific inputs: Company Search needs
query; company ops needcompanyId; Salary Estimation needsjobTitle+location. Check the input hints.
A page returned an error row
- Usually a transient anti-bot drop. Re-run the operation; the actor already retries internally.
Empty results for Company Jobs / Salaries
- Some companies have no current postings or insufficient salary samples. Try a larger employer or remove location filters.
Pagination stopped early
- The data source reported the last page. This is expected when there are fewer results than
maxPages.
⚠️ Trademark Disclaimer
"Glassdoor" and the Glassdoor logo are trademarks of Glassdoor, Inc. This actor is an independent tool and is not affiliated with, endorsed by, sponsored by, or in any way officially connected to Glassdoor, Inc. All product and company names are the property of their respective owners. This actor accesses publicly available data and is provided for legitimate research, analytics, and business-intelligence purposes only.
⚖️ Is it legal to scrape data?
Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what users have chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.
However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
You can also read Apify's blog post on the legality of web scraping.
🤝 Support
Join our active support community
- For issues or questions, open an issue in the actor's Issues tab
- Check the SIÁN Agency Store for more automation tools
- 📧 apify@sian-agency.online
Built by SIÁN Agency | More Tools