# PayScale Company Benefits Scraper (`parseforge/payscale-company-benefits-scraper`) Actor

Scrape employee benefits, perks and pay by company from PayScale across 29 country editions: ranked benefits with sample sizes, 401(k), health, PTO and tuition flags, salary percentiles, ratings and reviews.

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

## Pricing

from $6.23 / 1,000 employer benefits records

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/actors/running/actors-in-store.md#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

[![ParseForge](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner.jpg)](https://apify.com/parseforge?fpr=vmoqkp)

### PayScale Employee Benefits Scraper - Company Perks Data

**Pull employee benefits and perks for any company on PayScale, across 29 country editions and 8,844 employers with a published benefits report.** Every row carries the ranked benefits real employees reported and how many reported each one, the health and retirement plan catalogues, 14 ready made yes/no flags such as 401(k), health insurance, paid time off and tuition reimbursement, plus median salary, total compensation, hourly rate and bonus. No login, no API key, no PayScale account. Exports to CSV, JSON, Excel and XML.

PayScale has no public benefits API, and its own pages show one company at a time behind a research interface built for browsing, not for pulling a list. Copying a benefits table by hand takes minutes per employer and gives you prose, not columns. This scraper walks the country and industry directory for you, reads the structured payload each page ships, and returns a flat, filterable row per company, so a question like "which employers in Health Care offer tuition reimbursement and a 401(k)" becomes a filter instead of an afternoon.

| Who uses it | What they scrape employee benefits data for |
|---|---|
| Compensation and total rewards teams | Benchmark a benefits package against named competitors before an annual review |
| HR consultancies and brokers | Build prospect lists of employers missing a benefit they sell, such as vision or disability cover |
| Recruiters and talent brands | Show candidates how an offer compares on perks, not just base pay |
| Market researchers and journalists | Measure how common remote work, flexible hours or pension plans are by industry |
| Investors and B2B sales teams | Qualify employers by size, industry, pay level and benefit spend signals |

### What it does

- 📋 **Ranked employee reported benefits** with the exact count of employees reporting each one, plus the share of the sample it represents.
- 🏥 **Health and retirement catalogues** as published: health, dental, vision, life, short and long term disability, accidental death, severance, prepaid legal, 401(k), profit sharing, defined benefit and defined contribution pension plans.
- ✅ **14 derived yes/no flags** so you can filter without string matching: `has401k`, `hasPensionPlan`, `hasProfitSharing`, `hasRetirementMatch`, `hasHealthInsurance`, `hasDentalInsurance`, `hasVisionInsurance`, `hasLifeInsurance`, `hasDisabilityInsurance`, `hasPaidTimeOff`, `hasPaidSickLeave`, `hasTuitionReimbursement`, `hasFlexibleSchedule`, `hasRemoteWork`.
- 💰 **Headline pay on every row**: median salary, median total compensation, median hourly rate, median bonus and the sample size behind them.
- 🏢 **Company facts** on request: website, domain, founding date, employee count range, organisation type, logo, former names and the headquarters address.
- ⭐ **Employer ratings** on request: nine scored dimensions including overall satisfaction, fair pay, pay transparency, appreciation and manager relationship, each with its sample size.
- 📊 **Pay breakdowns** on request: by job title, by city, by years of experience, by gender and by degree, each with the 10th to 90th percentile spread.
- 💬 **Employee reviews** on request: pros, cons, job title, city and date.
- 🌍 **29 country editions**, each with its own directory, currency and salaries. The United Kingdom is `UK`, not `GB`.

### What you can do with employee benefits data

**Benchmark a total rewards package.** Pull every employer in your industry and country, then compare your benefit list against the median. Because each benefit carries the number of employees who reported it, you can tell a benefit that is genuinely standard from one that a handful of staff mentioned once.

**Build a targeted prospect list.** Filter to employers that do not offer a benefit you sell. Set `requiredBenefits` to what they must already have, then sort the output by the flags they are missing, with company size and median pay already on the row to qualify the lead.

**Measure a gender pay gap by employer.** Tick Pay by gender and each row carries the median and full percentile spread for men and women with sample sizes, which is what the calculation actually needs, alongside the benefits that often explain part of the gap.

**Track how common a perk really is.** Remote work, flexible schedules and tuition reimbursement are easy to claim and hard to quantify. Scrape an industry and count: the ranked benefit list gives you the share of employees reporting each perk, not a marketing page.

### Why choose this scraper

| | What you get |
|---|---|
| Breadth | 8,844 employers with published benefits across 64 country editions through the sitemap, and roughly 2,000 per industry per country through the directory |
| Depth | 40 fields on the base row, up to 54 with every optional block ticked |
| Honest sampling | Every benefit and pay figure carries the number of employee reports behind it, so you can drop thin records with one filter |
| Filter before you pay | Filters run on the full record before any optional block is billed, so you can filter on a field you did not buy |
| No proxy cost | PayScale needs no proxy and no browser, which is why the base row is priced at the level it is |
| Predictable billing | 18 separate events, each charged only when it actually returns data |

### How it compares

The nearest thing on the Apify Store is [Glassdoor Company Benefits Scraper](https://apify.com/getdataforme/Glassdoor-Company-Benefits-Scraper?fpr=vmoqkp), which reads a different site and charges $0.009 per row plus a $0.05 start fee. Against that, this actor is cheaper per row, adds the sample size behind every number, and returns pay percentiles, ratings and reviews from the same run. PayScale and Glassdoor do not hold the same employers or the same benefit vocabulary, so for most benchmarking work the two are complementary rather than interchangeable. Our own [PayScale Salary Scraper](https://apify.com/parseforge/payscale-scraper?fpr=vmoqkp) reads the same site from the other direction: it is organised by job title and returns pay profiles, while this one is organised by employer and returns benefits.

| | This actor | getdataforme/Glassdoor-Company-Benefits-Scraper | parseforge/payscale-scraper |
|---|---|---|---|
| Source | PayScale | Glassdoor | PayScale |
| Organised by | Employer | Employer | Job title |
| Price per 1,000 rows | $7.00 | $9.00 | See its listing |
| Start fee | $0.02 | $0.05 | Varies |
| Sample size per benefit | Yes | No | Not applicable |
| Pay percentiles | Yes | No | Yes |
| Billed events | 18 | 2 | 1 |

### What an employer benefits record looks like

One real row from the verified run, unedited:

```json
{
  "employerName": "Accenture",
  "employerSlug": "Accenture",
  "countryCode": "US",
  "country": "United States",
  "industry": "Business Information Systems",
  "industries": [
    "Business Information Systems",
    "Construction",
    "Consulting",
    "Information Services",
    "Information Technology",
    "Infrastructure",
    "Management Consulting",
    "Outsourcing"
  ],
  "benefitsUrl": "https://www.payscale.com/research/US/Employer=Accenture/Benefits",
  "salaryUrl": "https://www.payscale.com/research/US/Employer=Accenture/Salary",
  "reviewsUrl": "https://www.payscale.com/research/US/Employer=Accenture/Reviews",
  "currencyCode": "USD",
  "dataLastUpdated": "2026-07-11T14:12:51.7505Z",
  "benefitProfileCount": 156,
  "topBenefits": [
    { "benefit": "401(k)", "employeesReporting": 141, "sharePct": 90.4 },
    { "benefit": "Paid Holidays / Vacation", "employeesReporting": 130, "sharePct": 83.3 },
    { "benefit": "Life Insurance/Disability", "employeesReporting": 85, "sharePct": 54.5 },
    { "benefit": "Paid Sick Leave", "employeesReporting": 66, "sharePct": 42.3 },
    { "benefit": "Optional Telecommute / Work from Home", "employeesReporting": 61, "sharePct": 39.1 },
    { "benefit": "Education/Training/Tuition/Certification Reimbursement", "employeesReporting": 55, "sharePct": 35.3 },
    { "benefit": "Laptop / Notebook Computer", "employeesReporting": 49, "sharePct": 31.4 }
  ],
  "topBenefitNames": [
    "401(k)",
    "Paid Holidays / Vacation",
    "Life Insurance/Disability",
    "Paid Sick Leave",
    "Optional Telecommute / Work from Home",
    "Education/Training/Tuition/Certification Reimbursement",
    "Laptop / Notebook Computer"
  ],
  "retirementBenefits": ["Profit Sharing", "401(k) Plan", "Defined Contribution Pension Plan"],
  "healthBenefits": [
    "Prepaid Legal",
    "Severance Pay",
    "Life Insurance",
    "Long-term Disability Insurance",
    "Health Insurance",
    "Dental Insurance",
    "Vision Insurance"
  ],
  "allBenefitNames": [
    "401(k)",
    "401(k) Plan",
    "Defined Contribution Pension Plan",
    "Dental Insurance",
    "Education/Training/Tuition/Certification Reimbursement",
    "Health Insurance",
    "Laptop / Notebook Computer",
    "Life Insurance",
    "Life Insurance/Disability",
    "Long-term Disability Insurance",
    "Optional Telecommute / Work from Home",
    "Paid Holidays / Vacation",
    "Paid Sick Leave",
    "Prepaid Legal",
    "Profit Sharing",
    "Severance Pay",
    "Vision Insurance"
  ],
  "benefitCount": 17,
  "benefitsSummary": "At Accenture, they provide several retirement and welfare benefits for their workers. Numerous companies in the United States, like Accenture, finance health plans for their employees, through which companies typically foot the bill for a significant proportion of their workers' health insurance premiums. In this setup, employers collect tax deductions for their contributions and workers collect the benefits tax-free. Accenture offers health, dental, and vision plans. Accenture also provides group life insurance and long-term disability insurance. To help ensure a dependable stream of money later in life, many workers use employer-funded pension plans. Accenture offers defined contribution pension plans. With a defined contribution retirement plan, companies help workers save and invest for retirement.",
  "has401k": "Yes",
  "hasPensionPlan": "Yes",
  "hasProfitSharing": "Yes",
  "hasRetirementMatch": "No",
  "hasHealthInsurance": "Yes",
  "hasDentalInsurance": "Yes",
  "hasVisionInsurance": "Yes",
  "hasLifeInsurance": "Yes",
  "hasDisabilityInsurance": "Yes",
  "hasPaidTimeOff": "Yes",
  "hasPaidSickLeave": "Yes",
  "hasTuitionReimbursement": "Yes",
  "hasFlexibleSchedule": "No",
  "hasRemoteWork": "Yes",
  "medianSalary": 106314.04,
  "medianTotalCompensation": 103604.06,
  "medianHourlyRate": 30.79,
  "medianBonus": 6010.75,
  "salaryProfileCount": 321,
  "discoveredVia": "directory:Technology",
  "scrapedAt": "2026-09-08T20:01:45.148Z"
}
```

A field the source withholds comes back as `Not Disclosed` rather than an empty cell, so a missing value is always distinguishable from a parsing failure. Optional blocks are added as extra fields on the same row only when you tick them.

### Configure the run

You name companies in one of three ways, and they can be combined. Paste PayScale employer URLs into **Employer page URLs**, list exact company names in **Company names**, or leave both empty and let the actor walk the **Country** and **Industry** directory. Directory mode is the one to use for breadth: a plain industry page returns its top 100 employers, and the **Company initial** letter pages reach past that cap.

Company names must be spelled the way PayScale spells them. `Google, Inc.` and `Target Corporation` resolve; `Google` and `Target` do not, because they are not the company's name on the site. The name to slug conversion matched 800 of 800 directory entries in testing, so a correct name always resolves. If you do not know the exact spelling, use the directory or paste the URL.

Filters run on the complete record before any optional block is billed, so filtering by a field you did not buy costs nothing.

Every employer in Health Care that offers both a 401(k) and paid sick leave, with at least 20 employee reports behind the benefits:

```json
{
  "country": "US",
  "industry": "Health-Care",
  "maxItems": 500,
  "requiredBenefits": ["401(k)", "Paid Sick Leave"],
  "minBenefitProfileCount": 20
}
```

Three named companies with the full benefits picture, ratings and the gender pay breakdown:

```json
{
  "companyNames": ["Google, Inc.", "Kaiser Permanente", "Accenture"],
  "includeCompanyProfile": true,
  "includeRatings": true,
  "includePayByGender": true,
  "includeCompensationPercentiles": true
}
```

UK technology employers whose median salary clears 40,000, with reviews:

```json
{
  "country": "UK",
  "industry": "Technology",
  "minMedianSalary": 40000,
  "maxItems": 200,
  "includeReviews": true,
  "maxReviewsPerEmployer": 20
}
```

### Pricing

Pay per event. You are charged for what the run actually returns, and an optional block that came back empty is not billed.

| Event | Price | When it fires |
|---|---|---|
| Actor start | $0.02 | Once per run |
| Employer benefits record | $0.007 | One employer row, 40 fields |
| Directory page scanned | $0.004 | One directory page, up to 100 employers discovered |
| Sitemap file scanned | $0.02 | One sitemap file, only in sitemap discovery mode |
| Company profile | $0.002 | Website, HQ, size, founding date |
| Related employers | $0.002 | Comparable employers by pay |
| Peer comparison | $0.002 | Satisfaction, stress and gender split versus named peers |
| Office locations | $0.002 | Location count and top cities |
| Compensation percentiles | $0.003 | Six pay types, 10th to 90th percentile |
| Employer ratings | $0.004 | Nine scored dimensions |
| Pay by job title | $0.006 | Full job level pay table |
| Pay by location | $0.003 | City and state breakdown |
| Pay by experience | $0.003 | Experience band breakdown |
| Pay by gender | $0.003 | Gender breakdown with sample sizes |
| Pay by degree | $0.003 | Degree major breakdown |
| Hourly rate report | $0.004 | Hourly percentiles by job and location |
| Bonus report | $0.004 | Bonus percentiles by job |
| Employee reviews | $0.005 | Written reviews with pros and cons |

Base rows only, using directory discovery:

| Rows | Directory pages | Cost |
|---|---|---|
| 100 | 1 | $0.72 |
| 1,000 | about 10 | $7.06 |
| 10,000 | about 100 | $70.42 |

That is $7 per 1,000 employer records. Ticking every optional block adds up to $0.046 per employer on top, so a 1,000 row run with the full picture lands near $53.

### Free users

Free plan accounts get 10 rows per run as a preview, which is enough to check the fields and the shape of the data. Paid plans run to 1,000,000 rows. [Upgrade your Apify plan](https://apify.com/pricing?fpr=vmoqkp) to lift the cap.

### Run it

1. Create a [free Apify account](https://apify.com/?fpr=vmoqkp). New accounts come with $5 in free credit, enough for roughly 700 employer records.
2. Open the actor and either pick a **Country** and **Industry**, or paste company names or PayScale employer URLs.
3. Tick only the optional blocks you actually need. Each one is billed separately and only when it returns data.
4. Click **Start**, then export the dataset as CSV, JSON, Excel or XML, or pull it from the Apify API.

### Use with AI agents (MCP)

```
claude mcp add apify --transport sse https://mcp.apify.com/sse?actors=parseforge/payscale-company-benefits-scraper
```

Prompts that work as written:

- "Which Health Care employers in the US offer tuition reimbursement and a 401(k)? Include how many employees reported each benefit."
- "Compare the benefits and median pay at Google, Inc., Accenture and Kaiser Permanente, and tell me which one has the best retirement package."
- "Find UK technology employers with a median salary above 50,000 that offer remote work, and give me their websites."

### Troubleshooting

**I get no results at all.** The most common cause is a company name that is not PayScale's spelling. `Amazon` is not a name on PayScale, `Amazon.com Inc` is. Open the company on payscale.com and copy the name from the page title, or paste the URL into Employer page URLs instead.

**I get fewer rows than I asked for.** A plain industry page holds 100 employers, so asking for 500 from one industry without a letter returns 100. Leave **Industry** empty to walk all 16, or set **Company initial** to reach the letter pages. Filters also remove rows after fetching, and free plan accounts are capped at 10.

**A field is empty or says Not Disclosed.** PayScale publishes the itemised health and retirement catalogue for some employers only, roughly 6 and 8 out of 20 in testing, and the ranked employee reported benefits for effectively all of them. `Not Disclosed` means the source withholds it, not that the scrape failed.

**An optional block is missing on some rows.** Blocks are added only when the source returned something, and you are not charged for the ones that came back empty. Company profile appeared on 86 of 120 employers in the verified wide run, employer ratings on 114 of 120.

**The run is slow.** Base rows come in at about 11 per second. Ticking Pay by job title or Employee reviews adds paginated page loads at seven records per page, which took the same run from 11 rows per second to about 1. Lower `maxJobsPerEmployer` and `maxReviewsPerEmployer` if you do not need the full tables.

### FAQ

| Question | Answer |
|---|---|
| Do I need a PayScale login or API key? | No. Everything it reads is public and anonymous. |
| How many employers can it reach? | 8,844 have a published benefits report across 64 country editions via the sitemap. The directory reaches roughly 2,000 per industry per country, measured at 2,274 in US Health Care and 2,087 in US Technology. |
| Which countries are covered? | 29 country editions have an employer directory, including US, CA, UK, AU, IN, DE, FR, NL, SG, IE, ZA and MX. The United Kingdom is UK, not GB. |
| How fresh is the data? | Each row carries `dataLastUpdated`, PayScale's own timestamp for that employer's report. |
| What does "employees reporting" mean? | The number of employees who told PayScale they receive that benefit. It is a sample, not a headcount, which is why the number ships with the benefit. |
| Can I filter without buying the extra data? | Yes. Filters run on the complete record before any optional block is billed. |
| Does it use a proxy? | No. PayScale serves this data without an anti-bot challenge, which is why the price per row is what it is. |
| Can I get salary by job title for an employer? | Yes, tick Pay by job title. It paginates the full table; Kaiser Permanente carries 162 job titles. |
| Is bulk salary data included on every row? | Median salary, total compensation, hourly rate and bonus are on every base row. Full percentiles are an optional block. |
| What happens if a company is not on PayScale? | The run writes an error row naming the company and carries on. Error rows are never charged. |
| Can I export to Excel? | Yes. CSV, JSON, Excel and XML are all available from the dataset, plus the Apify API. |

### Related actors

- [PayScale Salary Scraper](https://apify.com/parseforge/payscale-scraper?fpr=vmoqkp) for the same site organised by job title instead of employer
- [Levels.fyi Salary Scraper](https://apify.com/parseforge/levels-fyi-scraper?fpr=vmoqkp) for tech compensation with stock and bonus splits
- [Glassdoor Scraper](https://apify.com/parseforge/glassdoor-scraper?fpr=vmoqkp) for company reviews and ratings
- [Glassdoor Jobs Scraper](https://apify.com/parseforge/glassdoor-jobs-scraper?fpr=vmoqkp) for openings with advertised pay
- [Bayt Scraper](https://apify.com/parseforge/bayt-scraper?fpr=vmoqkp) for Gulf and MENA jobs and salary data

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more scrapers.

Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

Disclaimer: this is an unofficial scraper and is not affiliated with, endorsed by, or connected to PayScale. It collects only data that PayScale publishes publicly, without logging in and without circumventing any access control. Employee reviews are user generated content published openly on the source site. If you process personal data from the output, GDPR, CCPA and PIPL obligations are yours as the data controller: keep only what you need, honour deletion requests, and do not use the data to identify or target individuals.

# Actor input Schema

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

PayScale employer report URLs, for example https://www.payscale.com/research/US/Employer=Google%2C\_Inc./Benefits. Any report type works (Salary, Bonus, Reviews); it is rewritten to the Benefits report. This is the most precise way to name companies.

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

Company names spelled the way PayScale spells them, for example 'Google, Inc.', 'Kaiser Permanente', 'Target Corporation'. The name is turned into PayScale's own slug, which matched 800 of 800 directory entries in testing. Informal names such as 'Amazon' or 'IBM' are not PayScale's spelling and will not resolve; use the industry directory or Employer page URLs for those.

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

Country edition of PayScale to read. Each country keeps its own employer directory, salaries and currency. Note that the United Kingdom is UK, not GB.

## `industry` (type: `string`):

Browse one industry from the country directory. Leave empty to walk every industry the country publishes (16 in the United States, fewer in smaller editions). Measured US totals: Health Care 2,274 employers, Technology 2,087, Nonprofits 1,473.

## `letter` (type: `string`):

Restrict the directory walk to companies starting with this letter. The plain industry page returns its top 100 employers; the letter pages are how you reach past that cap.

## `discoverFromSitemap` (type: `boolean`):

Read PayScale's research sitemaps and take every employer that has a published Benefits report, 8,844 of them across 64 country editions. This is the only surface that reaches countries with no employer directory. It downloads large sitemap files, so it is slower to start than the directory walk.

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

Free users: limited to 10 items (preview). Paid users: up to 1,000,000.

## `requiredBenefits` (type: `array`):

Keep only employers whose published benefits include every one of these. The list is the full set of benefit names PayScale publishes, read off a 70-employer sample. Matching runs against the ranked employee-reported benefits plus the health and retirement catalogues, and it happens before any optional block is bought, so filtering on a field costs nothing.

## `minBenefitProfileCount` (type: `integer`):

Drop employers whose benefits are based on fewer than this many employee reports. Use it to cut thin, low-confidence records. Leave empty to keep everything.

## `minMedianSalary` (type: `number`):

Keep only employers whose median reported salary is at least this, in the country edition currency. Decimals are accepted. Employers with no reported salary are dropped when this is set.

## `maxMedianSalary` (type: `number`):

Keep only employers whose median reported salary is at most this, in the country edition currency. Decimals are accepted.

## `onlyWithBenefitLists` (type: `boolean`):

PayScale publishes the itemised health and retirement plan catalogue for some employers only (6 and 8 of 20 in testing). Tick this to keep just those. The ranked employee-reported benefits are present for every employer either way.

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

Website, domain, founding date, organisation type, employee count range, logo, Wikipedia link, former names and the headquarters address. Comes from the same page load, so it adds no extra request.

## `includeRelatedEmployers` (type: `boolean`):

Companies PayScale considers comparable by pay, each with its median and percentile spread. Around 19 of 20 employers carry this. No extra request.

## `includePeerComparison` (type: `boolean`):

Job satisfaction, stress rating and gender split for this employer next to three named competitors. Published for roughly a quarter of employers. No extra request.

## `includeOfficeLocations` (type: `boolean`):

Total number of locations PayScale holds pay data for, plus the top ten cities with their own report URLs. No extra request.

## `includeCompensationPercentiles` (type: `boolean`):

The 10th, 25th, 50th, 75th and 90th percentile for salary, total compensation, hourly rate, bonus, profit sharing and commission, each with its sample size. No extra request.

## `includeRatings` (type: `boolean`):

Nine scored dimensions with sample sizes: overall employee satisfaction, fair pay, pay transparency, pay policy, appreciation, company outlook, learning and development, manager communication and manager relationship. Needs one extra page load, and was present for 15 of 20 employers tested.

## `includePayByJob` (type: `boolean`):

Median and percentile pay for every job title reported at the employer, paginated. Kaiser Permanente carries 162 titles. Needs extra page loads.

## `includePayByLocation` (type: `boolean`):

Median and percentile pay broken down by city and state.

## `includePayByExperience` (type: `boolean`):

Median and percentile pay by experience band, for example 1-4 years or 10-19 years.

## `includePayByGender` (type: `boolean`):

Median and percentile pay for men and women with sample sizes, which is what a gender pay gap calculation needs.

## `includePayByDegree` (type: `boolean`):

Median and percentile pay by degree major.

## `includeHourlyRateReport` (type: `boolean`):

The hourly pay report: percentiles, hourly rate by job title and by location, plus PayScale's written summary. Needs one extra page load.

## `includeBonusReport` (type: `boolean`):

The bonus report: percentiles, bonus by job title and PayScale's written summary. Needs one extra page load.

## `includeReviews` (type: `boolean`):

Employee written reviews with job title, city, pros and cons and the date. Seven per page, so a company with 69 reviews costs ten extra page loads. Around half of employers have any.

## `maxJobsPerEmployer` (type: `integer`):

Upper bound on job titles collected when Pay by job title is on. Seven arrive per page load.

## `maxReviewsPerEmployer` (type: `integer`):

Upper bound on reviews collected when Employee reviews is on. Seven arrive per page load.

## Actor input object example

```json
{
  "startUrls": [],
  "companyNames": [],
  "country": "US",
  "industry": "Technology",
  "discoverFromSitemap": false,
  "maxItems": 10,
  "requiredBenefits": [],
  "onlyWithBenefitLists": false,
  "includeCompanyProfile": false,
  "includeRelatedEmployers": false,
  "includePeerComparison": false,
  "includeOfficeLocations": false,
  "includeCompensationPercentiles": false,
  "includeRatings": false,
  "includePayByJob": false,
  "includePayByLocation": false,
  "includePayByExperience": false,
  "includePayByGender": false,
  "includePayByDegree": false,
  "includeHourlyRateReport": false,
  "includeBonusReport": false,
  "includeReviews": false,
  "maxJobsPerEmployer": 50,
  "maxReviewsPerEmployer": 20
}
```

# Actor output Schema

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

No description

## `csv` (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 = {
    "startUrls": [],
    "companyNames": [],
    "country": "US",
    "industry": "Technology",
    "maxItems": 10,
    "requiredBenefits": [],
    "maxJobsPerEmployer": 50,
    "maxReviewsPerEmployer": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/payscale-company-benefits-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 = {
    "startUrls": [],
    "companyNames": [],
    "country": "US",
    "industry": "Technology",
    "maxItems": 10,
    "requiredBenefits": [],
    "maxJobsPerEmployer": 50,
    "maxReviewsPerEmployer": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/payscale-company-benefits-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 '{
  "startUrls": [],
  "companyNames": [],
  "country": "US",
  "industry": "Technology",
  "maxItems": 10,
  "requiredBenefits": [],
  "maxJobsPerEmployer": 50,
  "maxReviewsPerEmployer": 20
}' |
apify call parseforge/payscale-company-benefits-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/payscale-company-benefits-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/9MPLmtPO1uKCI7aN1/builds/osoyTfenXE38I3HuM/openapi.json
