# Blind (TeamBlind) Reviews Scraper (`solidcode/teamblind-scraper`) Actor

\[💰 $2 / 1K] Extract anonymous employee reviews from Blind (teamblind.com) — pros, cons, overall rating plus 5 sub-ratings, job title, tenure and location — plus a company summary row with average ratings. Full review text recovered from review permalinks, no login needed.

- **URL**: https://apify.com/solidcode/teamblind-scraper.md
- **Developed by:** [SolidCode](https://apify.com/solidcode) (community)
- **Categories:** Jobs, Social media, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.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 web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## Blind (TeamBlind) Reviews Scraper

Turn Blind's anonymous employee reviews into a clean, structured dataset — full pros and cons, an overall score plus five named sub-ratings, job title, current-or-former status, tenure, location and posting date, with an optional company summary row carrying every average. Point it at a company name or paste a Blind link and it walks the whole review history, newest first. Built for compensation and HR analysts, employer-brand teams, recruiters, and competitive-intelligence researchers who need candid workplace sentiment in a spreadsheet — without reading thousands of reviews one page at a time behind a login wall.

### Why This Scraper?

- **Complete review text on every page, not the truncated preview** — Blind shows the full pros and cons only for the first 30 reviews of a company; every review after that is served as placeholder filler. This extractor detects that and reads each affected review's own page, so the dataset carries the reviewer's real words. Verified across 13 test runs: zero filler rows.
- **Six ratings per review, not one** — the reviewer's overall score plus five named sub-ratings on Blind's 1–5 scale: career growth, work-life balance, compensation, culture, and management.
- **A company summary row with averages** — one extra row per company holding the six average ratings, the total review count on Blind, headquarters, industry, employee-size band, founding year, website and logo.
- **Scales from a 41-review startup to a 31,042-review employer** — Anthropic returns 41 reviews; Amazon measured 31,042. Set the limit to 0 and it collects every one; above roughly 15,000 reviews, raise the run's `Timeout` first and the run tells you so before it starts.
- **Incremental mode for scheduled watches** — "Only reviews I haven't seen before" remembers what earlier runs returned and stops as soon as it reaches ground it has already covered, so a daily or weekly check returns only genuinely new reviews.
- **Reviewer context on every row** — job title, current vs former employee, start year, end year, tenure in years, city or state, ISO country code, and the stated reason for leaving when a former employee gave one.
- **40 fields on every review row** — six ratings, the reviewer's job title, start and end year, computed tenure, city or state, ISO country code, helpful-vote count, Blind's own review id and a direct permalink, so the dataset joins straight onto whatever you already have.
- **Company names are case-insensitive, and links work too** — `twilio`, `Twilio` and `TWILIO` all resolve; you can also paste a company's reviews link, or a link to one single review to pull just that review.
- **Fast enough for interactive work** — measured on the platform, start to finish: 61 rows in 23 seconds, 93 rows across three employers in 27 seconds, and 211 rows from a 31,042-review employer in 48 seconds, with the first 100 of those on screen inside 35 seconds. A multi-company benchmark finishes while you wait.

### Use Cases

**Compensation & HR Analytics**

- Benchmark compensation sentiment across a peer group using the dedicated compensation sub-rating
- Track work-life-balance and management scores by job title to find where morale actually breaks
- Compare current-employee versus former-employee ratings to measure post-exit sentiment drop
- Feed tenure and exit-year data into attrition models

**Employer Brand & Reputation**

- Monitor your own company's rating trend and catch a slide the month it starts
- Read the reason-for-leaving text across all former employees to prioritise retention fixes
- Track how the six sub-ratings drift year by year using `yearStarted` and `postedAt`
- Quantify culture and management perception before a rebrand or leadership change

**Recruiting & Talent Intelligence**

- Build target lists of companies whose engineers rate career growth poorly
- Prepare candidate-facing talking points from the honest pros of a competitor's workplace
- Compare a role's sentiment across geographies using the location and country fields

**Competitive & Market Research**

- Benchmark a whole sector by running every company in it and comparing summary rows
- Spot reorganisation or layoff signals in a spike of former-employee reviews
- Track a newly funded competitor's rating from its first handful of reviews onward

**Data Science & Text Mining**

- Run sentiment analysis or topic modelling over the full pros and cons corpus
- Correlate numeric sub-ratings against review text for a labelled training set
- Build a longitudinal panel by scheduling incremental runs and appending only new reviews

### Getting Started

#### Quick Look at One Company

```json
{
  "companies": ["Twilio"],
  "maxReviewsPerCompany": 50
}
```

#### Benchmark a Peer Group

```json
{
  "companies": ["Twilio", "Databricks", "Anthropic"],
  "maxReviewsPerCompany": 200,
  "includeCompanyProfile": true
}
```

#### Paste Blind Links Instead of Names

```json
{
  "companies": [],
  "startUrls": [
    "https://www.teamblind.com/company/Twilio/reviews",
    "https://www.teamblind.com/company/Twilio/review/7dzWPN5sKUH"
  ],
  "maxReviewsPerCompany": 100
}
```

#### Complete History, Then a Weekly Watch

```json
{
  "companies": ["Anthropic", "Databricks"],
  "startUrls": [],
  "maxReviewsPerCompany": 0,
  "includeCompanyProfile": true,
  "forceFullReviewText": true,
  "onlyNewReviews": true
}
```

Run the first pass with `onlyNewReviews` on and it will collect everything; schedule the same input weekly and each later run returns only what was posted since.

### Input Reference

#### Companies to Cover

Name the companies you want, paste Blind links, or mix both. Add at least one — an empty run returns nothing.

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `companies` | array of strings | `["Twilio"]` | Company names as they appear in the Blind web address — for example `Twilio`, `Amazon` or `Goldman-Sachs`. Blind joins multi-word names with hyphens, and typing them with spaces works too. Capitalisation does not matter. One per line. Every review a company has is reachable; use the limit below to decide how many you want. |
| `startUrls` | array of strings | `[]` | Paste Blind links here instead of names. Two kinds work: a company's reviews page (`https://www.teamblind.com/company/Twilio/reviews`) and a single review link (`https://www.teamblind.com/company/Twilio/review/7dzWPN5sKUH`). A single review link returns just that one review. Mix both kinds freely. |

#### How Much to Collect

The limit applies to each company separately, so three companies at 50 returns up to 150 reviews.

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `maxReviewsPerCompany` | integer | `50` | How many reviews to collect for each company, newest first. Blind hands out reviews in batches of 30, so a run finishes the batch it is on and may return a few more than your number — never fewer. Set to `0` to collect every review a company has; there is no built-in ceiling, but large employers can have tens of thousands. Above roughly 15,000 reviews a single run will not finish inside the one-hour limit a run gets by default — raise `Timeout` in the run options, or set a limit and cover the company over a few runs. Whatever is collected before a run ends is always saved. |

#### What to Include

Optional extras. The defaults suit most runs.

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `includeCompanyProfile` | boolean | `true` | Adds one extra row per company with its average ratings across all six categories, total review count on Blind, headquarters, industry, employee size, founding year, website and logo. |
| `forceFullReviewText` | boolean | `false` | Blind shows only a preview of most reviews on the company page. The run already notices that and opens those reviews' own pages to recover the complete text, so this option changes nothing for them. It only affects the first 30 reviews of each company, whose text Blind shows in full — turn it on to double-check those against their own pages too. Slightly slower, and rarely needed. |
| `onlyNewReviews` | boolean | `false` | Remembers which reviews previous runs of this actor already returned and skips them, so each run gives you only what is genuinely new. Because Blind lists newest first, the run also stops as soon as it reaches a page you have already seen, which keeps scheduled checks quick and cheap. Ideal for a daily or weekly watch on a company. The memory holds the last 500,000 reviews, which is far more than any single company has. Leave off for a one-off run. |

### Output

One flat dataset. Every row carries a `recordType` field — `review` or `company` — and the Apify Console gives you three ready-made tabs: **All records**, **Reviews only** and **Companies only**.

#### Review Row (`recordType: "review"`)

```json
{
  "recordType": "review",
  "reviewId": 4187233,
  "urlAlias": "7dzWPN5sKUH",
  "reviewUrl": "https://www.teamblind.com/company/Twilio/review/7dzWPN5sKUH",
  "companyName": "Twilio",
  "companyUrlAlias": "Twilio",
  "companyPageId": 1462,
  "companyId": 908,
  "companyChannelId": 908,
  "summary": "Great people, shifting priorities",
  "pros": "Genuinely smart colleagues and a strong remote-first culture.\nManagers protect focus time and the on-call schedule is humane.",
  "cons": "Roadmaps change every quarter, so long projects rarely ship.\nPromotion cycles are slow compared to peer companies.",
  "reasonResign": "Better opportunity",
  "overallRating": 4,
  "careerRating": 3,
  "workLifeBalanceRating": 5,
  "compensationRating": 4,
  "cultureRating": 4,
  "managementRating": 3,
  "jobTitle": "Software Engineer",
  "jobGroupId": 61,
  "jobFamilyId": 6,
  "employmentStatus": "former",
  "yearStarted": 2020,
  "yearEnded": 2024,
  "tenureYears": 4,
  "location": "Austin, TX",
  "countryCode": "US",
  "nickname": "t*********",
  "memberId": 8812043,
  "helpfulCount": 12,
  "isBlindPick": false,
  "isPinned": false,
  "isFeatured": null,
  "status": "A",
  "postedAt": "2024-10-28T09:12:00.000Z",
  "updatedAt": "2024-10-28T09:12:00.000Z",
  "approvedAt": "2024-10-28T11:03:00.000Z",
  "textRecoveredFromPermalink": true,
  "sourceUrl": "https://www.teamblind.com/company/Twilio/reviews"
}
```

##### Review Content

| Field | Type | Description |
|-------|------|-------------|
| `summary` | string | The reviewer's one-line headline |
| `pros` | string | Full "what's good" text, line breaks preserved |
| `cons` | string | Full "what's bad" text, line breaks preserved |
| `reasonResign` | string | null | Stated reason for leaving; null for current employees |

##### Ratings (1–5)

| Field | Type | Description |
|-------|------|-------------|
| `overallRating` | integer | The reviewer's overall score |
| `careerRating` | integer | Career growth and opportunity |
| `workLifeBalanceRating` | integer | Work-life balance |
| `compensationRating` | integer | Pay and benefits |
| `cultureRating` | integer | Company culture |
| `managementRating` | integer | Management quality |

##### Reviewer Profile

| Field | Type | Description |
|-------|------|-------------|
| `jobTitle` | string | Job group the reviewer belongs to, e.g. `Software Engineer` |
| `jobGroupId` | integer | Numeric id of that job group |
| `jobFamilyId` | integer | Broader job family id, e.g. `6` for engineering |
| `employmentStatus` | string | `current` or `former`, derived from the exit year |
| `yearStarted` | integer | Year the reviewer joined |
| `yearEnded` | integer | null | Year the reviewer left; null if still employed |
| `tenureYears` | integer | null | Years between joining and leaving |
| `location` | string | Reviewer's city, state or country |
| `countryCode` | string | ISO-3166 alpha-2 country code |
| `nickname` | string | Blind's anonymised handle, e.g. `t*********` |
| `memberId` | integer | Blind's internal member id |

##### Identity, Dates & Flags

| Field | Type | Description |
|-------|------|-------------|
| `recordType` | string | Always `review` for these rows |
| `reviewId` | integer | Blind's internal review id |
| `urlAlias` | string | Short slug identifying the review |
| `reviewUrl` | string | Direct link to the review on Blind |
| `companyName` | string | Company display name |
| `companyUrlAlias` | string | Company slug used in the Blind address |
| `companyPageId` | integer | Blind's internal company page id |
| `companyId` | integer | Blind's internal company id — the same value the company summary row carries under this name, so the two row types join on it |
| `companyChannelId` | integer | Alias of `companyId`, kept for continuity |
| `helpfulCount` | integer | null | Number of "helpful" votes the review received; null when Blind does not report a count |
| `isBlindPick` | boolean | Whether Blind editorially highlighted the review |
| `isPinned` | boolean | Whether the company pinned the review |
| `isFeatured` | boolean | null | Featured flag, when Blind sets one |
| `status` | string | Moderation status, `A` for active |
| `postedAt` | string | ISO 8601 date the review was posted |
| `updatedAt` | string | ISO 8601 date the review was last edited |
| `approvedAt` | string | ISO 8601 date the review was approved |
| `textRecoveredFromPermalink` | boolean | `true` when the complete text came from the review's own page rather than the company listing |
| `sourceUrl` | string | The Blind page this row came from |

#### Company Row (`recordType: "company"`)

```json
{
  "recordType": "company",
  "companyName": "Twilio",
  "companyUrlAlias": "Twilio",
  "companyId": 908,
  "companyPageId": 1462,
  "logoUrl": "https://image.teamblind.com/company/twilio.png",
  "websiteUrl": "https://www.twilio.com",
  "founded": "2008",
  "employeeSize": "1,001 to 5,000 employees",
  "hqLocation": "San Francisco, CA",
  "industryId": 12,
  "industryName": "Software & Web Development",
  "description": "Twilio is a customer engagement platform used by developers to build voice, messaging and email experiences.",
  "overallRating": 3.5,
  "careerRating": 3.2,
  "workLifeBalanceRating": 4.1,
  "compensationRating": 3.8,
  "cultureRating": 3.6,
  "managementRating": 3.1,
  "reviewCount": 1259,
  "sourceUrl": "https://www.teamblind.com/company/Twilio/reviews"
}
```

##### Company Profile

| Field | Type | Description |
|-------|------|-------------|
| `recordType` | string | Always `company` for these rows |
| `companyName` | string | Company display name |
| `companyUrlAlias` | string | Company slug used in the Blind address |
| `companyId` | integer | Blind's internal company id |
| `companyPageId` | integer | Blind's internal company page id |
| `logoUrl` | string | Company logo image |
| `websiteUrl` | string | Company homepage |
| `founded` | string | Founding year |
| `employeeSize` | string | Headcount band, e.g. `1,001 to 5,000 employees` |
| `hqLocation` | string | Headquarters city and state or country |
| `industryId` | integer | Blind's industry id |
| `industryName` | string | Industry label |
| `description` | string | Company blurb shown on Blind |
| `sourceUrl` | string | The Blind page this row came from |

##### Average Ratings & Volume

| Field | Type | Description |
|-------|------|-------------|
| `overallRating` | number | Average overall rating across all reviews, e.g. `3.5` |
| `careerRating` | number | Average career growth rating |
| `workLifeBalanceRating` | number | Average work-life balance rating |
| `compensationRating` | number | Average compensation rating |
| `cultureRating` | number | Average culture rating |
| `managementRating` | number | Average management rating |
| `reviewCount` | integer | Total reviews the company has on Blind |

### Tips for Best Results

- Copy the company name straight from the Blind web address — capitalisation is ignored, but a misspelling returns nothing, and the run tells you so within seconds instead of grinding away.
- Reviews arrive newest first, so a small limit is genuinely a "latest sentiment" sample. Ask for 50 when you want the current mood and 0 when you want the full history.
- Expect a few more reviews than you asked for: Blind serves them 30 at a time, so a limit of 50 returns 60 and a limit of 15 returns 30. It never returns fewer than your number.
- Leave `forceFullReviewText` off. The run already opens the review's own page wherever the company listing withholds the text, and turning it on only re-checks the first 30 reviews, which were complete already.
- Keep `includeCompanyProfile` on when you are comparing employers — the summary row's averages cover the company's entire review history, which is the honest denominator for a sample of 50 reviews.
- For trend tracking, schedule the same input daily or weekly with `onlyNewReviews` turned on. Because Blind lists newest first, the run stops at the first page it has already seen, so an ordinary day costs a handful of rows.
- `employmentStatus` reads `current` unless the reviewer gave an exit year, and most reviewers leave that blank — so treat the `former` rows as a confirmed-leaver subset rather than the whole leaver population, and use `reasonResign` as the corroborating signal.
- Before setting the limit to `0` on a very large employer, check its `reviewCount` on the company summary row. Above about 15,000 reviews, raise `Timeout` in the run options first, or split the company across a few capped runs.
- Power tip for attrition work: filter on `employmentStatus: "former"` and group by `yearEnded`, then read `reasonResign` alongside the `managementRating`. A cluster of low management scores in one exit year is the clearest early signal Blind offers.

### Pricing

**From $2.00 per 1,000 results** — under the market rate for Blind review extraction, with the company summary row and the complete review text included at no extra charge. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.

| Results | No discount | Bronze | Silver | Gold |
|---------|-------------|--------|--------|------|
| 100 | $0.24 | $0.23 | $0.22 | $0.20 |
| 1,000 | $2.40 | $2.25 | $2.15 | $2.00 |
| 10,000 | $24.00 | $22.50 | $21.50 | $20.00 |
| 100,000 | $240.00 | $225.00 | $215.00 | $200.00 |

A "result" is any row in the output dataset — each review row counts as one result, and each company summary row counts as one result. No compute or time-based charges — you pay per result, plus a small fixed per-run start fee.

### Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

- **Zapier** / **Make** / **n8n** — Workflow automation
- **Google Sheets** — Direct spreadsheet export
- **Slack** / **Email** — Notifications on new results
- **Webhooks** — Trigger custom APIs on run completion
- **Apify API** — Full programmatic access

### Legal & Ethical Use

This actor collects publicly visible, anonymous employee reviews for legitimate market research, employer benchmarking, HR analytics, and academic study. Reviews are user-generated personal opinions, not verified statements of fact — treat them as sentiment, not evidence, and do not present an individual review as a factual claim about a company or a person. Blind publishes reviews anonymously; do not attempt to identify, contact, or profile any reviewer. Users are responsible for complying with applicable laws, data-protection rules, and Blind's terms of service, including making reasonable-rate requests. Do not use collected data for spam, harassment, discrimination, or any illegal purpose.

# Actor input Schema

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

Company names as they appear in the Blind web address — for example 'Twilio', 'Amazon' or 'Goldman-Sachs'. Blind joins multi-word names with hyphens, and typing them with spaces works too. Capitalisation does not matter. One per line. Every review a company has is reachable; use the limit below to decide how many you want.

## `startUrls` (type: `array`):

Paste Blind links here instead of names. Two kinds work: a company's reviews page (https://www.teamblind.com/company/Twilio/reviews) and a single review link (https://www.teamblind.com/company/Twilio/review/7dzWPN5sKUH). A single review link returns just that one review. Mix both kinds freely.

## `maxReviewsPerCompany` (type: `integer`):

How many reviews to collect for each company, newest first. Blind hands out reviews in batches of 30, so a run finishes the batch it is on and may return a few more than your number — never fewer. Set to 0 to collect every review a company has; there is no built-in ceiling, but large employers can have tens of thousands. Above roughly 15,000 reviews a single run will not finish inside the one-hour limit a run gets by default — raise 'Timeout' in the run options, or set a limit and cover the company over a few runs. Whatever is collected before a run ends is always saved.

## `includeCompanyProfile` (type: `boolean`):

Adds one extra row per company with its average ratings across all six categories, total review count on Blind, headquarters, industry, employee size, founding year, website and logo.

## `forceFullReviewText` (type: `boolean`):

Blind shows only a preview of most reviews on the company page. The run already notices that and opens those reviews' own pages to recover the complete text, so this option changes nothing for them. It only affects the first 30 reviews of each company, whose text Blind shows in full — turn it on to double-check those against their own pages too. Slightly slower, and rarely needed.

## `onlyNewReviews` (type: `boolean`):

Remembers which reviews previous runs of this actor already returned and skips them, so each run gives you only what is genuinely new. Because Blind lists newest first, the run also stops as soon as it reaches a page you have already seen, which keeps scheduled checks quick and cheap. Ideal for a daily or weekly watch on a company. The memory holds the last 500,000 reviews, which is far more than any single company has. Leave off for a one-off run.

## Actor input object example

```json
{
  "companies": [
    "Twilio"
  ],
  "startUrls": [],
  "maxReviewsPerCompany": 50,
  "includeCompanyProfile": true
}
```

# Actor output Schema

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

Every row from the run in one table — filter on recordType to separate reviews from company summaries.

## `reviews` (type: `string`):

Just the review rows, with ratings, pros, cons and reviewer details.

## `companies` (type: `string`):

Just the company summary rows, with average ratings and review counts.

# 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": [
        "Twilio"
    ],
    "startUrls": [],
    "maxReviewsPerCompany": 50,
    "includeCompanyProfile": true,
    "forceFullReviewText": false,
    "onlyNewReviews": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/teamblind-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": ["Twilio"],
    "startUrls": [],
    "maxReviewsPerCompany": 50,
    "includeCompanyProfile": True,
    "forceFullReviewText": False,
    "onlyNewReviews": False,
}

# Run the Actor and wait for it to finish
run = client.actor("solidcode/teamblind-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": [
    "Twilio"
  ],
  "startUrls": [],
  "maxReviewsPerCompany": 50,
  "includeCompanyProfile": true,
  "forceFullReviewText": false,
  "onlyNewReviews": false
}' |
apify call solidcode/teamblind-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/lat8xZIhL3551dtlB/builds/9SSVRrkGnTOFfsYNb/openapi.json
