# Comparably $1💰 Ratings, Culture, Reviews & Salaries Scraper (`abotapi/comparably-scraper`) Actor

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.

- **URL**: https://apify.com/abotapi/comparably-scraper.md
- **Developed by:** [AbotAPI](https://apify.com/abotapi) (community)
- **Categories:** Lead generation, Developer tools, Jobs
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## 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):

```json
{
  "mode": "search",
  "companies": ["Google", "Microsoft", "Goldman Sachs"],
  "includeReviews": true,
  "includeSalaries": true,
  "maxReviews": 100
}
````

Direct URLs (or bare slugs):

```json
{
  "mode": "url",
  "urls": [
    "https://www.comparably.com/companies/google",
    "microsoft"
  ]
}
```

Profiles only, fastest and cheapest:

```json
{
  "mode": "search",
  "companies": ["Apple", "Netflix"],
  "includeReviews": false,
  "includeSalaries": false
}
```

Lots of reviews for one company:

```json
{
  "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. |

### Output example

> Sample shape - values are illustrative placeholders, not from a live profile.

```json
{
  "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.

# Actor input Schema

## `mode` (type: `string`):

How to choose companies. 'Search by name' resolves each company name to its Comparably profile. 'Direct URLs' takes Comparably company URLs you already have.

## `companies` (type: `array`):

Search mode only. Company names to resolve, one per line (e.g. 'Google', 'Microsoft', 'Goldman Sachs'). Each is matched to its Comparably profile automatically.

## `urls` (type: `array`):

URL mode only. Comparably company profile URLs, one per line (e.g. https://www.comparably.com/companies/google). A bare slug like 'google' also works.

## `includeReviews` (type: `boolean`):

Attach employee reviews to each company record (text, question, author, date, permalink).

## `maxReviews` (type: `integer`):

Cap on reviews collected per company. Set 0 for unlimited (walks up to Max review pages).

## `maxReviewPages` (type: `integer`):

Safety cap on review pages to walk per company (~75 reviews per page).

## `includeSalaries` (type: `boolean`):

Attach salary entries (job title, amount, department) to each company record.

## `maxCompanies` (type: `integer`):

Maximum number of companies to scrape across all inputs. Default 20. Set 0 for unlimited.

## `proxy` (type: `object`):

Comparably admits US residential connections. Residential (US) is strongly recommended; datacenter is refused.

## Actor input object example

```json
{
  "mode": "search",
  "companies": [
    "Google",
    "Microsoft"
  ],
  "urls": [
    "https://www.comparably.com/companies/google"
  ],
  "includeReviews": true,
  "maxReviews": 100,
  "maxReviewPages": 5,
  "includeSalaries": true,
  "maxCompanies": 20,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "companies": [
        "Google",
        "Microsoft"
    ],
    "urls": [
        "https://www.comparably.com/companies/google"
    ],
    "maxCompanies": 20,
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("abotapi/comparably-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "companies": [
        "Google",
        "Microsoft",
    ],
    "urls": ["https://www.comparably.com/companies/google"],
    "maxCompanies": 20,
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("abotapi/comparably-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "companies": [
    "Google",
    "Microsoft"
  ],
  "urls": [
    "https://www.comparably.com/companies/google"
  ],
  "maxCompanies": 20,
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}' |
apify call abotapi/comparably-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=abotapi/comparably-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Comparably $1💰 Ratings, Culture, Reviews & Salaries Scraper",
        "description": "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.",
        "version": "1.0",
        "x-build-id": "KzM0HahCbQoW7tnJv"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/abotapi~comparably-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-abotapi-comparably-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/abotapi~comparably-scraper/runs": {
            "post": {
                "operationId": "runs-sync-abotapi-comparably-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/abotapi~comparably-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-abotapi-comparably-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Start mode",
                        "enum": [
                            "search",
                            "url"
                        ],
                        "type": "string",
                        "description": "How to choose companies. 'Search by name' resolves each company name to its Comparably profile. 'Direct URLs' takes Comparably company URLs you already have.",
                        "default": "search"
                    },
                    "companies": {
                        "title": "Company names",
                        "type": "array",
                        "description": "Search mode only. Company names to resolve, one per line (e.g. 'Google', 'Microsoft', 'Goldman Sachs'). Each is matched to its Comparably profile automatically.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "urls": {
                        "title": "Company URLs",
                        "type": "array",
                        "description": "URL mode only. Comparably company profile URLs, one per line (e.g. https://www.comparably.com/companies/google). A bare slug like 'google' also works.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "includeReviews": {
                        "title": "Include reviews",
                        "type": "boolean",
                        "description": "Attach employee reviews to each company record (text, question, author, date, permalink).",
                        "default": true
                    },
                    "maxReviews": {
                        "title": "Max reviews per company",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Cap on reviews collected per company. Set 0 for unlimited (walks up to Max review pages).",
                        "default": 100
                    },
                    "maxReviewPages": {
                        "title": "Max review pages per company",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Safety cap on review pages to walk per company (~75 reviews per page).",
                        "default": 5
                    },
                    "includeSalaries": {
                        "title": "Include salaries",
                        "type": "boolean",
                        "description": "Attach salary entries (job title, amount, department) to each company record.",
                        "default": true
                    },
                    "maxCompanies": {
                        "title": "Max companies",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of companies to scrape across all inputs. Default 20. Set 0 for unlimited.",
                        "default": 20
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Comparably admits US residential connections. Residential (US) is strongly recommended; datacenter is refused.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ],
                            "apifyProxyCountry": "US"
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
