# Glassdoor Salaries Universal Scraper (`scrapifier/glassdoor-salaries-universal-scraper`) Actor

💰 Scrape Glassdoor salary estimates by company name or URL. Get base pay (low/median/high), total pay, bonus, stock & profit sharing per job title, with the number of reported salaries, currency & pay period. No login and no proxy needed.

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

## Pricing

from $2.04 / 1,000 results

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

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## 💰 Glassdoor Salaries Scraper

Extract Glassdoor salary estimates for any company by name or URL — base pay, total pay and bonus per job title — and export them as structured JSON, CSV or Excel. No code required.

[![Apify Actor](https://apify.com/actor-badge?actor=scrapifier/glassdoor-salaries-universal-scraper)](https://apify.com/scrapifier/glassdoor-salaries-universal-scraper)

### 📋 Contents

- [Overview](#-overview)
- [How to use](#-how-to-use)
- [Input](#-input)
- [Output](#-output)
- [Pricing](#-pricing)
- [Proxy and performance](#-proxy-and-performance)
- [Integrations](#-integrations)
- [Related Actors](#-related-actors)
- [FAQ](#-faq)
- [Support](#-support)

### 📖 Overview

Collect Glassdoor salary data for any company by typing its name or pasting a Glassdoor URL. For every job title reported at the company you get the base-pay range (low / median / high), total pay, the additional-pay breakdown (cash bonus, stock, profit sharing, sales commission, tips), the number of reported salaries, the currency and the pay period.

- Find a company by **name** (`Google`) or paste any **Glassdoor company URL**.
- Salary figures per **job title**: base pay low/median/high, total pay, and additional pay.
- Optional **full percentile breakdown** (10th / 25th / 50th / 75th / 90th).
- Choose the **pay period** — annual, monthly or hourly — and the **region** (any Glassdoor country domain).
- No login required — works anonymously.
- Exports to JSON, CSV, Excel, or the Apify dataset API.
- Pay per result — no subscription.

### 🚀 How to use

1. Add one or more companies in **Company names** (`Google`, `Microsoft`, `Airbnb`) — or paste **Glassdoor company URLs**.
2. Pick the **pay period** (annual / monthly / hourly) and, for company names, the **Glassdoor domain** (region).
3. Set **Max job titles per company** (`0` = every job title).
4. Start the run, then download your data from the **Storage** tab or fetch it from the API.

### 📥 Input

| Field | Key | Type | Default | Description |
|---|---|---|---|---|
| Glassdoor company URLs | `startUrls` | array | — | Company Salaries page or any company URL. Works on any country domain. |
| Company names | `companyNames` | array | `["Google"]` | Company names resolved automatically on Glassdoor. |
| Max job titles per company | `maxSalariesPerCompany` | integer | `100` | Salary rows to collect per company. `0` = all. |
| Pay period | `payPeriod` | select | `annual` | Annual, monthly or hourly figures. |
| Glassdoor domain | `country` | select | `www` | Domain used for company names — also sets region & currency. |
| Full percentile breakdown | `includePercentiles` | boolean | `true` | Add the 10th–90th percentile range for base & total pay. |
| Additional pay breakdown | `includeAdditionalPay` | boolean | `true` | Add cash bonus, stock, profit sharing, commission and tips. |
| Flat columns | `flatten` | boolean | `false` | Keep only flat columns for CSV/Excel. |
| Proxy configuration | `proxyConfiguration` | object | Off | Leave off — the Actor works best with no proxy. |

<details>
<summary>Example input</summary>

```json
{
  "companyNames": ["Google"],
  "payPeriod": "annual",
  "country": "www",
  "maxSalariesPerCompany": 100,
  "includePercentiles": true,
  "includeAdditionalPay": true
}
```

</details>

### 📤 Output

Each job title is stored as one dataset item. Export it as JSON, CSV or Excel, or read it from the API.

| Field | Description |
|---|---|
| `employerId` / `employerName` | Glassdoor company ID and name |
| `url` | Link to the company's salaries page |
| `jobTitle` / `jobTitleId` | Job title and its Glassdoor ID |
| `location` | Region the figures cover (e.g. France, United States) |
| `payPeriod` / `currency` | Pay period and currency |
| `salaryCount` | Number of reported salaries |
| `mostRecent` | Most recent salary report date |
| `basePayMin` / `basePayMedian` / `basePayMax` | Base pay: low (10th), median (50th), high (90th) |
| `totalPayMin` / `totalPayMedian` / `totalPayMax` | Total pay: low, median, high |
| `additionalPayMedian` | Additional pay (bonus + stock + …), median |
| `additionalPay{}` | Breakdown: cash bonus, stock, profit sharing, sales commission, tips |
| `basePayPercentiles{}` / `totalPayPercentiles{}` | Full percentile ranges |

<details>
<summary>Example output</summary>

```json
{
  "employerId": 9079,
  "employerName": "Google",
  "url": "https://www.glassdoor.com/Salary/Employer-Salaries-E9079.htm",
  "jobTitle": "Software Engineer",
  "jobTitleId": 4279,
  "location": "United States",
  "payPeriod": "annual",
  "currency": "USD",
  "salaryCount": 111,
  "basePayMin": 50000,
  "basePayMedian": 70000,
  "basePayMax": 110000,
  "totalPayMedian": 80000,
  "additionalPayMedian": 39000,
  "additionalPay": { "cashBonus": 10000, "stockBonus": 22000, "profitSharing": 15000 }
}
```

</details>

### 💰 Pricing

**$3.00 per 1,000 job-title salaries.** No subscription — you pay only for the results you extract. New Apify users can try the Actor with their free monthly platform credits.

### 🛡️ Proxy and performance

- **Leave the proxy off** — this Actor is tuned to run without one, and a proxy usually makes Glassdoor runs less reliable.
- Start with a small **Max job titles per company** to validate your setup, then increase it.
- Add several companies in one run to compare pay side by side.
- The first request per run warms up the session; the rest are fast.

### 🔌 Integrations

Run the Actor from the [Apify API](https://docs.apify.com/api/v2), the [JavaScript](https://docs.apify.com/sdk/js) or [Python](https://docs.apify.com/sdk/python) clients, or connect it to Make, Zapier, n8n, Google Sheets and Slack through Apify integrations. Each run's data is available as JSON or CSV via the dataset API.

### 🔗 Related Actors

- [Glassdoor Reviews Universal Scraper](https://apify.com/scrapifier/glassdoor-reviews-universal-scraper) — company reviews from Glassdoor.
- [Glassdoor Jobs Universal Scraper](https://apify.com/scrapifier/glassdoor-jobs-universal-scraper) — job listings from Glassdoor.
- [Trustpilot Universal Scraper](https://apify.com/scrapifier/trustpilot-universal-scraper) — customer reviews from Trustpilot.

Need another source? Open an issue.

### ❓ FAQ

**Which URLs are supported?**

Any Glassdoor company URL — the Salaries page (`.../Salary/Company-Salaries-E12345.htm`) or the company Overview/Reviews page. Any country domain works (.com, .fr, .de, .co.uk…).

**Where do the figures come from?**

They are Glassdoor's own estimates, aggregated from salaries reported by employees for each job title.

**How do I get salaries for a specific country?**

Paste that country's Glassdoor URL, or pick the matching **Glassdoor domain** when using company names — it sets both the region and the currency.

**How fresh is the data?**

It is collected live at runtime.

### 💬 Support

Questions or issues? Post them in the **Issues** tab and I will respond quickly. If the Actor is useful to you, a review is appreciated.

# Actor input Schema

## `startUrls` (type: `array`):

Paste one or more Glassdoor company URLs — the Salaries page (e.g. https://www.glassdoor.com/Salary/Google-Salaries-E9079.htm) or any company page. Works on any Glassdoor country domain (.com, .fr, .de, .co.uk…). Leave empty to use company names below.

## `companyNames` (type: `array`):

Company names to resolve automatically on glassdoor.com (e.g. Google, Microsoft, Airbnb). For a specific country/office, paste that country's Glassdoor URL above instead.

## `maxSalariesPerCompany` (type: `integer`):

How many job-title salary rows to collect per company (0 = every job title Glassdoor reports).

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

The pay period the salary figures are reported in.

## `country` (type: `string`):

Which Glassdoor domain to use when resolving company names. This also sets the region and currency of the figures. (Pasted URLs keep their own domain.)

## `includePercentiles` (type: `boolean`):

Add the full percentile range (10th / 25th / 50th / 75th / 90th…) for base and total pay, alongside the low/median/high summary.

## `includeAdditionalPay` (type: `boolean`):

Add a breakdown of additional pay — cash bonus, stock, profit sharing, sales commission and tips (median).

## `flatten` (type: `boolean`):

Keep only flat columns (drops the nested percentile and additional-pay objects) for clean CSV/Excel exports.

## `emitInputStatus` (type: `boolean`):

Add an input\_status report to the run's OUTPUT record.

## `maxChallengeRetries` (type: `integer`):

How many retry attempts if a page fails to load. Increase only if runs report being blocked.

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

Leave OFF (recommended). A proxy usually makes Glassdoor runs fail — the Actor works best without one. Only add a proxy if you have your own clean, ISP-grade IPs.

## Actor input object example

```json
{
  "companyNames": [
    "Google"
  ],
  "maxSalariesPerCompany": 100,
  "payPeriod": "annual",
  "country": "www",
  "includePercentiles": true,
  "includeAdditionalPay": true,
  "flatten": false,
  "emitInputStatus": true,
  "maxChallengeRetries": 6,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `salaries` (type: `string`):

All Glassdoor salary estimates extracted by this run.

# 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 = {
    "companyNames": [
        "Google"
    ],
    "maxSalariesPerCompany": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapifier/glassdoor-salaries-universal-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 = {
    "companyNames": ["Google"],
    "maxSalariesPerCompany": 100,
}

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

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

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

```

## CLI example

```bash
echo '{
  "companyNames": [
    "Google"
  ],
  "maxSalariesPerCompany": 100
}' |
apify call scrapifier/glassdoor-salaries-universal-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapifier/glassdoor-salaries-universal-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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