# Glassdoor Scraper (`automly/glassdoor-scraper`) Actor

Scrape Glassdoor company reviews, ratings, company profiles, salaries, interview questions and job listings by company name, link or job search. No login.

- **URL**: https://apify.com/automly/glassdoor-scraper.md
- **Developed by:** [Automly](https://apify.com/automly) (community)
- **Categories:** Jobs, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.30 / 1,000 reviews

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 Scraper - Reviews, Salaries, Interviews & Jobs

### What is Glassdoor Scraper?

**Glassdoor Scraper** is a tool that lets you **scrape employee reviews, company ratings, salaries, interview questions and job listings from Glassdoor**: pros and cons, star and sub-ratings, employer responses, CEO approval, pay ranges per job title, interview difficulty and questions, and jobs with pay and full descriptions. Add a company name or a Glassdoor link, click **Start**, and download the data as Excel, CSV or JSON.

- ⚡ **Fast:** 30,000 Google reviews in under a minute, 10,000 reviews from two companies in about 15 seconds (our tests)
- 📚 **Every review, not just the first page:** reviews from all employment types (full-time, part-time, contract, intern and more) back to the company's first review
- 🔗 **Names, links or IDs:** "Google", any Glassdoor company link from any tab or country site, or an employer ID
- 🔓 **No login:** no Glassdoor account needed, no "sign in to keep reading" limit
- 💸 **Free to try:** the $5 of free usage every Apify account gets each month covers about 10,000 reviews

### What can Glassdoor Scraper do?

- **Scrape Glassdoor reviews by company**: every review with pros, cons, ratings and the company's responses
- **Scrape Glassdoor company profiles**: overall rating, six sub-ratings, CEO approval, recommend-to-a-friend and business-outlook shares, size, industry, revenue, headquarters, founding year, website, competitors
- **Scrape Glassdoor salaries** for every job title at a company: pay range, median total, base and additional pay, percentiles, number of salaries reported, in any city, state or country
- **Scrape Glassdoor interview questions** and interview reports: difficulty, experience, outcome, how the candidate got the interview, the process and the questions asked
- **Scrape Glassdoor jobs** by keyword and location, or every open job of a company, with pay ranges and full descriptions
- **Filter Glassdoor reviews** by language and current employees, and sort them by date or rating
- **Filter Glassdoor jobs** by posting date, remote and Easy Apply
- Export to Excel, CSV, JSON, HTML or XML, or send the data to Google Sheets, Make, Zapier and more

### What data can you extract from Glassdoor?

| | | |
|---|---|---|
| ⭐ Review rating and title | 👍 Pros | 👎 Cons |
| 💡 Advice to management | 💼 Reviewer's job title | 📍 Location |
| 🧾 Employment status, current or former | 📅 Review date | 📊 Six sub-ratings |
| ✅ Recommends, CEO approval, business outlook | 🙋 Helpful votes | 💬 Employer responses |
| 🏢 Company size, industry, revenue | 🏙️ Headquarters, founded, website | 👔 CEO and CEO approval % |
| 💰 Salary range and median | 💵 Base and additional pay | 📈 Pay percentiles |
| 🎤 Interview difficulty and outcome | ❓ Interview questions | 🗒️ Interview process |
| 🧑‍💻 Job title and company | 💲 Job pay range | 📝 Full job description |

### How to scrape Glassdoor

1. [Create a free Apify account](https://console.apify.com/sign-up) (no credit card needed).
2. Open **Glassdoor Scraper**.
3. Pick what to scrape: **Reviews**, **Company overview**, **Salaries**, **Interviews** or **Jobs**.
4. Enter company names, Glassdoor company links or employer IDs, one per line. For jobs you can also enter search keywords and a location.
5. Click **Start**, then download the data as Excel, CSV, JSON, HTML or XML.

### How much does it cost to scrape Glassdoor reviews, salaries and jobs?

You pay only for the rows you get, with one price per kind of row:

| Apify plan | Reviews per 1,000 | Company overviews per 1,000 | Interviews per 1,000 | Jobs per 1,000 | Salaries per 1,000 |
|---|---|---|---|---|---|
| Free | $0.50 | $3.00 | $0.50 | $0.35 | $0.50 |
| Starter (Bronze) | $0.45 | $2.70 | $0.45 | $0.32 | $0.45 |
| Scale (Silver) | $0.38 | $2.40 | $0.38 | $0.28 | $0.38 |
| Business (Gold) and higher | $0.30 | $2.00 | $0.30 | $0.25 | $0.30 |

Platform usage is included in these prices, so you pay nothing else. For example, 1,000 reviews cost $0.50 on the Free plan and $0.30 on Business, and 100 company overviews cost $0.30 on the Free plan. **Max results per company or search** keeps the cost of a run under control, and you can also set a maximum cost per run.

Every Apify account gets **$5 of free usage each month**. See the **Pricing** tab for details.

### ⬇️ Input

| Setting | What it does |
|---|---|
| **What to scrape** | Reviews, Company overview, Salaries, Interviews or Jobs (one per run) |
| **Companies** | Company names (`Google`), Glassdoor company links from any tab or country site (`https://www.glassdoor.com/Reviews/Google-Reviews-E9079.htm`) or employer IDs (`9079`) |
| **Job search keywords** | For Jobs: job titles or skills, each its own search (`data analyst`) |
| **Location** | For Jobs and Salaries: a city, state or country (`New York`, `Texas`, `United Kingdom`). Empty means the United States |
| **Max results per company or search** | How many reviews, salaries, interviews or jobs to save for each company or keyword (default 100). Set 0 for all of them |
| **Sort reviews by** | Most recent, oldest first, highest or lowest rating, most relevant |
| **Review language** | English, Spanish, Portuguese, French, German, Italian or Dutch reviews |
| **Current employees only** | Keep only reviews by people who still work at the company |
| **Pay period** | Salaries per year or per hour |
| **Include full job descriptions** | Adds each job's full description (on by default) |
| **Posted within (days)**, **Remote jobs only**, **Easy Apply jobs only** | Job filters |

All reviews of two companies:

```json
{
  "dataType": "reviews",
  "companies": ["Google", "https://www.glassdoor.com/Reviews/Starbucks-Reviews-E2202.htm"],
  "maxItems": 0
}
```

Salaries at a company in one city:

```json
{
  "dataType": "salaries",
  "companies": ["Google"],
  "location": "New York",
  "maxItems": 500
}
```

Data analyst jobs in New York posted in the last week:

```json
{
  "dataType": "jobs",
  "searchKeywords": ["data analyst"],
  "location": "New York",
  "postedWithinDays": 7,
  "maxItems": 300
}
```

### ⬆️ Output

Every review, company, salary, interview or job is one row, and the `type` field says which. Every row also has `companyName`, `title`, `rating`, `date`, `location` and `url`, the columns of the **Overview** tab. A review:

```json
{
  "type": "review",
  "companyId": 2202,
  "companyName": "Starbucks",
  "title": "Great coworkers, but difficult hours and low pay",
  "rating": 3.0,
  "date": "2026-09-30T12:39:26",
  "location": "Manalapan, NJ",
  "url": "https://www.glassdoor.com/Reviews/Employee-Review-Starbucks-E2202-RVW105800982.htm",
  "reviewId": 105800982,
  "pros": "The people I worked with were amazing and that is what gave me a positive experience. My coworkers and supervisors were for the most part wonderful.",
  "cons": "The hours were difficult, some weeks I would get put on the schedule 20 hours a week (I was a fulltime highschool student), some I'd only have 8. The rules about clothing and nails were really strict. The pay was not great ($13.10/hour) for the amount of work we did, as we were the busiest in the district.",
  "adviceToManagement": null,
  "jobTitle": "Barista",
  "isCurrentEmployee": false,
  "employmentStatus": "Part-time",
  "yearsAtCompany": 2,
  "recommendsCompany": null,
  "ceoApproval": null,
  "businessOutlook": null,
  "workLifeBalanceRating": 3.0,
  "cultureAndValuesRating": 3.0,
  "diversityAndInclusionRating": 3.0,
  "careerOpportunitiesRating": 2.0,
  "compensationAndBenefitsRating": 2.0,
  "seniorManagementRating": 2.0,
  "helpfulCount": 0,
  "notHelpfulCount": 0,
  "employerResponses": [
    {
      "text": "Thank you for sharing your feedback. We value your input and will take it into consideration as we strive to grow and provide the best experience for our partners.",
      "date": "2026-10-01T07:18:46"
    }
  ],
  "source": "Starbucks",
  "scrapedAt": "2026-10-01T16:49:27Z"
}
```

A company overview:

```json
{
  "type": "company",
  "companyId": 9079,
  "companyName": "Google",
  "title": "Google Inc.",
  "rating": 4.4,
  "location": "Mountain View, CA",
  "url": "https://www.glassdoor.com/Overview/Working-at-Google-EI_IE9079.11,17.htm",
  "website": "https://goo.gle/4ehVuXi",
  "headquarters": "Mountain View, CA",
  "size": "10000+ Employees",
  "foundedYear": 1998,
  "revenue": "$10+ billion (USD)",
  "companyType": "Company - Public",
  "stockTicker": "GOOG",
  "industry": "Internet & Web Services",
  "sector": "Information Technology",
  "mission": "Organize the world’s information and make it universally accessible and useful.",
  "ceoName": "Sundar Pichai",
  "ceoApprovalPercent": 84,
  "recommendToFriendPercent": 87,
  "businessOutlookPercent": 83,
  "overallRating": 4.4,
  "workLifeBalanceRating": 4.2,
  "cultureAndValuesRating": 4.2,
  "diversityAndInclusionRating": 4.4,
  "careerOpportunitiesRating": 4.2,
  "compensationAndBenefitsRating": 4.5,
  "seniorManagementRating": 3.9,
  "reviewCount": 71308,
  "salaryCount": 192394,
  "competitors": ["Microsoft", "Apple", "Meta"]
}
```

A salary (one job title):

```json
{
  "type": "salary",
  "companyName": "Google",
  "title": "Software Engineer",
  "date": "2026-09-21T15:01:15",
  "location": "New York, NY",
  "jobTitle": "Software Engineer",
  "salaryCount": 5469,
  "currency": "USD",
  "payPeriod": "Annual",
  "payRangeLow": 244980,
  "payRangeHigh": 386076,
  "medianTotalPay": 303783,
  "medianBasePay": 182137,
  "medianAdditionalPay": 121646,
  "totalPayPercentiles": {"p10": 202569, "p25": 244980, "p50": 303783, "p75": 386076, "p90": 473903},
  "basePayPercentiles": {"p10": 132014, "p25": 153745, "p50": 182137, "p75": 215771, "p90": 251289}
}
```

An interview has `jobTitle`, `experience` (Positive, Neutral, Negative), `difficulty` (Very easy to Very difficult), `outcome` (Accepted offer, Declined offer, No offer), `howObtained`, `durationDays`, `process`, `questions` and `employerResponses`.

A job:

```json
{
  "type": "job",
  "companyId": 35,
  "companyName": "American Express",
  "title": "Analyst-Control Mgmt",
  "rating": 4.1,
  "date": "2026-09-29",
  "location": "New York, NY",
  "url": "https://www.glassdoor.com/job-listing/analyst-control-mgmt-american-express-JV_IC1132348_KO0,20_KE21,37.htm?jl=1010277495276",
  "jobId": 1010277495276,
  "postedDaysAgo": 2,
  "salaryMin": 65500,
  "salaryMedian": 84000,
  "salaryMax": 102500,
  "salaryCurrency": "USD",
  "salaryPeriod": "Annual",
  "salarySource": "Employer provided",
  "easyApply": false,
  "occupation": "management analyst",
  "description": "Credit & Fraud Risk (CFR) manages the risk strategies across all markets and portfolios...",
  "descriptionHtml": "<div><p>Credit &amp; Fraud Risk (CFR) manages the risk strategies..."
}
```

The run report lists any company that does not exist on Glassdoor or matches no company.

### How can I use Glassdoor data?

- **Employer branding:** track what employees say about your company and how ratings move over time
- **Competitor research:** compare ratings, culture, pay and interview processes across companies
- **HR and compensation benchmarking:** salary ranges and pay mix per job title and city
- **Interview preparation:** collect real interview questions for a role at a company
- **Sentiment analysis and AI datasets:** pros and cons text with ratings, ready for analysis
- **Job market research and lead generation:** who is hiring, where, for which roles and at what pay
- **Investment research:** employee sentiment, CEO approval and business outlook as signals

### How many results can I get?

- **Reviews:** all reviews of a company in the language you choose, from every employment type.
- **Salaries:** every job title with reported pay at the company, in the location you choose.
- **Interviews:** up to 20,000 interview reports per company (the newest 10,000 and the oldest 10,000; 20,000 of Google's 26,000 in our tests); companies with fewer are read in full.
- **Jobs:** a single search returns up to several hundred unique jobs; add more keywords or locations to collect more. A job that appears twice is saved once.

### Scrape more jobs and company data

| Actor | What it gets |
|---|---|
| [LinkedIn Jobs Scraper](https://apify.com/automly/linkedin-jobs-scraper) | LinkedIn job listings with salaries, company info and descriptions |
| [HiringCafe Jobs Scraper](https://apify.com/automly/hiringcafe-jobs-scraper) | Job listings with salary ranges, skills, apply links and company details |
| [Trustpilot Reviews Scraper - Ratings, Replies & Company Data](https://apify.com/automly/trustpilot-reviews-scraper) | Customer reviews, company replies and TrustScore for any company |
| [LinkedIn Company Employees Scraper + Emails (No Login)](https://apify.com/automly/linkedin-company-employees-scraper) | A company's employees with name, headline, location and profile link |
| [LinkedIn Profile Scraper + Email Finder (No Login)](https://apify.com/automly/linkedin-profile-scraper) | Profiles with job titles, experience, education and followers |

### ❓FAQ

#### How much does it cost to scrape Glassdoor?

Reviews cost $0.50 per 1,000 on the Free plan, with lower prices on paid plans and separate prices for company overviews, interviews, jobs and salaries. See **How much does it cost to scrape Glassdoor reviews, salaries and jobs?** above.

#### How many Glassdoor reviews can I scrape?

All of a company's reviews in the language you choose, from every employment type. Salaries cover every job title with reported pay in your location, interviews up to 20,000 reports per company, and one job search up to several hundred unique jobs. See **How many results can I get?** above for details.

#### Do I need a Glassdoor account?

No. You get the same public reviews, salaries, interviews and jobs, without signing in and without the "sign in to keep reading" limit.

#### How do I find a company's Glassdoor ID?

You do not need it: a company name works. If a name is ambiguous, paste the company's Glassdoor link instead; the number after `-E` in the link (`Google-Reviews-E9079.htm`) is the employer ID.

#### Can I scrape reviews in other languages?

Yes: pick Spanish, Portuguese, French, German, Italian or Dutch under **Review language**.

#### What happens with a wrong company name?

The run goes on with the other companies, and the run report lists the names that match no Glassdoor company. A link that is not a Glassdoor company page is named in the error message before the run starts.

#### Can I call it as an API?

Yes. Run it through the Apify API from any language, or use its real-time API, `/company?company=Google&dataType=reviews` and `/jobs?keyword=data analyst&location=New York`, which answers with the rows directly.

#### Can I connect Glassdoor Scraper to other tools or AI agents?

Yes. Start runs and download results with the Apify API or the Python and JavaScript clients, send results to Make, Zapier, n8n, Google Sheets or Slack with Apify integrations and webhooks, or let AI assistants and agents run it through the Apify MCP server at [mcp.apify.com](https://mcp.apify.com).

#### Is it legal to scrape Glassdoor?

This scraper only collects data that is public on Glassdoor: anonymous reviews, company profiles, salary reports, interview reports and job listings. It does not collect private data such as email addresses or account details. Some fields, such as a CEO's name or text people wrote, can still contain personal data, which may be protected by laws such as GDPR, so only scrape it for a legitimate reason and ask a lawyer if you are unsure. You can read more in [Is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/)

Glassdoor Scraper is an independent tool. It is not affiliated with, endorsed by or sponsored by Glassdoor.

#### Something isn't working?

Open the **Issues** tab and tell us your input and what you expected. We read every issue and usually reply within a day.

### ⭐ Your feedback

Have an idea or found a problem? Tell us on the **Issues** tab. If Glassdoor Scraper saved you time, a short review on the **Reviews** tab helps other people find it.

# Actor input Schema

## `dataType` (type: `string`):

Pick one kind of data per run: employee reviews, company profiles, salaries, interview reports or job listings.

## `companies` (type: `array`):

Enter companies, one per line: a name ("Google"), a Glassdoor company link from any tab or country site (glassdoor.com/Reviews/Google-Reviews-E9079.htm) or a Glassdoor employer ID (9079). With "Jobs", each company gives its open jobs.

## `searchKeywords` (type: `array`):

For "Jobs" only: enter job titles or skills to search for, one per line ("data analyst", "registered nurse"). Each keyword is its own search.

## `location` (type: `string`):

For "Jobs" and "Salaries": a city, state or country ("New York", "Texas", "United Kingdom"). Leave empty for jobs and salaries across the United States.

## `maxItems` (type: `integer`):

How many reviews, salaries, interviews or jobs to save for each company or keyword. Set 0 for all of them.

## `reviewsSort` (type: `string`):

The order reviews are saved in.

## `reviewsLanguage` (type: `string`):

Only reviews written in this language.

## `onlyCurrentEmployees` (type: `boolean`):

Keep only reviews written by people who still work at the company.

## `payPeriod` (type: `string`):

Show pay per year or per hour.

## `includeJobDescriptions` (type: `boolean`):

Add each job's full description (as text and HTML). Turn off for faster runs with a short snippet only.

## `postedWithinDays` (type: `integer`):

Only jobs posted in the last N days, for example 1, 3, 7, 14 or 30. Leave empty for any date.

## `remoteOnly` (type: `boolean`):

Only jobs that can be done remotely.

## `easyApplyOnly` (type: `boolean`):

Only jobs you can apply to directly on Glassdoor.

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

Apify Proxy works out of the box.

## Actor input object example

```json
{
  "dataType": "reviews",
  "companies": [
    "Google"
  ],
  "maxItems": 100,
  "reviewsSort": "newest",
  "reviewsLanguage": "eng",
  "onlyCurrentEmployees": false,
  "payPeriod": "annual",
  "includeJobDescriptions": true,
  "remoteOnly": false,
  "easyApplyOnly": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

## `results` (type: `string`):

No description

## `report` (type: `string`):

No description

# 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 = {
    "dataType": "reviews",
    "companies": [
        "Google"
    ],
    "maxItems": 100,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("automly/glassdoor-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 = {
    "dataType": "reviews",
    "companies": ["Google"],
    "maxItems": 100,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("automly/glassdoor-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 '{
  "dataType": "reviews",
  "companies": [
    "Google"
  ],
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call automly/glassdoor-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,automly/glassdoor-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/lUBZ5PSi6nSTEjWgO/builds/xsbtgEXl2cVxrQj9P/openapi.json
