# Clutch.co Scraper - B2B Agency Leads to CSV/Excel (`matrix-crawl/clutch-scraper`) Actor

Scrape Clutch.co B2B agency listings — name, rating, reviews, hourly rate, min project size, employees, location, and website — to CSV/Excel/JSON. Optional full-profile mode adds bio, service focus, reviews, and social links. Search by category and location.

- **URL**: https://apify.com/matrix-crawl/clutch-scraper.md
- **Developed by:** [Matrix Crawl](https://apify.com/matrix-crawl) (community)
- **Categories:** Lead generation, SEO tools
- **Stats:** 2 total users, 0 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.

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

## Clutch.co Scraper — B2B Agency Leads (Rates, Reviews, Size) to CSV/Excel

**Fast Clutch.co scraper for B2B agency intelligence.** Pull service-provider listings by category and location — name, rating, review count, hourly rate, minimum project size, employee count, location, and website — into clean, spreadsheet-ready rows. No login, no API key.

`clutch scraper` · `clutch.co scraper` · `b2b agencies` · `agency directory` · `agency data export` · `lead generation` · `competitor research` · `service providers`

Built for sales teams targeting agencies, consultancies benchmarking competitors, and analysts mapping the service-provider market.

***

### 👥 Who Is This For?

- **B2B Sales:** Prospect agencies/consultancies by service + rate band.
- **Agencies & Consultancies:** Benchmark competitors' ratings, rates, and size.
- **Market Analysts:** Map the service-provider landscape by category and geography.

***

### ⚡ Features

- **Firmographics** — rating, review count, hourly rate, minimum project size, employee count, location.
- **Lead fields** — agency name, Clutch profile URL, website.
- **Multi-category** — crawl several Clutch categories in one run, optional location filter.
- **De-duplicated** — by Clutch profile URL.
- **Cost control** — hard `maxItems` cap.
- **Export** — CSV/Excel/JSON, or call via Apify's MCP server.

***

### 🚀 How to Use

1. Add Clutch **category slugs** (from the URL `clutch.co/agencies/{slug}`), e.g. `digital-marketing`, `seo`, `web-developers`.
2. Optionally add a **location** slug (e.g. `united-states`, `india`).
3. Set your **Maximum Items** cap and **Start**.
4. Export as CSV, Excel, JSON, or HTML.

#### Sample Input

```json
{
  "categories": ["digital-marketing", "seo"],
  "location": "united-states",
  "maxPagesPerCategory": 3,
  "maxItems": 500,
  "scrapeProfileDetails": false,
  "proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}
```

***

### 📊 Output Data Dictionary

| Field | Type | Example |
|-------|------|---------|
| `name` | string | `"Acme Marketing"` |
| `clutchUrl` | string | null | `"https://clutch.co/profile/acme-marketing"` |
| `website` | string | null | `"https://acme.com"` |
| `rating` | number | null | `4.8` |
| `reviewCount` | integer | null | `173` |
| `minProjectSize` | string | null | `"$10,000+"` |
| `hourlyRate` | string | null | `"$100 - $149 / hr"` |
| `employeeCount` | string | null | `"250 - 999"` |
| `location` | string | null | `"San Diego, CA"` |
| `tagline` | string | null | `"We grow brands."` |
| `category` | string | `"digital-marketing"` |
| `scrapedAt` | string (ISO) | `"2026-06-29T10:00:00.000Z"` |

> Fields not shown on a listing come back `null`.

#### Extra fields with **Full profile** mode (`scrapeProfileDetails: true`)

| Field | Type | Description |
|-------|------|-------------|
| `bio` | string | Full agency description |
| `founded` | string | e.g. `"Founded 2013"` |
| `telephone` | string | Phone from the profile |
| `address` | object | street, locality, region, country, postalCode |
| `serviceFocus` | array | `[{ service, percentage }]` — e.g. SEO 40% |
| `serviceLines` | array | Detailed service breakdown |
| `chartPie` | object | Tech, industry & client-size breakdowns |
| `socialMediaLinks` | array | `[{ type, url }]` (LinkedIn, Facebook…) |
| `reviews` | array | `[{ title, comments, rating, reviewer, datePublished }]` |
| `reviewsOnPage` | integer | How many reviews captured (first page only) |

***

### 🔎 Two modes

- **Directory (default):** name, rating, reviewCount, hourlyRate, minProjectSize, employeeCount, location, website, clutchUrl. One request per results page.
- **Full profile (`scrapeProfileDetails: true`):** visits each agency profile for the rich object — `bio`, `serviceFocus` (%), `serviceLines`, `chartPie` (tech/industry/client breakdowns), `reviews[]`, `socialMediaLinks`, `address`, `founded`, `telephone`. **+1 request per agency** (slower, more bandwidth).

> `reviewCount` is the agency's total (e.g. 173); `reviewsOnPage` is how many full review objects were captured from the profile page (Clutch embeds only the first page of reviews).

### 💡 Proxy (required — Clutch blocks data-center IPs)

- **Default:** Apify residential — works out of the box.
- **For best reliability:** add your own residential / web-unblocker proxy in the Proxy setting.

Tip: use `maxItems` / `maxPagesPerCategory` to control cost.

### ⚖️ Compliance & Responsible Use

Collects **publicly listed business** directory data only. You are responsible for lawful use, anti-spam compliance for outreach, and respecting Clutch.co's Terms of Service and `robots.txt`.

# Actor input Schema

## `categories` (type: `array`):

Clutch category slugs, e.g. 'digital-marketing', 'seo', 'web-developers', 'app-developers'. From the URL: clutch.co/agencies/{slug}.

## `location` (type: `string`):

Optional location slug, e.g. 'united-states', 'india', 'new-york'. Appended as clutch.co/agencies/{category}/{location}.

## `maxPagesPerCategory` (type: `integer`):

Directory pages per category.

## `scrapeProfileDetails` (type: `boolean`):

If enabled, visits each agency's profile page for the full object (bio, service focus, locations, reviews, tech/industry charts, social links). Much richer, but +1 request per agency (slower, more residential bandwidth).

## `maxItems` (type: `integer`):

Hard cap on total rows across all categories. 0 = unlimited.

## `debugLog` (type: `boolean`):

Enable DEBUG-level logs (incl. page diagnostics) to troubleshoot blocked or empty categories.

## `proxyConfiguration` (type: `object`):

Defaults to Apify US residential proxy — Clutch is Cloudflare-protected and blocks datacenter IPs.

## Actor input object example

```json
{
  "categories": [
    "digital-marketing"
  ],
  "maxPagesPerCategory": 1,
  "scrapeProfileDetails": false,
  "maxItems": 20,
  "debugLog": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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 = {
    "categories": [
        "digital-marketing"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("matrix-crawl/clutch-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 = { "categories": ["digital-marketing"] }

# Run the Actor and wait for it to finish
run = client.actor("matrix-crawl/clutch-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 '{
  "categories": [
    "digital-marketing"
  ]
}' |
apify call matrix-crawl/clutch-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/vfsXi2PyJHDv0rBWH/builds/iBRWIqTSCyeG2Wn67/openapi.json
