# Glassdoor Review Export - Ratings, Pros, Cons & Replies (`nimbryxo-studio/glassdoor-employee-reviews-with-full-ratings`) Actor

Get Glassdoor employee reviews for any company with overall and sub-category ratings, pros, cons, advice to management, job title and employment status.

- **URL**: https://apify.com/nimbryxo-studio/glassdoor-employee-reviews-with-full-ratings.md
- **Developed by:** [Nimbryxo-studio](https://apify.com/nimbryxo-studio) (community)
- **Categories:** Jobs, Lead generation, Automation
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 90.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.49 / 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 Review Export - Ratings, Pros, Cons & Replies

Collect employee reviews from Glassdoor companies by URL, company name, or employer id. Get the overall rating and every sub-rating, pros, cons, advice to management, reviewer job title and location, employment status, helpful votes, language, employer responses, and optional company profile data. No Glassdoor login, cookie, or proxy setup is required.

### What this actor does

- Accepts one or many Glassdoor company Review or Overview URLs, company names, or employer ids.
- Reads Glassdoor's public review data through its own JSON endpoint, so it does not need a browser or a logged-in session.
- Returns every review Glassdoor serves, including beyond the roughly 200 reviews the public review page shows.
- Supports exact star filtering, employment type, current employees only, employer responses only, keyword search, job-title keywords, job function, location, language selection, worldwide review coverage, and a recent-date window.
- Keeps the 25 fields from the previous version and adds review URLs, language data, employer responses, company context, and optional firmographics.
- Omits fields that Glassdoor does not provide for a review instead of writing empty strings, nulls, or zero placeholders.

Typical uses: employer-brand research, culture and sentiment analysis, HR benchmarking, due diligence, recruiting research, and building review datasets for analytics.

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `companies` | string list | Any (prefill: Google Reviews URL) | Glassdoor Review or Overview URLs, company names, or employer ids. Add one item per company. |
| `maxItems` | integer 1-50,000 | 100 | Maximum reviews to save across all companies. |
| `maxReviewsPerCompany` | integer 0-50,000 | 0 | Maximum reviews per company. 0 means no per-company limit. |
| `sortBy` | select | Newest first (`mostRecent`) | Newest first, most relevant, oldest first, highest rated, lowest rated, or classic relevance. |
| `location` | text | empty | City, state, metro area, or country, such as New York, NY or London. Resolved automatically through Glassdoor's location search. |
| `jobFunction` | select | Any job function | Administrative, Arts & Design, Business, Consulting, Customer Services & Support, Education, Engineering, Finance & Accounting, Healthcare, Human Resources, Information Technology, Legal, Marketing, Media & Communications, Military & Protective Services, Operations, Other, Product & Project Management, Research & Science, Retail & Food Services, Sales, Skilled Labor & Manufacturing, or Transportation. |
| `postedWithinDays` | select | Any time | Keep only reviews from the last 7, 30, 90, 180, or 365 days. Sorting is forced to newest first. |
| `rating` | select | Any rating | Keep only reviews with an exact 1-5 star overall rating. |
| `employmentType` | select | Any | Full-time (regular), part-time, intern, contract, freelance, or temporary. |
| `onlyCurrentEmployees` | boolean | false | Keep only reviews from current employees. |
| `onlyWithEmployerResponses` | boolean | false | Keep only reviews that have an official employer response. |
| `jobTitleKeywords` | text | empty | Keep reviews whose job title matches these words. Glassdoor may include closely related titles. |
| `keyword` | text | empty | Keep reviews that mention this word or phrase. |
| `language` | select | English | English, French, German, Dutch, Portuguese, Spanish, Italian, or all languages. |
| `includeWorldwideReviews` | boolean | false | Remove Glassdoor's default review criteria and include reviews from all countries. |
| `includeCompanyProfile` | boolean | false | Add website, headquarters, size, revenue, industry, CEO, and company sub-ratings to each review. |

#### Examples

One company by URL:

```json
{
  "companies": ["https://www.glassdoor.com/Reviews/Google-Reviews-E9079.htm"],
  "maxItems": 50,
  "sortBy": "mostRecent"
}
```

Several companies by name or id:

```json
{
  "companies": ["Microsoft", "Amazon", "9079"],
  "maxItems": 300,
  "maxReviewsPerCompany": 100,
  "language": "eng"
}
```

Recent five-star reviews from current employees:

```json
{
  "companies": ["https://www.glassdoor.com/Reviews/Google-Reviews-E9079.htm"],
  "maxItems": 100,
  "rating": "5",
  "onlyCurrentEmployees": true,
  "postedWithinDays": "90"
}
```

New York engineers with employer responses:

```json
{
  "companies": ["https://www.glassdoor.com/Reviews/Google-Reviews-E9079.htm"],
  "maxItems": 50,
  "location": "New York, NY",
  "jobFunction": "1007",
  "onlyWithEmployerResponses": true
}
```

All languages, worldwide, with company profile:

```json
{
  "companies": ["https://www.glassdoor.com/Reviews/Siemens-Reviews-E3510.htm"],
  "maxItems": 200,
  "language": "all",
  "includeWorldwideReviews": true,
  "includeCompanyProfile": true
}
```

### Output

Each dataset item is one review. The actor keeps these existing fields with the same names:

`reviewId`, `reviewDate`, `title`, `pros`, `cons`, `advice`, `ratingOverall`, `ratingWorkLifeBalance`, `ratingCultureAndValues`, `ratingDiversityAndInclusion`, `ratingSeniorLeadership`, `ratingCareerOpportunities`, `ratingCompensationAndBenefits`, `ratingCeo`, `ratingBusinessOutlook`, `ratingRecommendToFriend`, `jobTitle`, `location`, `employmentStatus`, `isCurrentJob`, `lengthOfEmployment`, `countHelpful`, `countNotHelpful`, `companyName`, `companyId`.

New fields are added beside them:

| Field | Description |
|---|---|
| `reviewUrl` | Link to the company reviews page with this review's anchor. |
| `jobTitleId` | Glassdoor's job-title id. |
| `locationId` | Glassdoor's location id. |
| `locationType` | Location type, such as `CITY`. |
| `isFeatured` | Whether Glassdoor marked the review as featured. |
| `languageId` | Review language bucket, such as `eng` or `fra`. |
| `originalLanguageId` | Original language when Glassdoor exposes it. |
| `summaryOriginal`, `prosOriginal`, `consOriginal`, `adviceOriginal` | Original text when Glassdoor exposes it. |
| `translationMethod` | Translation method when Glassdoor exposes it. |
| `hasEmployerResponse` | Whether the employer replied to the review. |
| `employerResponses` | Employer replies, with response text, date, responder job title, and helpful count. |
| `companyRating` | Company's overall rating. |
| `companyReviewCount` | Company's total review count. |
| `companyUrl` | Company's Glassdoor reviews page. |
| `companyRatingDistribution` | Company's star distribution by rating category. |
| `sourceDomain` | Glassdoor domain used for the data. |
| `scrapedAt` | Run timestamp in UTC. |

When `includeCompanyProfile` is on, each review also gets `companyWebsite`, `companyHeadquarters`, `companySize`, `companyRevenue`, `companyType`, `companyFoundedYear`, `companyIndustry`, `companyCeo`, and `companySubRatings`.

Missing values are omitted. For example, a review without advice has no `advice` key, and a review without sub-ratings has no sub-rating keys. Booleans such as `isCurrentJob`, `isFeatured`, and `hasEmployerResponse` are always present.

### How far back and how many reviews

Glassdoor's public page shows only a slice of a company's reviews. This actor uses Glassdoor's review endpoint, which can return thousands of reviews. For Google, the actor reaches about 74,000 reviews, close to Glassdoor's own total. For smaller companies, it returns everything Glassdoor serves.

Glassdoor still counts a small number of reviews it does not serve. The actor reports the filtered review count and the site total in the run status, so you can see the gap instead of guessing. Set `language` to all and `includeWorldwideReviews` to true to reach the broadest set.

### Languages and countries

Glassdoor stores reviews in language buckets. Set `language` to collect English, French, German, Dutch, Portuguese, Spanish, Italian, or all languages. Region-specific Glassdoor URLs are accepted, but the data comes from Glassdoor's global review endpoint; the country domain alone does not create a separate review set.

### FAQ

**Do I need a Glassdoor account or cookie?**
No. The actor reads public review data without a login, cookie, or user-supplied proxy.

**Why did I get fewer reviews than `maxItems`?**
The company may have fewer reviews than requested, Glassdoor's filters may exclude some reviews, or the recent-date window may have been reached. The run status shows the stop reason and the available count out of the site total (for example, available 51,182 of 74,053).

**Why are some fields missing on some reviews?**
Glassdoor does not require reviewers to provide advice, tenure, sub-ratings, CEO approval, business outlook, or a response. Missing values are omitted, not filled with placeholders.

**Can I filter by reviewer location or job function?**
Yes. Enter a city, state, metro area, or country in `location`; the actor resolves it through Glassdoor's location search before scraping. Select a `jobFunction` category to keep only that function. If a location cannot be resolved, the run fails with a clear message instead of silently ignoring the filter.

**Can I filter by an exact date range?**
The actor supports "posted within N days" by reading newest-first and stopping at the cutoff. Arbitrary start/end dates are not supported by the public endpoint.

**Can I monitor only new reviews?**
Run the actor on a schedule with Newest first and deduplicate by `reviewId` in your workflow. The actor does not keep state between runs.

**Is this affiliated with Glassdoor?**
No. This actor collects public review data and is not affiliated with, endorsed by, or sponsored by Glassdoor.

### Data source and limitations

- Data source: Glassdoor's public review and company endpoints.
- No user credentials, cookies, or proxy configuration are required.
- Reviewer names are not exposed by Glassdoor's public review data. The actor does not attempt to identify reviewers.
- Employer responses are optional and appear only when Glassdoor provides them. Use onlyWithEmployerResponses to keep response-bearing reviews only.
- Glassdoor does not expose original-language or translation text for the sampled reviews; those fields are omitted unless the source provides them.
- Arbitrary start/end date ranges are not available. Use postedWithinDays for a recent-date window.
- Company names are resolved through Glassdoor autocomplete. For ambiguous names, use the company URL or employer id.
- Glassdoor can change its public endpoints without notice. If a run reports a block or an endpoint error, re-run later or contact support with the run id.

# Actor input Schema

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

Glassdoor company Review or Overview URLs, company names, or employer ids. Add one item per company. Example: https://www.glassdoor.com/Reviews/Google-Reviews-E9079.htm or Google or 9079.

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

Maximum number of reviews to save across all companies.

## `maxReviewsPerCompany` (type: `integer`):

Maximum reviews to save for each company. Set to 0 for no per-company limit.

## `sortBy` (type: `string`):

Order in which Glassdoor returns reviews.

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

City, state, metro area, or country to filter reviews by, such as New York, NY or London. Leave empty for all locations. The value is resolved automatically through Glassdoor's location search.

## `jobFunction` (type: `string`):

Only keep reviews whose job function matches this category.

## `postedWithinDays` (type: `string`):

Only keep reviews posted within this many days. Uses newest-first order and stops when older reviews are reached.

## `rating` (type: `string`):

Only keep reviews with this exact overall star rating.

## `employmentType` (type: `string`):

Only keep reviews with this employment status.

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

Only keep reviews written by current employees.

## `onlyWithEmployerResponses` (type: `boolean`):

Only keep reviews that have an official employer response.

## `jobTitleKeywords` (type: `string`):

Only keep reviews whose job title matches these words. Glassdoor may also return closely related titles, such as software developer for software engineer.

## `keyword` (type: `string`):

Only keep reviews that mention this word or phrase.

## `language` (type: `string`):

Language of the reviews to collect. Choose all languages to include every language Glassdoor exposes.

## `includeWorldwideReviews` (type: `boolean`):

Remove Glassdoor's default review criteria and include reviews from all countries. This raises the review ceiling but can add much older or non-local reviews.

## `includeCompanyProfile` (type: `boolean`):

Add company profile fields such as website, headquarters, size, revenue, industry, CEO, and company sub-ratings to each review. This makes one extra request per company.

## Actor input object example

```json
{
  "companies": [
    "https://www.glassdoor.com/Reviews/Google-Reviews-E9079.htm"
  ],
  "maxItems": 3,
  "maxReviewsPerCompany": 0,
  "sortBy": "mostRecent",
  "location": "",
  "jobFunction": "any",
  "postedWithinDays": "any",
  "rating": "any",
  "employmentType": "any",
  "onlyCurrentEmployees": false,
  "onlyWithEmployerResponses": false,
  "jobTitleKeywords": "",
  "keyword": "",
  "language": "eng",
  "includeWorldwideReviews": false,
  "includeCompanyProfile": false
}
```

# Actor output Schema

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

Dataset containing one record per Glassdoor employee review.

# 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 = {
    "companies": [
        "https://www.glassdoor.com/Reviews/Google-Reviews-E9079.htm"
    ],
    "maxItems": 3,
    "maxReviewsPerCompany": 0,
    "sortBy": "mostRecent",
    "location": "",
    "jobFunction": "any",
    "postedWithinDays": "any",
    "rating": "any",
    "employmentType": "any",
    "onlyCurrentEmployees": false,
    "onlyWithEmployerResponses": false,
    "jobTitleKeywords": "",
    "keyword": "",
    "language": "eng",
    "includeWorldwideReviews": false,
    "includeCompanyProfile": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("nimbryxo-studio/glassdoor-employee-reviews-with-full-ratings").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 = {
    "companies": ["https://www.glassdoor.com/Reviews/Google-Reviews-E9079.htm"],
    "maxItems": 3,
    "maxReviewsPerCompany": 0,
    "sortBy": "mostRecent",
    "location": "",
    "jobFunction": "any",
    "postedWithinDays": "any",
    "rating": "any",
    "employmentType": "any",
    "onlyCurrentEmployees": False,
    "onlyWithEmployerResponses": False,
    "jobTitleKeywords": "",
    "keyword": "",
    "language": "eng",
    "includeWorldwideReviews": False,
    "includeCompanyProfile": False,
}

# Run the Actor and wait for it to finish
run = client.actor("nimbryxo-studio/glassdoor-employee-reviews-with-full-ratings").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 '{
  "companies": [
    "https://www.glassdoor.com/Reviews/Google-Reviews-E9079.htm"
  ],
  "maxItems": 3,
  "maxReviewsPerCompany": 0,
  "sortBy": "mostRecent",
  "location": "",
  "jobFunction": "any",
  "postedWithinDays": "any",
  "rating": "any",
  "employmentType": "any",
  "onlyCurrentEmployees": false,
  "onlyWithEmployerResponses": false,
  "jobTitleKeywords": "",
  "keyword": "",
  "language": "eng",
  "includeWorldwideReviews": false,
  "includeCompanyProfile": false
}' |
apify call nimbryxo-studio/glassdoor-employee-reviews-with-full-ratings --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,nimbryxo-studio/glassdoor-employee-reviews-with-full-ratings"
        }
    }
}
```

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/5lWwuQH8dZ6LpE4AU/builds/r9rX1xNG8Nnn7RlAc/openapi.json
