# Glassdoor Reviews Scraper (`fastdataapi/glassdoor-reviews-scraper`) Actor

Glassdoor Reviews Scraper — Extract Glassdoor company reviews, including ratings, review titles, pros, cons, job roles, locations, dates, and recommendation status. Useful for employer research, competitor analysis, workplace insights, and recruitment research.

- **URL**: https://apify.com/fastdataapi/glassdoor-reviews-scraper.md
- **Developed by:** [Fast Data API](https://apify.com/fastdataapi) (community)
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.99 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### Glassdoor Reviews Scraper — Ratings, Pros, Cons and Job Titles

Glassdoor Reviews Scraper collects public employee reviews from Glassdoor company pages. Each review comes with the headline, pros, cons and advice to management, the overall star rating plus six category ratings, CEO approval, business outlook, and the reviewer's job title, location and years at the company. Every response is structured JSON — ready to pass directly to an LLM, index into a vector store, or feed an employee sentiment analysis pipeline. **No Glassdoor account or cookies needed.** Start with one employer, then add every competitor you benchmark against.

![Glassdoor Reviews Scraper output: pros, cons, ratings and job titles as JSON](https://api.apify.com/v2/key-value-stores/Lg9lp51Levfro6SrV/records/i-glassdoor-reviews-hero.webp)

***

### What data can I extract with Glassdoor Reviews Scraper?

Using this Glassdoor Reviews API, you will be able to extract the following Glassdoor review data:

| 📝 Review headline | 👍 Pros | 👎 Cons | 💡 Advice to management |
|---|---|---|---|
| ⭐ Overall star rating | 🚀 Career opportunities rating | 💰 Compensation and benefits rating | 🎭 Culture and values rating |
| 🤝 Diversity and inclusion rating | 🧭 Senior leadership rating | ⚖️ Work-life balance rating | 👔 CEO approval |
| 📈 Business outlook | 🙋 Recommend to a friend | 📅 Review date | 💼 Job title (if given) |
| 📍 Location (if given) | 🟢 Current or former employee | ⏳ Years employed | 🗳️ Helpful votes |
| 💬 Employer responded | 🏅 Featured review | 🏢 Company name and logo | 🆔 Review and company IDs |

***

### How to use Glassdoor Reviews Scraper

HR teams, recruiters and analysts use it to scrape Glassdoor reviews for a whole list of employers and get one clean table back from a single run.

**Copy to your AI assistant:**

```text
Glassdoor Reviews Scraper (Apify Actor ID: fastdataapi/glassdoor-reviews-scraper, https://apify.com/fastdataapi/glassdoor-reviews-scraper) is an Apify Actor that returns public employee reviews of Glassdoor companies as structured JSON: review headline, pros, cons, advice to management, overall star rating, six category ratings, CEO approval, business outlook, job title, location and review date. Use it whenever someone needs Glassdoor employee reviews without cookies, a login, or a browser - employer benchmarking, employee sentiment analysis, and recruiting research. Inputs: startItems (array of Glassdoor company Overview, Reviews or Salary page URLs or numeric company IDs, required), maxResults (integer, reviews per company, 1-1000, default 50), pageSize (integer, reviews requested at a time, 1-100, default 10), proxyConfiguration (object, optional proxy settings, off by default; the Actor switches to a proxy on its own when blocked). Each dataset row is one review and also carries the company ID, the company URL you entered and the number of reviews saved for that company; a grouped copy of all saved reviews per company is stored in the run's key-value store under OUTPUT. Reviews are the English-language reviews in Glassdoor's default order (most relevant first); a company without reviews returns no rows.
```

#### Glassdoor Reviews Scraper MCP Server: use these Actors from ChatGPT, Claude or Cursor

Point your AI assistant at the Apify MCP server and it can read Glassdoor reviews on its own: the server starts with this Actor already available as a tool, ready to call. No glue code, no scraping logic in your prompts.

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=fastdataapi/glassdoor-reviews-scraper"
```

#### Step by step

1. [Create a free Apify account](https://console.apify.com/sign-up).
2. Open [this Actor's page in the Apify Store](https://apify.com/fastdataapi/glassdoor-reviews-scraper).
3. Paste the Glassdoor company URL (Overview, Reviews or Salary page) or the numeric company ID.
4. Click **Start** (or send your API request).
5. Download or stream your results in JSON, CSV or Excel.

#### How to scale Glassdoor Reviews Scraper to bulk

Put every employer into the company list of one run: the companies are scraped in parallel, and each one returns up to your per-company maximum of up to 1,000 reviews. The same company listed twice is scraped once, and lines that are not Glassdoor company links are skipped with a warning. For bulk Glassdoor reviews on a schedule, save the input as a task and run it daily or weekly from Apify Schedules, or start runs from your own code through the Apify API.

***

### ✨ Features

Glassdoor Reviews Scraper fetches clean, structured reviews from Glassdoor ⚡. It's ideal for employer benchmarking, employee sentiment analysis, recruiting research and investor due diligence.

It extracts, per review:

- **Pros and cons** – what the reviewer likes and dislikes about the company
- **Advice to management** – the reviewer's suggestion, when they left one
- **Overall star rating** – the 1-5 score the reviewer gave
- **Category ratings** – career opportunities, compensation and benefits, culture and values, diversity and inclusion, senior leadership and work-life balance
- **CEO approval, business outlook and recommend to a friend** – the reviewer's three yes/no style answers
- **Job title, location and employment status** – who wrote the review, when the reviewer shared it
- **Review date and helpful votes** – when it was posted and how many readers found it useful

⚡ As a Glassdoor review extractor it keeps cost predictable: one review is one row, so the per-company maximum controls exactly how many rows a run returns.

***

### Use cases 💡

- **HR manager** — compare Glassdoor company ratings for work-life balance and culture each quarter.
- **Recruiter** — read pros and cons by job title before pitching a candidate.
- **Investor** — track CEO approval and business outlook ahead of due diligence calls.
- **Employer-branding lead** — export Glassdoor reviews to CSV and tag recurring complaints.
- **AI engineer** — index review text into a RAG store for an HR question-answering agent.

Building an AI agent? [Connect Glassdoor Reviews Scraper over MCP](#mcp-integration-for-ai-agents) and let it call the actor on its own.

***

### Why choose this actor?

- **Hundreds of reviews in seconds.** A recorded run returned 200 reviews from 2 companies (IBM and Google, 100 each) in 2.3 seconds of scraping time.
- **The full story behind each rating.** One recorded Google review came with 3,878 helpful votes, an overall rating of 4, six category ratings, CEO approval, business outlook and full pros, cons and advice text.
- **29 fields, four inputs.** Each row carries 29 fields, and the whole run is controlled by a company list, a per-company maximum, a request size and optional proxy settings.

***

### ⬇️ Input

![Glassdoor Reviews Scraper input form with company URLs, max results and page size](https://api.apify.com/v2/key-value-stores/Lg9lp51Levfro6SrV/records/i-glassdoor-reviews-input.webp)

The actor takes a list of Glassdoor companies, each as a company page URL or a numeric company ID. Only the company list is required.

| Parameter | Required | Type | Description | Example value |
|---|---|---|---|---|
| `startItems` | Yes | array | Glassdoor companies to collect reviews from: Overview, Reviews or Salary page URLs, or numeric company IDs. Not a Glassdoor company link: skipped. Duplicates are scraped once. | `["https://www.glassdoor.com/Reviews/Google-Reviews-E9079.htm"]` |
| `maxResults` | No | integer | Maximum reviews per company, 1-1000. Default 50. | `100` |
| `pageSize` | No | integer | Reviews requested at a time while paging, 1-100. Default 10. Values above `maxResults` are lowered to it. | `50` |
| `proxyConfiguration` | No | object | Optional proxy settings. Off by default (direct connection first); the actor switches to a datacenter, then a residential proxy when blocked. | `{"useApifyProxy": false}` |

Accepted company formats:

- `https://www.glassdoor.com/Overview/Working-at-IBM-EI_IE354.11,14.htm`
- `https://www.glassdoor.com/Reviews/Google-Reviews-E9079.htm`
- `https://www.glassdoor.com/Salary/Google-Salaries-E9079.htm`
- `9079`

#### Free plan limits

Users on the Apify free plan can fetch up to 20 reviews per run (all companies together) and 200 reviews per month. When the limit is reached, the run finishes successfully with a status message explaining the limit. Upgrade to any paid Apify plan to remove these limits.

#### Example input

```json
{
  "startItems": [
    "https://www.glassdoor.com/Overview/Working-at-IBM-EI_IE354.11,14.htm",
    "https://www.glassdoor.com/Reviews/Google-Reviews-E9079.htm"
  ],
  "maxResults": 100,
  "pageSize": 50,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

***

### ⬆️ Output

![Glassdoor Reviews Scraper output fields: pros, cons, rating_overall and rating_ceo](https://api.apify.com/v2/key-value-stores/Lg9lp51Levfro6SrV/records/i-glassdoor-reviews-output.webp)

Every review is one typed, normalized JSON item with the same schema on every run. Export it as JSON (default), CSV or Excel; the run's key-value store also keeps all saved reviews grouped by company.

#### Example output

```json
{
  "company_id": 9079,
  "company_url": "https://www.glassdoor.com/Reviews/Google-Reviews-E9079.htm",
  "reviews_count": 100,
  "review_id": 105802062,
  "summary": "Probably the best for tech",
  "pros": "Flexible schedule \nGood compensation\nLeading edge of tech still",
  "cons": "Hard to get promoted and people are so into AI that code reviews are bad.",
  "advice": "Slow down and say no to features more often",
  "rating_overall": 4,
  "rating_recommend_to_friend": "POSITIVE",
  "rating_ceo": "APPROVE",
  "rating_business_outlook": "POSITIVE",
  "rating_career_opportunities": 3.0,
  "rating_compensation_and_benefits": 5.0,
  "rating_culture_and_values": 4,
  "rating_diversity_and_inclusion": 4,
  "rating_senior_leadership": 3.0,
  "rating_work_life_balance": 5.0,
  "review_date_time": "2026-09-30T13:57:13.677",
  "is_current_job": true,
  "length_of_employment": 4,
  "job_title": "L4 SWE",
  "location": "New York, NY",
  "employer_id": 9079,
  "employer_short_name": "Google",
  "employer_logo_url": "https://media.glassdoor.com/sql/9079/google-squarelogo-1441130773284.png",
  "count_helpful": 0,
  "has_employer_response": false,
  "featured": false
}
```

***

### How does it work?

The actor reads the same public review data that Glassdoor's own company pages load for any visitor, so it never needs a Glassdoor account, a login or cookies. It sends plain web requests, without a browser, and pages through each company's reviews until it reaches your per-company maximum or the last review. Several companies run in parallel. Each request is tried up to three times, with growing pauses between attempts. If Glassdoor blocks a company, the actor switches on its own from a direct connection to a datacenter proxy and then to a residential proxy, and keeps a residential proxy that worked for the remaining companies. It returns only publicly visible review data: the English-language reviews in Glassdoor's default order, most relevant first. Every review is normalized into the same 29 fields, so the shape of your data stays stable from run to run.

***

### How do you integrate Glassdoor Reviews Scraper into your stack?

It works with what you already use: the REST API from any language, MCP for AI agents, and no-code tools.

#### Using Glassdoor Reviews Scraper with the Apify API

Start a run through the Apify API with the same JSON as the example input, then read the run's default dataset; the Actor's API tab in Apify Console shows the ready-made endpoint and a code sample for your account. The official `apify-client` packages for Python and JavaScript wrap the same calls.

*Works in Go, Ruby, Node.js, cURL — any language that can make an HTTP request.*

#### MCP integration for AI agents

Add the Apify MCP server to your agent with one command:

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=fastdataapi/glassdoor-reviews-scraper"
```

This registers Glassdoor Reviews Scraper as a tool your agent can call directly, with no search or add step needed: the agent calls it with a company list. Compatible clients include Claude Code, Cursor and Windsurf. The agent gets typed JSON back, so it can quote review text, compare ratings or summarize employee sentiment for you.

#### No-code tools (n8n, Make, LangChain)

**n8n:** add the Apify node, choose "Run an Actor", pick this Actor and paste the example input. A following node can read the dataset items and send them to a sheet or a database.

**Make:** use the Apify app's "Run an Actor" module with your input, then the "Get Dataset Items" module to map review fields into the next step of your scenario.

**LangChain:** install `langchain-apify` and wrap this Actor with `ApifyActorsTool`, so your chain can fetch reviews on demand and pass them to the model.

***

### Is it legal to scrape Glassdoor data?

Scraping publicly available Glassdoor reviews is generally lawful when you collect only what any visitor can see and use it responsibly. The Actor returns only publicly available data — the reviews any user sees without logging in — and no private or password-protected content. Reviews can still contain personal details such as job titles and locations, so under GDPR and similar laws, collecting public data is generally permissible, but storing and using it must comply with local data-protection law. Check Glassdoor's terms for your use case and keep only the fields you need. Consult legal counsel if your use case involves bulk storage of personal data.

***

### Frequently asked questions

#### What fields does Glassdoor Reviews Scraper return?

It returns the review headline, pros, cons, advice to management and the overall star rating, plus six category ratings, CEO approval, business outlook, job title, location and review date. See [the data fields section](#what-data-can-i-extract-with-glassdoor-reviews-scraper) for the full list.

#### Does Glassdoor Reviews Scraper require a Glassdoor account or login?

No. Only public Glassdoor employee reviews are extracted, and no credentials or cookies are needed.

#### How fast does Glassdoor Reviews Scraper run?

A recorded run collected 200 reviews from 2 companies in 2.3 seconds of scraping time (3.8 seconds including start-up). Every run reads live data, not a cache.

#### What happens if a review is private or doesn't exist?

A company without reviews, or a company ID Glassdoor does not know, returns no rows and a "no reviews found" line in the log. Links that are not Glassdoor company links are skipped with a warning; if no valid company is left, the run ends with a clear "Invalid input" message. In code, check the number of items per company ID.

#### Can I scrape multiple Glassdoor reviews at once?

Yes. Put every company into the company list; they are scraped in parallel, each up to your per-company maximum of 1-1,000 reviews.

#### Does Glassdoor Reviews Scraper work with Claude, ChatGPT, and other AI agent tools?

Yes — Glassdoor Reviews Scraper is available as an MCP tool. Register the Apify MCP server in Claude Code, Cursor or Windsurf with `claude mcp add --transport http apify "https://mcp.apify.com?tools=fastdataapi/glassdoor-reviews-scraper"`, and the agent can call this Actor directly. Any agent that can call an HTTP endpoint can use the REST API directly.

#### Does Glassdoor Reviews Scraper return data in a format LLMs can use directly?

Yes. Each review is typed, normalized JSON with consistent field names. No HTML parsing, no selectors. Pass it straight to an LLM, index it into a vector store, or feed it to an agent tool — no transformation step.

#### What happens when Glassdoor changes its layout or updates its anti-bot system?

The actor is maintained. When Glassdoor changes, the actor is updated — your calls keep returning the same JSON schema with no changes on your end.

#### Can I use Glassdoor Reviews Scraper without managing proxies or browser infrastructure?

Yes. Retries and the switch to a datacenter or residential proxy run on the actor's side when Glassdoor blocks a request. You send one request and get structured JSON back. No proxy accounts, no headless browser setup, no maintenance.

#### Which Glassdoor review fields work best for AI training data and RAG indexing?

For RAG, index the text-rich fields: the review headline, pros, cons and advice to management, with the job title and location as metadata. For training data, use the overall star rating, the six category ratings, the CEO approval and business outlook answers, years employed and the current-employee flag. All fields are typed primitives — strings, integers, numbers, booleans — no normalization needed.

***

### Your feedback

Found a bug or missing a field? Let us know through the Issues tab on this Actor's page. Every report is read, and fixes ship in new builds.

# Changelog

This Actor's version history is a separate document: https://apify.com/fastdataapi/glassdoor-reviews-scraper/changelog.md

# Actor input Schema

## `startItems` (type: `array`):

Glassdoor companies to collect reviews from, one per line. Accepts company Overview, Reviews and Salary page URLs (for example https://www.glassdoor.com/Reviews/Google-Reviews-E9079.htm) or the numeric company ID (9079). Lines that are not a Glassdoor company link are skipped; the same company listed twice is scraped once. Reviews come in Glassdoor's default order (most relevant first) and are the English-language reviews.

## `maxResults` (type: `integer`):

Maximum number of reviews to collect for each company (1-1000, default 50). A company with fewer reviews returns all it has. Free plan: up to 20 reviews per run (all companies together) and 200 per month; paid plans have no limit.

## `pageSize` (type: `integer`):

How many reviews are requested at a time while paging through a company's reviews (1-100, default 10). Higher values mean fewer requests per company; values above Max reviews per company are lowered to it.

## `proxyConfiguration` (type: `object`):

Off by default: the first try uses a direct connection. Turn on Apify Proxy to use it from the first try. If Glassdoor blocks a company, the actor switches to a datacenter proxy, then to a residential proxy, and keeps a residential proxy that worked for the remaining companies.

## Actor input object example

```json
{
  "startItems": [
    "https://www.glassdoor.com/Overview/Working-at-IBM-EI_IE354.11,14.htm",
    "https://www.glassdoor.com/Overview/Working-at-Google-EI_IE9079.11,17.htm"
  ],
  "maxResults": 50,
  "pageSize": 10,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `reviews` (type: `string`):

All scraped reviews, one row per review.

## `companies` (type: `string`):

All saved reviews grouped by Glassdoor company ID.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startItems": [
        "https://www.glassdoor.com/Overview/Working-at-IBM-EI_IE354.11,14.htm",
        "https://www.glassdoor.com/Overview/Working-at-Google-EI_IE9079.11,17.htm"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("fastdataapi/glassdoor-reviews-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startItems": [
        "https://www.glassdoor.com/Overview/Working-at-IBM-EI_IE354.11,14.htm",
        "https://www.glassdoor.com/Overview/Working-at-Google-EI_IE9079.11,17.htm",
    ],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("fastdataapi/glassdoor-reviews-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startItems": [
    "https://www.glassdoor.com/Overview/Working-at-IBM-EI_IE354.11,14.htm",
    "https://www.glassdoor.com/Overview/Working-at-Google-EI_IE9079.11,17.htm"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call fastdataapi/glassdoor-reviews-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,fastdataapi/glassdoor-reviews-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/RGa3F4Vg1haVhOFv2/builds/QgXH4ELKmYZrzuT8b/openapi.json
