Glassdoor Salary & Reviews Intel - Comp Benchmarks, Interviews
Pricing
from $10.00 / 1,000 company records
Glassdoor Salary & Reviews Intel - Comp Benchmarks, Interviews
Salary distributions, rating sub-scores, review themes, and interview intel from logged-out public Glassdoor pages. Aggregates, not named reviewers. For comp benchmarking, recruiting, PE people-cost diligence. Glassdoor killed its public API in 2024, so there is no official feed.
Pricing
from $10.00 / 1,000 company records
Rating
0.0
(0)
Developer
Seibs.co
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
7 days ago
Last modified
Categories
Share
Glassdoor Salary & Reviews Intel
TL;DR for comp / total-rewards teams, recruiters, and PE people-cost diligence: Pulls salary distributions, company rating sub-scores, aggregated review themes, and interview intel straight off Glassdoor's logged-out public pages - then turns them into clean, anonymized aggregates you can benchmark against. Glassdoor killed its public API in 2024 and gates the data behind Cloudflare, so there is no official feed; this reads the same pages a browser shows without an account. Aggregates and short anonymized excerpts only - never named reviewers, usernames, or full review bodies. Free Apify plan covers exploration runs on your $5 platform credit.
Run it in 30 seconds
# Via the Apify Python SDKfrom apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("seibs.co/glassdoor-salary-intel").call(run_input={"mode": "full_intel","companies": ["Stripe", "Databricks"],"apify_proxy_groups": ["RESIDENTIAL"]})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
Or via curl:
curl -X POST "https://api.apify.com/v2/acts/seibs.co~glassdoor-salary-intel/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"mode": "full_intel", "companies": ["Stripe", "Databricks"]}'
Or click "Try for free" on this page if you prefer the no-code UI.
What you get
Each run produces:
- A clean dataset, filterable in the Apify console and downloadable as CSV or JSON
- Views for
overview(agent skim),companies(one row per company, all sub-scores),salaries(per-role comp), andinterviews - A sample-output preview at ./.actor/sample-output.json
Per record type:
company_record- profile + overall rating + culture / comp / work-life / management / career / diversity sub-scores, recommend-to-friend %, CEO approval %salary_datapoint- per role: base median with derived p25/p75, total-comp range, currency, pay period, sample countreview_intel- one aggregated record per company: rating histogram, rating trend by year, top pros / cons / advice themes (keyword frequency over sampled snippets)interview_intel- difficulty score + label, positive/neutral/negative experience split, offer rate, common questions
Live example output
The fastest way to see the shape is the bundled ./.actor/sample-output.json: one company_record for a generic "Acme Software" with plausible sub-scores, two salary_datapoint rows, one review_intel aggregate, and one interview_intel record. Run with your own companies list to fetch live data; coverage and field completeness depend on what Glassdoor exposes publicly for each employer (see the FAQ on blocked errors).
What does Glassdoor Salary & Reviews Intel do?
It resolves each company you give it (by name, or directly from a glassdoor.com URL) to its Glassdoor employer id, then fetches the logged-out public Overview / Salary / Reviews / Interview pages. Those pages hydrate from an embedded JSON blob (__NEXT_DATA__ / Apollo cache), so the actor parses that JSON - not the rendered HTML - which is far more stable than Glassdoor's churning CSS classes. From it the actor extracts the company rating sub-scores, the per-role salary distributions, a sample of pros / cons / advice text, and the interview stats. It then computes the aggregates locally: salary percentiles, keyword-frequency review themes, the rating trend by year, and a normalized interview-difficulty score. No login, no cookies, no LLM in the loop.
Responsible use / data scope
This actor is a public-data tool. It reads only logged-out, publicly-served Glassdoor pages - the same data a browser shows without an account. It does not log in, send cookies from your input, accept Glassdoor's terms, or bypass any paywall or login wall. If data requires an account, it is out of scope.
PII is minimized by design. The actor emits salary aggregates, company rating sub-scores, and keyword-frequency review themes - not named reviewers, usernames, or full individual review bodies. The only review text it surfaces is a small number of short (<=200 char) excerpts with emails, @handles, URLs, and proper-name bigrams stripped, included as illustrative color, not as attributed reviews. The theme extractors never retain author identity at all.
You are responsible for lawful use of the outputs. GDPR (EU) and CCPA (CA) apply to personal data even when it is public - keep data only as long as you need it, do not re-identify aggregates, and do not resell scraped personal data without a lawful basis. We deliberately scope to aggregates over named individuals precisely because aggregates are far lower-risk than named-person reviews.
AI / RAG / Agent
A turn-key comp + culture feed for sales-AI, recruiting copilots, and diligence agents. Records arrive pre-aggregated - base_median, rating sub-scores, difficulty_label, theme lists - so an agent can answer "what does Stripe pay a senior PM and how hard is the interview" without parsing raw HTML or doing its own stats. Compatible with LangChain, LlamaIndex, Pinecone, Weaviate, Chroma, and any MCP-aware runtime. The overview dataset view is a narrow, token-efficient slice built for tool calls; a mcp-glassdoor-salary-intel twin (agentic payments) is on the roadmap.
Features
- 5 modes - overview, salaries, reviews intel, interview intel, or full intel - so you pay only for the layers you need.
- Resolve by name or URL - pass
"Stripe"and the actor resolves the employer id via Glassdoor's public search, or paste a direct glassdoor.com Overview URL for an exact match. - Rating sub-scores - overall plus culture, compensation, work-life, senior management, career opportunities, diversity, recommend-to-friend %, and CEO approval %.
- Salary distributions - per-role base median with derived p25/p75, total-comp range, currency, pay period, and the underlying sample count.
- Aggregated review themes - local keyword + bigram frequency over sampled pros / cons / advice snippets, plus a rating histogram and rating-trend-by-year series. No LLM, no named reviewers.
- Interview intel - normalized 1-5 difficulty, positive/neutral/negative experience split, offer rate, and a de-duplicated common-questions list.
- Cloudflare-aware transport - real Chrome TLS impersonation, low concurrency, request jitter, exponential backoff, and session rotation, over the Apify RESIDENTIAL proxy by default.
- Monitor mode - run on a schedule and get only the change-delta plus an optional Slack digest.
- Cost-control - per-run budget guard + demo-mode soft-fail so runs finish SUCCEEDED.
Use cases
- Compensation benchmarking - pull
salary_datapointrows across a peer set and compare base medians / percentiles by role to calibrate offers. - Total-rewards & retention - track culture, comp, work-life, and management sub-scores plus the rating trend by year as a retention-risk proxy.
- PE / VC people-cost diligence - read rating sub-scores, review themes, and interview difficulty across a target and its comparables before close.
- Recruiting positioning - know a competitor's interview difficulty, offer rate, and the pros/cons candidates cite before you pitch against them.
- Comp-product backfill - a clean public-pages pipe for teams that lost the official Glassdoor API in 2024.
Modes
| Mode | What it returns per company |
|---|---|
company_overview | One company_record: profile + overall rating + all sub-scores. |
salaries | company_record plus per-role salary_datapoint rows (base median, p25/p75, total-comp range). |
reviews_intel | company_record plus one aggregated review_intel record (histogram, trend by year, top pros/cons/advice themes). |
interview_intel | company_record plus one interview_intel record (difficulty, experience split, offer rate, questions). |
full_intel | All of the above (highest cost per company). |
Input
See ./.actor/input_schema.json for the full form. Key fields:
{"mode": "full_intel","companies": ["Stripe", "Databricks"],"role_filter": ["software engineer", "product manager"],"max_salary_datapoints_per_company": 50,"max_reviews_sampled": 100,"include_interview": false,"apify_proxy_groups": ["RESIDENTIAL"],"concurrency": 2}
companies accepts names or direct glassdoor.com URLs. A direct Overview URL (with an EI_IE employer id) is the most reliable. No login is required, and you should never paste session cookies - the actor only reads logged-out pages.
Output
One company_record per company, followed (per mode) by salary_datapoint rows, a review_intel aggregate, and/or an interview_intel record.
{"record_type": "company_record","company": "Acme Software","overall_rating": 3.9,"comp_benefits_rating": 3.7,"work_life_balance_rating": 3.5,"senior_management_rating": 3.3,"recommend_to_friend_pct": 78.0,"ceo_approval_pct": 86.0,"glassdoor_url": "https://www.glassdoor.com/Overview/Working-at-Acme-Software-EI_IE1000001.htm"}
{"record_type": "salary_datapoint","company": "Acme Software","role_title": "Senior Software Engineer","base_p25": 167500,"base_median": 180000,"base_p75": 200000,"total_median": 235000,"currency": "USD","sample_count": 612}
A company that resolves but whose Salary / Reviews / Interview page is blocked still returns its company_record, plus a fetch_error record naming the page and how to recover. A company that cannot be resolved at all emits a top-level fetch_error with a reason.
Pricing
Pay-per-event:
| Event | Price | When charged |
|---|---|---|
company_record | $0.010 | Per company profile + rating sub-scores. |
salary_datapoint | $0.004 | Per role salary row (salaries / full_intel). |
review_enrichment | $0.008 | Once per company when the review-intelligence aggregate is computed. |
interview_intel | $0.010 | Once per company when interview intel is extracted. |
scheduled_delta_run | $0.050 | Once per scheduled monitor-mode run. |
A run that returns nothing costs nothing. A 2-company full_intel run with ~40 salary rows each costs roughly $0.40 - $0.55 (2 company records + ~80 salary datapoints + 2 review aggregates + 2 interview records). Residential proxy bandwidth (needed because Glassdoor is behind Cloudflare) is the underlying cost the prices clear.
FAQ
Q: Is this the official Glassdoor API? A: No. Glassdoor shut down its public/developer API in 2024 - there is no free tier, no signup, and no official feed. This actor reads the logged-out public pages a browser shows without an account and computes the aggregates itself. It is not affiliated with or endorsed by Glassdoor.
Q: Why do some companies return blocked errors?
A: Glassdoor sits behind Cloudflare and is aggressive about bot detection. The actor uses real Chrome TLS impersonation over the Apify RESIDENTIAL proxy, low concurrency, request jitter, and session rotation to look like a normal visitor, but a given page can still be challenged. When that happens the run still finishes SUCCEEDED and emits a fetch_error naming the page. Recovery: keep apify_proxy_groups=["RESIDENTIAL"], lower concurrency to 1, and re-run - it usually clears.
Q: Do you store reviewer identities? A: Never. The actor emits salary aggregates, rating sub-scores, and keyword-frequency review themes. It does not store or output reviewer names, usernames, or full individual review bodies. The only review text it surfaces is a small number of short (<=200 char) excerpts with emails, @handles, URLs, and proper-name bigrams stripped.
Q: How do I get the most reliable match for a company?
A: Paste the direct glassdoor.com Overview URL (the one with EI_IE<number> in it) into companies. Name resolution works for well-known employers, but a direct URL removes any ambiguity for common or generic names.
Q: Why is RESIDENTIAL the default proxy when other actors use DATACENTER? A: Because of Cloudflare. Most of the portfolio's intel actors hit open JSON APIs or government sites where datacenter IPs are fine. Glassdoor is the one source where datacenter IPs get challenged immediately, so residential is the sensible default here. It costs more bandwidth, which the per-record pricing accounts for.
Q: How current are the figures? A: As current as Glassdoor's public pages. Salary distributions and ratings are aggregates Glassdoor maintains; the rating-trend-by-year is computed from the dates on the sampled review snippets, so it reflects recent reviews, not the entire history.
Q: Can I schedule this? A: Yes. Save your input as a Task and run it on a cron to track comp and rating drift over time. Pair with monitor mode (below) so you only get the delta.
Save your input as an Apify Task
Apify Tasks let you save a configured input once and re-run it with one click - the foundation for schedules and monitor mode.
- Click
Runwith your input configured. - Click
Save as task. - Name it (e.g.
peer-set comp benchmark - monthly). - Reload the task page and click
Startanytime.
Run this on a schedule with Apify Schedules
- Save your input as a Task (above).
- Go to https://console.apify.com/schedules and
Create new schedule. - Pick your Task and set a cron expression (monthly on the 1st at 9am:
0 9 1 * *). - Save. Each run refreshes the comp and rating figures for your peer set.
Monitor mode (beta)
When this actor runs under an Apify Schedule, monitor mode emits only the change-delta (new / changed / removed records) instead of the full set, with a digest record at the top. The delta key is the company slug + record type + role, so a role's salary moving or a sub-score shifting shows up as a change. Provide monitor_webhook_url and the digest also fires to your Slack channel. Cost: one scheduled_delta_run event ($0.05) per scheduled run plus standard PPE on emitted delta records only.
Related Actors
- sec-edgar-intel - pair Glassdoor people-cost signals with exec comp and going-concern language from SEC filings for full diligence.
- hiring-signal-intel - live job postings + hiring-surge flags; combine "they are hiring fast" with "here is what they pay and how candidates rate them".
- b2b-sales-triggers - turn comp / culture signals into outbound triggers for your AE/SDR team.
Support
Open an issue via the Apify Store contact link. Include the run ID and input config so the issue is reproducible.
Changelog
See ./CHANGELOG.md.
Found this useful?
If this actor saved you time or money, please leave a quick review on the Apify Store. Reviews help other buyers find work that solves their problem: https://apify.com/seibs.co/glassdoor-salary-intel#reviews