Comparably Reviews Scraper
Pricing
from $3.30 / 1,000 item extracteds
Comparably Reviews Scraper
Extract public Comparably employee reviews, culture-category scores, CEO ratings, awards, and compensation signals for employer benchmarking.
Pricing
from $3.30 / 1,000 item extracteds
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Collect public Comparably reviews and company culture ratings for employer benchmarking. Give the Actor Comparably company URLs, slugs, or names and receive typed company profiles plus individual employee survey answers in JSON, CSV, Excel, or any Apify Dataset integration.
The Actor is designed for recurring company watchlists. It returns source-linked records instead of a page-shaped HTML dump, including culture-category grades, CEO and leadership ratings, review text and metadata, visible awards, and compensation signals.
What can you collect?
| Record | Useful fields |
|---|---|
| Company | identity, website, address, revenue signal, participants, rating/review totals |
| Culture | overall score, letter grade, star rating, percentile, category grades |
| Leadership | CEO name, CEO score, leadership and executive-team grades |
| Compensation | compensation and perks/benefits grades and percentile labels |
| Awards | visible award titles and image URLs, remaining award count |
| Employee review | review ID/URL, survey question, normalized category, text, department, date |
Company profiles and employee reviews share the default Dataset so scheduled runs, webhooks, and downstream tools can consume one stable output. Use recordType to separate them.
Who is it for?
- People analytics teams benchmark employee sentiment across a watchlist.
- Recruiting teams compare leadership, compensation, and workplace-culture signals.
- Employer-brand teams review recurring employee feedback by question category.
- HR technology teams enrich company records with source-attributed public indicators.
- Researchers and analysts export reproducible snapshots for trend analysis.
Why use it?
Comparably exposes profile metrics and employee answers across multiple page sections. This Actor normalizes those surfaces, keeps source URLs, deduplicates review answers, filters by useful question categories, and handles pagination. It also uses bounded fresh browser identities when Comparably presents an anti-bot challenge; a challenged page is treated as an error, never as an empty successful result.
Getting started
- Open the Actor input.
- Add
companiessuch asgoogleandmicrosoft, or paste public URLs understartUrls. - Keep both profile and review output enabled, or disable the record type you do not need.
- Optionally select review categories and increase
maxReviewPages. - Set
maxItemsto your dataset budget. - Run the Actor and open Dataset → Overview.
- Export the results or connect a webhook, Google Sheets, Make, Zapier, or your own API client.
Input parameters
| Field | Type | Default | Meaning |
|---|---|---|---|
companies | string array | — | Company names or Comparably slugs. |
startUrls | URL array | Google reviews URL | Public Comparably company/profile/reviews URLs. |
includeCompanyProfile | boolean | true | Emit one culture profile per company. |
includeReviews | boolean | true | Emit employee review answers. |
reviewCategories | string array | all | Filter reviews to Overall, Leadership, Compensation, Team, Culture & Environment, Interview, Outlook, or Company. |
maxReviewPages | integer | 1 | Review pages per company, from 1 to 20. |
maxItems | integer | 20 | Global company + review record limit. |
maxSessionAttempts | integer | 6 | Fresh US residential browser identities tried per company, bounded at 6. |
At least one company or start URL is required. Non-Comparably URLs, malformed company URLs, empty scope, and a configuration that disables both output types fail clearly.
Example input
{"companies": ["google"],"includeCompanyProfile": true,"includeReviews": true,"reviewCategories": ["Leadership", "Compensation"],"maxReviewPages": 2,"maxItems": 60}
Example company output
{"recordType": "company","companyId": "23906","companyName": "Google","companySlug": "google","companyUrl": "https://www.comparably.com/companies/google","overallScore": 78,"overallGrade": "A","overallPercentile": "Top 10%","starRating": 4.6,"ceoName": "Sundar Pichai","ceoScore": 79,"cultureDimensions": [{ "category": "Compensation", "grade": "A+", "percentile": "Top 5%", "percentileValue": 5 }],"scrapedAt": "2026-09-04T15:41:00.000Z"}
Values are snapshots of the public source and can change. Optional source fields may be null.
Example review output
{"recordType": "review","companyName": "Google","companySlug": "google","reviewId": "3654039","reviewUrl": "https://www.comparably.com/companies/google/reviews/3654039/example","question": "Briefly describe your overall experience at your company","category": "Overall","text": "Public employee answer text appears here.","authorName": "Anonymous Review","department": null,"datePublished": "2026-05-16","page": 1}
Review categories
Categories are derived from the employee survey question, not guessed from sentiment. For example, leadership-team prompts map to Leadership, compensation-package prompts map to Compensation, and interview-process prompts map to Interview. Filtering changes which review rows are returned; it does not alter company profile dimensions.
How much does it cost to collect Comparably reviews?
The Actor uses pay-per-event pricing: a small one-time Run started event plus one Item extracted event for each company or review row saved. There is no charge for rejected, duplicate, challenged, or empty parser records.
At the BRONZE rate of $0.01 per start plus $0.0055 per record, 20 records cost about $0.12, 100 records about $0.56, and 1,000 records about $5.51. Other Apify plan tiers use their displayed tier price. Your run can also consume normal platform compute and proxy usage according to your Apify plan; maxItems gives you a predictable output cap.
Reliability, retries, and proxy use
Comparably protects company pages with PerimeterX. The Actor requires Apify Residential Proxy with US routing and uses Camoufox to obtain the public server-rendered page. It keeps cookies, browser context, and proxy identity coherent while collecting one company. A challenged identity is retired, and a materially fresh identity is tried up to maxSessionAttempts.
Images, fonts, and media are blocked to reduce transfer. If every bounded identity is challenged, the run fails with a non-zero status instead of silently returning no data.
Pagination and limits
Each review page contains multiple employee survey sections. maxReviewPages applies per company; maxItems applies to the entire run. The company profile counts as one item when enabled. The Actor stops accepting records when the global limit is reached and deduplicates repeated review/question pairs by stable review ID where available.
Recurring employer benchmarking
Create an Apify Task with a fixed watchlist and schedule it weekly or monthly. Send each completed Dataset to your warehouse. Join snapshots on companySlug, recordType, reviewId, and question; compare overallScore, CEO score, category grades, rating totals, and newly observed review IDs over time. The Actor captures snapshots—it does not itself send alerts or calculate historical deltas.
Spreadsheet and data-pipeline integrations
- Export the Dataset directly as CSV, JSON, XML, or Excel.
- Use the Google Sheets integration for a recurring employer scorecard.
- Trigger Make or Zapier after a successful run.
- Use a webhook to load rows into BigQuery, Snowflake, PostgreSQL, or a data lake.
- Use
recordType=companyfor one-row-per-employer tables andrecordType=reviewfor employee-answer tables.
Run with the Apify API
Replace YOUR_TOKEN with an Apify API token.
cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~comparably-company-culture-ratings-reviews/runs?token=YOUR_TOKEN&waitForFinish=300" \-H "Content-Type: application/json" \-d '{"companies":["google"],"maxItems":20}'
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/comparably-company-culture-ratings-reviews').call({companies: ['google', 'microsoft'],includeCompanyProfile: true,includeReviews: false,maxItems: 2,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("automation-lab/comparably-company-culture-ratings-reviews").call(run_input={"companies": ["amazon"],"reviewCategories": ["Leadership", "Compensation"],"maxReviewPages": 2,"maxItems": 60,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
Use with MCP and AI agents
Add the Actor to Claude Code through Apify MCP:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/comparably-company-culture-ratings-reviews"
Claude Desktop setup
Use this JSON configuration in Claude Desktop:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/comparably-company-culture-ratings-reviews"}}}
Cursor setup
Add the same MCP URL in Cursor Settings → MCP → Add server and name it apify.
VS Code setup
Add the same HTTP MCP server URL to your VS Code MCP configuration and enable the apify server for your workspace.
Example prompts:
- “Collect company-level Comparably culture ratings for Google and Microsoft.”
- “Return up to 50 Amazon leadership and compensation review answers.”
- “Create a table comparing CEO score and culture category grades for this employer watchlist.”
Legality and responsible use
This Actor collects fields visible on public Comparably company pages. Follow Comparably's terms, robots guidance, applicable database rights, privacy rules, and employment law. Do not use employee feedback to identify anonymous reviewers, make automated high-impact employment decisions, harass individuals, or create discriminatory profiles. Store only the data needed for a legitimate purpose and honor deletion or retention obligations.
Limitations
- No login, private employer dashboard, private survey response, or historical archive is accessed.
- Comparably can change markup, structured payloads, paging, or anti-bot controls.
- Public profiles differ: some fields, departments, dates, scores, or awards can be absent.
- Visible award cards may be a summary;
remainingAwardsreports the additional count. - Company-name input is normalized to a slug. If a brand's Comparably slug differs, supply the exact company URL.
- Sentiment classification, change detection, and notifications are downstream workflows, not Actor output.
Troubleshooting
Why did the run fail with a challenge error?
A bounded set of fresh US residential browser identities could not obtain a valid public page. Retry later rather than raising maxSessionAttempts repeatedly. The non-zero failure protects pipelines from treating a challenge as an empty dataset.
Why are there fewer rows than maxItems?
The selected company, pages, or category filter may expose fewer unique matching records. maxItems is a cap, not a promised count.
Why did a company name fail?
The normalized name may not match Comparably's actual slug. Copy the public company URL into startUrls.
FAQ
Can I collect only company scores?
Yes. Enable company profile output and disable employee review output.
Can I collect only employee reviews?
Yes. Disable company profile output. The Actor still reads the profile internally to attach canonical company identity to review records, but the profile row is omitted.
Does it support multiple companies?
Yes. Add multiple company names, slugs, or URLs. The global maxItems limit applies across the watchlist.
Does it detect new or changed reviews?
It returns stable review IDs, URLs, questions, dates, and scrape timestamps that your scheduled pipeline can compare. It does not maintain history or send alerts itself.
Related automation-lab Actors
- Glassdoor Jobs Scraper for public job-market workflows.
- Company Leadership Scraper for source-attributed public leadership records from company websites.
- Website Brand Identity Extractor for public company branding and messaging signals.