Glassdoor Company Scraper avatar

Glassdoor Company Scraper

Pricing

from $3.50 / 1,000 results

Go to Apify Store
Glassdoor Company Scraper

Glassdoor Company Scraper

Scrape Glassdoor company overviews, reviews, salaries, and interviews. Takes a company URL or employer ID and returns structured records.

Pricing

from $3.50 / 1,000 results

Rating

0.0

(0)

Developer

Crikit

Crikit

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Scrape Glassdoor company overviews, reviews, salaries, and interviews from any company URL or employer ID. Returns structured records per company with full ratings, CEO data, salary percentiles, interview difficulty and questions, and review pros/cons.

This is a Python actor that hits Glassdoor's public pages directly, extracts the embedded React Server Component JSON, and pushes one dataset record per data point. Cookie-warmed session, residential US proxies, Chrome TLS impersonation, automatic Cloudflare-challenge recovery.

What you get

Per company, the actor emits multiple records, distinguishable by the recordType field:

  • overview - overall rating, sub-scores (work-life balance, culture, comp, leadership, career, diversity, CEO approval, business outlook, recommend-to-friend), CEO info, total review count, employer name, logo, source URL.
  • review - review id, summary, pros, cons, advice, ratings (overall + 8 subscores), job title, employment status, current-job flag, tenure, language, location, helpful counts, employer responses, date.
  • salary - job title, pay period, base pay (median), additional cash (median), total pay (median), currency, salary sample size. All values are P50 median from Glassdoor's percentile distribution.
  • interview - interview id, job title, process description, difficulty (numeric 1-5), outcome (NO_OFFER / ACCEPT_OFFER / DECLINE_OFFER / NO_OFFER), experience (POSITIVE/NEUTRAL/NEGATIVE), interview questions list, application source, location, date.

All records carry shared metadata: employerId, employerName, employerSlug, employerLogoUrl, glassdoorUrl.

How to use

  1. Paste a Glassdoor company URL into the input (Overview, Reviews, Salary, or Interview URLs all accepted).
  2. Toggle which record types you want.
  3. Set per-company caps for reviews, salaries, interviews.
  4. Run.
{
"companyUrls": [
"https://www.glassdoor.com/Overview/Working-at-Google-EI_IE9079.11,17.htm",
"https://www.glassdoor.com/Overview/Working-at-Microsoft-EI_IE1651.11,20.htm"
],
"includeOverview": true,
"includeReviews": true,
"includeSalaries": true,
"includeInterviews": true,
"maxReviewsPerCompany": 50,
"maxSalariesPerCompany": 50,
"maxInterviewsPerCompany": 50
}

Input fields

FieldTypeDescription
companyUrlsarray of stringsGlassdoor company URLs (Overview/Reviews/Salary/Interview).
employerIdsarray of stringsAlternative input: numeric Glassdoor employer IDs.
includeOverviewbooleanEmit overview records. Default true.
includeReviewsbooleanEmit review records. Default true.
includeSalariesbooleanEmit salary records. Default true.
includeInterviewsbooleanEmit interview records. Default true.
maxReviewsPerCompanyintegerCap on reviews per company. 0 = no cap. Default 50.
maxSalariesPerCompanyintegerCap on salaries per company. 0 = no cap. Default 50.
maxInterviewsPerCompanyintegerCap on interviews per company. 0 = no cap. Default 50.
proxyConfigurationobjectApify proxy config. Residential US recommended (and prefilled).

Sample output

Overview record

{
"recordType": "overview",
"employerId": 9079,
"employerName": "Google",
"employerSlug": "Google",
"employerLogoUrl": "https://media.glassdoor.com/sql/9079/google-squarelogo-1441130773284.png",
"glassdoorUrl": "https://www.glassdoor.com/Overview/Working-at-Google-EI_IE9079.11,17.htm",
"overallRating": 4.4,
"workLifeBalanceRating": 4.2,
"cultureAndValuesRating": 4.2,
"diversityAndInclusionRating": 4.4,
"careerOpportunitiesRating": 4.2,
"compensationAndBenefitsRating": 4.5,
"ceoRating": 0.82,
"businessOutlookRating": 0.81,
"recommendToFriendPercent": 0.87,
"totalReviewCount": 48160,
"ratedCeo": {"id": 380236, "name": "Sundar Pichai", "photoUrl": "..."}
}

Review record

{
"recordType": "review",
"employerId": 9079,
"reviewId": 103981367,
"summary": "Exciting opportunities, but challenging work environment",
"pros": "Lots of resources, great colleagues, food",
"cons": "Politics, very crowded, difficult to have impact",
"ratingOverall": 5,
"ratingWorkLifeBalance": 0,
"ratingCareerOpportunities": 0,
"ratingCompensationAndBenefits": 0,
"ratingCultureAndValues": 0,
"jobTitle": "Engineering Director",
"employmentStatus": "REGULAR",
"isCurrentJob": true,
"lengthOfEmployment": 20,
"languageId": "eng",
"reviewDateTime": "2026-05-15T10:15:24.850"
}

Salary record (P50 / median)

{
"recordType": "salary",
"employerId": 11159,
"employerName": "Salesforce",
"jobTitle": "Account Executive",
"payPeriod": "ANNUAL",
"basePay": 124724.82,
"additionalCash": 92548.23,
"totalPay": 217273.05,
"currency": "USD",
"numSalaries": 2541
}

Interview record

{
"recordType": "interview",
"employerId": 11159,
"interviewId": 103974704,
"jobTitle": "LMTS, Software Engineering",
"processDescription": "...",
"difficulty": 3,
"offer": "NO_OFFER",
"experience": "NEGATIVE",
"questions": [],
"location": "Bengaluru",
"interviewDateTime": "2026-05-01T00:00:00"
}

Pricing

Pay-per-event flat fee: $0.0035 per record written to the default dataset.

That's an Overview record, a Review record, a Salary record, or an Interview record - each $0.0035.

Cheaper than the comparable competitor at $0.00475 per record + a $0.005 actor-start fee. No actor-start fee here.

Limits, quirks, and "why is reviewCount so low?"

  • Reviews per company are capped at the page-1 inline JSON (typically ~3 records). Glassdoor gates additional review pages behind a login wall for unauthenticated traffic. This actor stays unauthenticated by design (no cookie or sessionid input required) so the review subset is the same set Glassdoor shows in its featured-review block.
  • Salaries paginate freely (~10 records per page, many pages per company).
  • Interviews paginate freely (~5 records per page, many pages per company).
  • Glassdoor regional redirects: from non-US IPs, the site redirects to glassdoor.ca, .com.br, etc. The actor follows these and parses the same payload.

Performance and reliability

  • Anti-bot: Cloudflare Bot Management. The actor uses Chrome 131 TLS fingerprint impersonation (via curl_cffi) and rotates session tokens on Apify residential US proxies. Cookies from the company Overview page are warmed and carried across all data-type fetches.
  • Auto-recover: when a request gets challenged, the actor rotates proxy session + TLS profile and re-warms. 5 attempts before giving up on a page.
  • Concurrency: 1 per company (sequential by design - Cloudflare gets sensitive past 5 concurrent residential sessions per minute per target).

What this actor does NOT do

  • Jobs scraping (see other Glassdoor Jobs actors on Apify).
  • Authenticated review pagination past Glassdoor's login wall (would require user cookies; not supported here).
  • Salary data in non-USD currencies (returned as-is; not converted).

FAQ

Q: Can I increase the review count past 3? Not without authenticating to Glassdoor. This actor is unauthenticated by design.

Q: Does it work for non-US companies? Yes, but the page may redirect to a country-specific Glassdoor (.ca, .com.br). Data is the same. The actor handles redirects automatically.

Q: Why Python and not Node? Curl_cffi (Chrome TLS impersonation) is Python-only. The Node ecosystem has Patchright/Camoufox but those require a full browser and 10× the memory.

Q: How do I find a company's employer ID? Visit the company on Glassdoor and grab the URL. The number after EI_IE or E is the ID. E.g. EI_IE9079 → 9079.