# Clutch.co B2B Scraper with Email Enrichment (`ultramarine_freezer/clutch-camoufox-scraper`) Actor

Scrapes Clutch.co agency profiles and optionally enriches the data by crawling the agency's external website for contact emails.

- **URL**: https://apify.com/ultramarine\_freezer/clutch-camoufox-scraper.md
- **Developed by:** [JIGSAW](https://apify.com/ultramarine_freezer) (community)
- **Categories:** Lead generation, E-commerce, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## Clutch.co B2B Lead Extractor & Email Enricher 🚀

The ultimate **All-In-One B2B Lead Generator** for marketing agencies, SaaS sales, and B2B professionals. 

While other Clutch scrapers stop at the directory's edge, this Actor goes the extra mile: it extracts deep agency metrics directly from Clutch.co and then **autonomously crawls each agency's external website** to hunt down their contact emails. Stop paying twice for expensive email enrichment APIs!

### 🌟 Why this scraper is a game changer (The Unfair Advantage)

| Feature | Other Clutch Scrapers | Our "All-In-One" Scraper |
| :--- | :--- | :--- |
| **Basic Profile Data** | ✅ Yes | ✅ Yes |
| **Service Focus & Pricing** | ✅ Yes | ✅ Yes |
| **LinkedIn URLs** | ❌ No | ✅ Yes |
| **Direct Contact Emails** | ❌ No (Clutch hides them) | ✅ **YES** (Secondary deep crawl) |
| **Anti-Bot Evasion** | ❌ Standard Browsers (Blocked) | ✅ Proprietary Stealth Engine |

### 📊 What data do you get?

For every agency on Clutch, you receive a clean, structured JSON/CSV row containing:
- 🏢 **Company Name** & **Tagline**
- ⭐️ **Rating** & **Review Count**
- 💰 **Minimum Project Size** & **Avg. Hourly Rate**
- 👥 **Employees** & **Location**
- 🎯 **Service Focus** (e.g., *70% Search Engine Optimization | 30% Pay Per Click*)
- 🔗 **Social Links** (LinkedIn URL)
- 🌐 **Website URL**
- 📧 **Direct Contact Emails** (Found dynamically from the agency's domain)

### 🛠 How to Use

1. **Start URLs:** Paste any URL from Clutch.co (e.g., Category pages like `https://clutch.co/seo-firms` or specific location pages like `https://clutch.co/us/app-developers`). You can load multiple URLs at once!
2. **Max Items:** Define the maximum number of agencies you want to extract.
3. **Enrich Emails (Toggle):** Keep this `ON` if you want the bot to visit the agency's own website to extract their contact emails. Turn it `OFF` if you just want a high-speed dump of Clutch data.
4. **Proxy Settings (CRITICAL 🚨):** Clutch uses an extremely aggressive Cloudflare firewall. You **MUST use Residential Proxies** (or at minimum "Automatic Apify Proxy"). Datacenter proxies will be blocked instantly.
5. **Concurrency Limit:** Adjust how many tabs you want opening in parallel. The default is `5`, which strikes the perfect balance between high speed and Apify compute efficiency.

### 💰 Cost & Value Analysis

This tool runs on a highly efficient proprietary asynchronous cloud architecture. A full run is fast and compute-efficient. Considering external email enrichment services charge anywhere from $0.05 to $0.15 *per email*, extracting thousands of ready-to-email leads natively from this Actor will save you hundreds of dollars in lead generation overhead.

### ⚠️ Notes & Disclaimers
- **Email Availability:** The actor aggressively crawls the agency homepage and standard contact pages. If a massive enterprise agency exclusively uses contact forms and strictly omits plaintext emails from their code to prevent spam, the email field will understandably return empty.
- **Bot Protection:** This scraper uses an advanced 2026 anti-detect architecture to bypass firewalls natively. Do not set the concurrency limit absurdly high (like 50) on basic Apify plans, as Cloudflare will penalize your shared Proxy IP sessions. We strongly recommend leaving it between 5 and 10.

# Actor input Schema

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

URLs to start scraping from (e.g. https://clutch.co/agencies)
## `maxItems` (type: `integer`):

Maximum number of agencies to scrape.
## `enrichEmails` (type: `boolean`):

If true, visits each agency's website to attempt extracting contact emails.
## `concurrencyLimit` (type: `integer`):

Maximum number of browser tabs to run concurrently. (Default 5, max 20). High values require more RAM.
## `proxyConfiguration` (type: `object`):

Proxy settings (Residential recommended to bypass Cloudflare).

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://clutch.co/seo-firms"
    }
  ],
  "maxItems": 10,
  "enrichEmails": true,
  "concurrencyLimit": 5
}
````

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("ultramarine_freezer/clutch-camoufox-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("ultramarine_freezer/clutch-camoufox-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 '{}' |
apify call ultramarine_freezer/clutch-camoufox-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Clutch.co B2B Scraper with Email Enrichment",
        "description": "Scrapes Clutch.co agency profiles and optionally enriches the data by crawling the agency's external website for contact emails.",
        "version": "1.0",
        "x-build-id": "K8UTGcQpIgdKtb4wj"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/ultramarine_freezer~clutch-camoufox-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-ultramarine_freezer-clutch-camoufox-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/ultramarine_freezer~clutch-camoufox-scraper/runs": {
            "post": {
                "operationId": "runs-sync-ultramarine_freezer-clutch-camoufox-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/ultramarine_freezer~clutch-camoufox-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-ultramarine_freezer-clutch-camoufox-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": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "URLs to start scraping from (e.g. https://clutch.co/agencies)",
                        "default": [
                            {
                                "url": "https://clutch.co/seo-firms"
                            }
                        ],
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "type": "integer",
                        "description": "Maximum number of agencies to scrape.",
                        "default": 10
                    },
                    "enrichEmails": {
                        "title": "Enrich Emails (Secondary Crawl)",
                        "type": "boolean",
                        "description": "If true, visits each agency's website to attempt extracting contact emails.",
                        "default": true
                    },
                    "concurrencyLimit": {
                        "title": "Concurrency Limit",
                        "type": "integer",
                        "description": "Maximum number of browser tabs to run concurrently. (Default 5, max 20). High values require more RAM.",
                        "default": 5
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings (Residential recommended to bypass Cloudflare)."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
