Glassdoor Company Reviews Scraper avatar

Glassdoor Company Reviews Scraper

Pricing

Pay per event

Go to Apify Store
Glassdoor Company Reviews Scraper

Glassdoor Company Reviews Scraper

Scrape Glassdoor company reviews by company name: rating breakdowns, pros/cons, job title, employment status, review date, and CEO/recommend-to-friend signals, plus a company rating summary. Camoufox-powered to clear the target's bot defenses. Pay only per row scraped.

Pricing

Pay per event

Rating

0.0

(0)

Developer

DevilScrapes

DevilScrapes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share


🎯 What this scrapes

For each company you request, this Actor visits Glassdoor's public company Overview page and its Reviews pages and emits two kinds of rows into one dataset:

  1. company_summary — one row per company: overall rating, CEO approval, business outlook, and recommend-to-friend percentage.
  2. review — one row per individual review: overall + sub-category ratings (work-life balance, culture, career opportunities, compensation, senior management, diversity), pros, cons, advice to management, job title, employment status, review date, and helpful-vote counts.

No login, no account, no reviewer de-anonymization — only what Glassdoor's public pages show anonymously.

🔥 Features

  • We clear the bot defenses guarding Glassdoor's review pages — a hardened browser layer with a proven navigation sequence gets through where a plain HTTP request gets turned away.
  • We rotate proxy sessions on every retry — a fresh exit IP and session whenever a company's fetch fails.
  • Per-company fault isolation — one company that fails to resolve or parse never fails the whole run; it's logged and skipped, and every other company still completes.
  • Pydantic v2 input + output validation — every row is a typed, schema-enforced record; fields Glassdoor doesn't expose come back null, never guessed.
  • Pay-Per-Event pricing — you're charged per row actually written to your dataset, not per request attempted.
  • Honest throughput — Glassdoor's own anonymous-access limits cap full review text at a few reviews per page load; maxReviewsPerCompany and pricing reflect that reality rather than promising cheap bulk collection we can't deliver without a login we refuse to use.

💡 Use cases

  • Employer-brand monitoring — track how your own company's reviews and ratings trend over time.
  • Recruiting intelligence — pull culture and compensation signals for target companies before an outreach campaign.
  • Competitive talent research — compare rating breakdowns and CEO approval across a peer set.
  • Investment due diligence — culture and leadership signals as a qualitative input alongside financials.

⚙️ How to use it

  1. Click Try for free at the top of the page.
  2. Enter one or more companyNames — or, if you already know Glassdoor's internal employerId for a company, pass employerIds positionally alongside it to skip resolution entirely.
  3. Set maxReviewsPerCompany to the depth you need (higher costs more — see Pricing).
  4. Click Start. Output streams into the run's dataset.
  5. Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.

📥 Input

FieldTypeRequiredDefaultNotes
companyNamesarrayyesCompany names to scrape, e.g. ["Google", "Meta"].
employerIdsarraynoKnown Glassdoor employerId values, paired positionally with companyNames. Skips resolution — the most reliable path.
maxReviewsPerCompanyintegerno303-500. Anonymous access renders ~3 full reviews per page load; higher values cost proportionally more.
includeCompanySummarybooleannotrueEmit one company_summary row per company — no extra request.
countryCodestringno"US"2-letter ISO — pinned proxy exit country.
proxyConfigurationobjectno{"useApifyProxy": true}Apify Proxy editor.

Example input

{
"companyNames": ["Google"],
"employerIds": [9079],
"maxReviewsPerCompany": 30,
"includeCompanySummary": true,
"countryCode": "US"
}

📤 Output

Every row is one dataset item — a review or a company_summary, distinguished by row_type.

FieldTypeNotes
row_typestring"review" or "company_summary".
company_name / employer_idstring / integerRequested company and resolved Glassdoor id.
review_idstring | nullNull for company_summary rows.
review_datestring | nullISO-8601.
job_title / employment_statusstring | nullReviewer's stated role and status.
overall_rating + 6 sub-ratingsfloat | nullWork-life balance, culture, career, compensation, senior management, diversity.
pros / cons / advice_to_management / summarystring | nullReview text fields.
recommend_to_friend / ceo_approval_responseboolean | nullPer-review signals, when the reviewer set them.
count_helpful / count_not_helpfulinteger | nullHelpful-vote counts.
company_overall_rating, company_ceo_approval_pct, company_rating_business_outlook, company_recommend_to_friend_pctfloat | nullcompany_summary aggregate fields; null on review rows.
source_url / scraped_atstringFetched page URL, ISO-8601 timestamp.

Example output

{
"row_type": "review",
"company_name": "Google",
"employer_id": 9079,
"review_id": "105125064",
"review_date": "2026-08-09T23:03:51.940",
"job_title": "Hair Transplant Technician",
"employment_status": "Current Employee, 2 year(s)",
"overall_rating": 3,
"pros": "Good learning experience and flexible working environment.",
"cons": "Long working hours and sometimes limited career growth.",
"advice_to_management": "Provide better training opportunities.",
"count_helpful": 0,
"count_not_helpful": 0,
"source_url": "https://www.glassdoor.com/Reviews/Google-Reviews-E9079.htm",
"scraped_at": "2026-08-12T09:00:00+00:00"
}

💰 Pricing

Pay-Per-Event — you pay only when these events fire:

EventUSDWhat it is
actor-start$0.02One-off warm-up charge per run.
review-row$0.01Per review row written to your dataset.
company-summary-row$0.01Per company-summary row written (when includeCompanySummary=true).

Example: 1 000 review rows ≈ $10.00. This sits at the top of our usual $1-10/1,000 range on purpose — Glassdoor renders full review text only a few rows per page load without a login, and we refuse to use one, so collecting real volume costs real browser-navigation compute. No subscription, no minimum, no card to start.

🚧 Limitations

Anonymous access only — no login, ever. Glassdoor renders roughly 3 full reviews per page load for unauthenticated visitors, so maxReviewsPerCompany above a few hundred means real added runtime and cost, not a cheap bulk export. Company-name-to-employerId resolution is still being hardened — pass employerIds directly for the most reliable results today. Some review sub-fields (recommend-to-friend, CEO-approval vote) are only present when a reviewer chose to set them and come back null otherwise.

❓ FAQ

Is this legal?

We only fetch content Glassdoor makes publicly available on its company and review pages, anonymously — no login, no reviewer de-anonymization. Respect Glassdoor's terms of service before using output commercially.

Why is a field null?

Either Glassdoor didn't collect that field for a given review (recommend-to-friend and CEO-approval votes are optional for reviewers), or resolution for that company failed and it was skipped — check the run's status message for a breakdown.

Do I need my own proxy?

No — a proxy is wired in by default; proxyConfiguration is optional if you want to bring your own.

Why did I get fewer reviews than maxReviewsPerCompany?

Glassdoor stops rendering full review text past a point for anonymous visitors on some companies; the Actor stops cleanly and reports how many rows it actually collected rather than erroring out.

💬 Your feedback

Spotted a bug, hit a weird edge case, or need a new field? Open an issue on the Actor's Issues tab on Apify Console — we ship fixes weekly and we read every report.