Comparably $1๐ฐ Ratings, Culture, Reviews & Salaries Scraper
Pricing
from $1.00 / 1,000 results
Comparably $1๐ฐ Ratings, Culture, Reviews & Salaries Scraper
From $1/1K. Extract rich company data from comparably.com using company names or profile URLs. Get ratings, culture scores, CEO approval, employee reviews, salary insights, awards, revenue, headquarters, and more in structured JSON, CSV, or Excel format.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Abot API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 days ago
Last modified
Categories
Share
Comparably Scraper - Company Culture, Ratings, Reviews & Salaries
Extract structured company data from Comparably in one run. Give it a list of company names (or profile URLs) and get back one clean record per company: overall rating, culture score and grade, CEO score, 12 culture dimensions, employee reviews, salaries by job title, plus revenue, headquarters, awards and more. Lightweight and quick, so runs finish fast and stay cheap.
Why this scraper
- One clean record per company, not scattered fragments. Everything for a company (profile, reviews, salaries) arrives in a single row.
- Search by company name. Type "Google" and the actor resolves it to the right profile. No need to hunt for URLs first.
- More attributes than typical Comparably scrapers: revenue, phone, headquarters address, website, 12 culture dimensions, metro area, awards and leadership data, all included.
- Salaries by job title, with department and amount, attached to every company.
- Employee reviews with the question answered, author label, date and a permalink to each review.
- Fast and low cost: a lean collection path keeps runs quick and inexpensive at scale.
Data you get
Sample shape - values are illustrative placeholders, not from a live profile.
| Field | Example |
|---|---|
| companyId | 00000001 |
| name | Sample Company |
| url | https://www.comparably.com/companies/sample-company |
| website | http://www.example.com/ |
| phone | +1-000-000-0000 |
| address | 1 Example Plaza, Sample City, CA 00000, USA |
| revenue | 1000000000 |
| logo | https://cdn.comparably.com/00000000/l/sample-logo.png |
| employeeParticipantCount | 1000 |
| totalRatingsCount | 10000 |
| overallRating | 4.5 |
| letterGrade | A |
| cultureScore | 80 |
| cultureGrade | A |
| cultureScoreLabel | Top 10% |
| ceoName | Jane Doe |
| ceoScore | Top 5% |
| ceoTotalScore | 80 |
| metroName | Sample Metro |
| metroGrade | B |
| topDimensions | [{ "category": "CEO Rating", "grade": "A", "score": "Top 5%", "percent": 5 }] |
| bottomDimensions | [{ "category": "Team", "grade": "B", "score": "Top 20%", "percent": 20 }] |
| awardsCount | 10 |
| reviews | [ ... see below ... ] |
| salaries | [ ... see below ... ] |
Each item in reviews:
| Field | Example |
|---|---|
| reviewId | 00000001 |
| url | https://www.comparably.com/companies/sample-company/reviews/00000001/sample |
| question | Briefly describe your overall experience at your company |
| text | Great place to work, supportive team and good growth. |
| author | Anonymous Review |
| date | 2026-01-01 |
| postedAgo | Posted 10 days ago |
| department | Engineering |
Each item in salaries:
| Field | Example |
|---|---|
| jobTitle | Senior Product Manager |
| salary | $000,000 Salary + Bonus |
| department | Product |
| postedDate | Posted more than 30 days ago |
How to use
Search by company name (recommended):
{"mode": "search","companies": ["Google", "Microsoft", "Goldman Sachs"],"includeReviews": true,"includeSalaries": true,"maxReviews": 100}
Direct URLs (or bare slugs):
{"mode": "url","urls": ["https://www.comparably.com/companies/google","microsoft"]}
Profiles only, fastest and cheapest:
{"mode": "search","companies": ["Apple", "Netflix"],"includeReviews": false,"includeSalaries": false}
Lots of reviews for one company:
{"mode": "search","companies": ["Amazon"],"includeReviews": true,"maxReviews": 0,"maxReviewPages": 20,"includeSalaries": false}
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| mode | string | search | "search" to resolve company names, "url" for direct profile URLs. |
| companies | array | - | Search mode. Company names, one per line. |
| urls | array | - | URL mode. Comparably company URLs or bare slugs, one per line. |
| includeReviews | boolean | true | Attach employee reviews to each record. |
| maxReviews | integer | 100 | Reviews per company. 0 means unlimited (up to maxReviewPages). |
| maxReviewPages | integer | 5 | Safety cap on review pages per company (~75 reviews per page). |
| includeSalaries | boolean | true | Attach salary entries to each record. |
| maxCompanies | integer | 0 | Maximum companies across all inputs. 0 means unlimited. |
| proxy | object | Residential US | Proxy configuration. Residential (US) is recommended. |
| resumeFromRunId | string | - | Continue ONE interrupted run without re-collecting (or re-billing) companies it already returned. |
| incrementalMode | boolean | false | Recurring/scheduled monitoring of the same company list โ only NEW/UPDATED/REAPPEARED companies are returned on later runs. |
| stateKey | string | - | Incremental mode only. Name a monitoring campaign, or leave empty to derive one automatically from the company list + section settings. |
| emitUnchanged | boolean | false | Incremental mode only. Also return (and bill for) companies unchanged since the last run. |
| emitExpired | boolean | false | Incremental mode only. Also return (and bill for) companies no longer found, once a run fully scans the tracked list. |
Resume & recurring updates (#503)
Two distinct features, both off by default:
-
resumeFromRunIdcontinues ONE specific interrupted run: paste a previous run or dataset ID and this run skips every company slug already collected there. -
incrementalModeis for scheduling this actor again and again (e.g. weekly) against the same company list. The actor remembers the previous run's companies itself (keyed on the company list + section toggles, or your ownstateKey) and returns only what changed:NEWโ never seen before.UPDATEDโ a field changed since last seen (changedFieldslists which).UNCHANGEDโ nothing changed; suppressed (not returned or billed) unlessemitUnchangedis on.REAPPEAREDโ was previously EXPIRED, now seen again.EXPIREDโ was seen before, not found this run; only emitted (ifemitExpiredis on) after a run that scanned the entire company list (nomaxCompaniescap, noresumeFromRunId).
changeType,changedFields,firstSeenAt,lastSeenAtare only present on incremental-mode output rows โ a normal run's shape is unchanged.Comparably's reviews and ratings are the company's own live data (new reviews and salary entries post continuously), so a genuine rating/review-count move always classifies
UPDATEDโ it is never filtered out as noise. A pure reshuffle of thereviewslist (e.g. a new review inserted ahead of older ones) does not by itself count as a change; only an actual added/removed/edited review does.
Send results into your apps (MCP connectors)
Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape โ the Apify dataset is never changed.
What gets written to the connector: a condensed, human-readable summary of each record โ not the full JSON. Each item becomes one entry with a title and its key fields flattened to plain text. The complete record always stays in the Apify dataset.
- Authorize a connector once under Apify โ Settings โ Integrations (Notion, Linear, Airtable, or Apify).
- Select it in the "Pipe results into your apps" input field. (If the picker is empty, you haven't authorized a connector yet.)
- For Notion, also set
notionParentPageUrlto the page where items should be created.
The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip.
Output example
Sample shape - values are illustrative placeholders, not from a live profile.
{"companyId": 00000001,"slug": "sample-company","url": "https://www.comparably.com/companies/sample-company","name": "Sample Company","fullName": "Sample Company","mission": "Sample company mission statement goes here.","website": "http://www.example.com/","phone": "+1-000-000-0000","address": "1 Example Plaza, Sample City, CA 00000, USA","revenue": 1000000000,"employeeParticipantCount": 1000,"totalRatingsCount": 10000,"overallRating": 4.5,"letterGrade": "A","cultureScore": 80,"cultureGrade": "A","cultureScoreLabel": "Top 10%","ceoName": "Jane Doe","ceoScore": "Top 5%","ceoTotalScore": 80,"metroName": "Sample Metro","topDimensions": [{ "category": "CEO Rating", "grade": "A", "score": "Top 5%", "percent": 5 }],"reviews": [{"reviewId": "00000001","url": "https://www.comparably.com/companies/sample-company/reviews/00000001/sample","question": "Briefly describe your overall experience at your company","text": "Great place to work, supportive team and good growth.","author": "Anonymous Review","date": "2026-01-01","postedAgo": "Posted 10 days ago","department": "Engineering"}],"salaries": [{"jobTitle": "Senior Product Manager","salary": "$000,000 Salary + Bonus","department": "Product","postedDate": "Posted more than 30 days ago"}]}
Plan requirement
Comparably admits connections from US residential networks. Use Apify Residential proxy with country US (the prefilled default). The Apify Starter plan and above include Residential proxy access. On the free plan, without Residential proxy, runs may return no items.