# Clutch Companies Scraper (`fetch_cat/clutch-companies-scraper`) Actor

Export public Clutch.co company listings from category and search-result pages for lead generation, sourcing, and market research.

- **URL**: https://apify.com/fetch\_cat/clutch-companies-scraper.md
- **Developed by:** [Hanna Nosova](https://apify.com/fetch_cat) (community)
- **Categories:** Lead generation, Marketing
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.72 / 1,000 company 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

## Clutch Companies Scraper

Use this Clutch scraper to export public Clutch.co company listings from category and search-result pages into a clean dataset for lead generation, vendor sourcing, market research, and competitor tracking.

Use it when you need a structured list of agencies or service providers from Clutch directory pages such as software developers, web developers, SEO agencies, or location-filtered categories. The Actor works as a Clutch company scraper for listings and as a practical Clutch.co scraper when you need data through Apify API, MCP, schedules, or integrations.

### What data can it export?

Each company record includes listing-level fields that are publicly shown on Clutch category/search pages:

- Company name and Clutch profile URL
- Website redirect URL when Clutch exposes it
- Logo URL and verified badge status
- Rating and review count
- Minimum project size, hourly rate, and employee range
- Location
- Listing description/summary
- Services and service-focus text
- Source URL, page URL, result position, scrape timestamp, and diagnostics

Profile-only fields such as full reviews, phone numbers, detailed postal address, legal filings, and social links are not advertised in this v1 unless they are visible on the listing page.

### Input recipes

#### Quick software-development lead sample

```json
{
  "startUrls": [{ "url": "https://clutch.co/developers" }],
  "maxResults": 5,
  "maxPagesPerUrl": 1
}
```

#### Compare two service categories

```json
{
  "startUrls": [
    { "url": "https://clutch.co/developers" },
    { "url": "https://clutch.co/web-developers" }
  ],
  "maxResults": 100,
  "maxPagesPerUrl": 2
}
```

### Input example

```json
{
  "startUrls": [
    { "url": "https://clutch.co/developers" },
    { "url": "https://clutch.co/web-developers" }
  ],
  "maxResults": 50,
  "maxPagesPerUrl": 2,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["SHADER"]
  }
}
```

### Input settings

| Field | Type | Required | Description |
|---|---:|:---:|---|
| `startUrls` | array | yes | Public Clutch.co category, directory, or search-result URLs. |
| `maxResults` | integer | no | Maximum company records to save across all input URLs. |
| `maxPagesPerUrl` | integer | no | Maximum pagination depth per input URL. |
| `proxyConfiguration` | object | no | Apify Proxy configuration. SHADER datacenter proxy is prefilled because it passed listing extraction at lower cost; switch proxy groups only when a route is blocked. |
| `includeProfileDetails` | boolean | no | Advanced option kept off by default because this version focuses on category/search listing exports. |

### Output example

```json
{
  "searchUrl": "https://clutch.co/developers",
  "pageUrl": "https://clutch.co/developers",
  "position": 1,
  "companyId": "simform",
  "name": "Simform",
  "profileUrl": "https://clutch.co/profile/simform",
  "websiteUrl": "https://r.clutch.co/redirect?...",
  "logoUrl": "https://img.shgstatic.com/clutch-static-prod/...png",
  "isVerified": true,
  "rating": 4.8,
  "reviewCount": 86,
  "reviewCountText": "4.8 86 reviews",
  "minProjectSize": "$25,000+",
  "hourlyRate": "$25 - $49 / hr",
  "employees": "1,000 - 9,999",
  "location": "Orlando, FL",
  "description": "Simform is a full stack software development company...",
  "services": ["10% Custom Software Development", "20% AI Development"],
  "serviceFocus": ["10% Custom Software Development", "20% AI Development"],
  "tags": [],
  "allProjectsText": null,
  "allProjectsUrl": null,
  "sourceCategory": "developers",
  "scrapedAt": "2026-08-02T17:46:01.472Z",
  "diagnostics": { "status": "ok", "inputIndex": 0, "pageNumber": 1, "cardsOnPage": 80, "duplicate": false, "warnings": [] }
}
```

### Output fields

| Field | Description |
|---|---|
| `searchUrl` | Original input URL for provenance. |
| `pageUrl` | Actual listing page URL that produced the row. |
| `position` | Result position in the run after de-duplication. |
| `companyId` | Stable ID derived from the Clutch profile URL. |
| `name` | Company name. |
| `profileUrl` | Public Clutch profile URL. |
| `websiteUrl` | Public outbound website redirect URL when shown. |
| `logoUrl` | Company logo URL when shown. |
| `isVerified` | Whether the listing text indicates verified/premier verified status. |
| `rating` | Numeric rating. |
| `reviewCount` | Normalized review count. |
| `reviewCountText` | Original review-count text from Clutch. |
| `minProjectSize` | Minimum project size text. |
| `hourlyRate` | Hourly-rate range text. |
| `employees` | Employee-count range text. |
| `location` | Listing location. |
| `description` | Listing description or summary. |
| `services`, `serviceFocus` | Service mix text visible on the listing. |
| `tags` | Listing chips/badges when available. |
| `allProjectsText`, `allProjectsUrl` | Projects link text and URL when visible. |
| `sourceCategory` | Category path derived from the input URL. |
| `scrapedAt` | ISO timestamp when the row was extracted. |
| `diagnostics` | Per-row extraction status, page number, card count, duplicate flag, and warnings. |

### Pricing

This Actor uses pay-per-event pricing:

- `start` — charged once per run.
- `item` — charged once for each saved company, with lower per-result rates on higher Apify plans.

Check the live [Apify Pricing tab](https://apify.com/fetch_cat/clutch-companies-scraper/pricing) for current rates before running large exports.

### Who is it for?

This Actor is useful for sales teams building agency lead lists, marketers mapping service-provider categories, procurement teams shortlisting vendors, founders researching competitors, and analysts monitoring Clutch directory changes over time.

### Tips for best results

- Start with one Clutch category URL and a small `maxResults` value to verify your filters.
- Increase `maxPagesPerUrl` for deeper exports.
- Use full Clutch URLs copied from your browser after applying category/location filters.
- De-duplication is based on Clutch profile URLs, so overlapping categories will not create duplicate rows.

### Limits and troubleshooting

Clutch uses bot protection. If a run cannot access a page, the Actor fails rather than returning a misleading empty success. Reduce page depth, retry later, or try a narrower category URL if Clutch returns a block or an empty page.

### API usage

#### Node.js

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

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('fetch_cat/clutch-companies-scraper').call({
  startUrls: [{ url: 'https://clutch.co/developers' }],
  maxResults: 25,
  maxPagesPerUrl: 1,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

#### Python

```python
from apify_client import ApifyClient
import os

client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("fetch_cat/clutch-companies-scraper").call(run_input={
    "startUrls": [{"url": "https://clutch.co/developers"}],
    "maxResults": 25,
    "maxPagesPerUrl": 1,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)
```

#### cURL

```bash
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~clutch-companies-scraper/runs?token=$APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{"startUrls":[{"url":"https://clutch.co/developers"}],"maxResults":25,"maxPagesPerUrl":1}'
```

### MCP and agents

Use the Apify MCP server with this tool enabled:

```text
https://mcp.apify.com/?tools=fetch_cat/clutch-companies-scraper
```

Add it to Claude Desktop or Claude Code with a command like:

```bash
claude mcp add apify-clutch "https://mcp.apify.com/?tools=fetch_cat/clutch-companies-scraper"
```

Example MCP JSON configuration:

```json
{
  "mcpServers": {
    "apify-clutch": {
      "url": "https://mcp.apify.com/?tools=fetch_cat/clutch-companies-scraper"
    }
  }
}
```

Example prompts:

- "Export 25 software development companies from Clutch and summarize the top-rated vendors."
- "Run the Clutch Companies Scraper for this category URL and return names, locations, ratings, and profile URLs."

### FAQ

#### What data can I export with a Clutch scraper?

You can export company names, Clutch profile URLs, website redirects when available, ratings, review counts, service categories, pricing signals, locations, descriptions, source URLs, result positions, and diagnostics from public listing pages.

#### Can I run Clutch Companies Scraper through an API, schedule, or MCP client?

Yes. Run it from the Apify Console, schedule it, call it through the Apify API, or use the MCP server URL shown above with the `fetch_cat/clutch-companies-scraper` tool enabled.

#### How much does it cost to use Clutch Companies Scraper?

The Actor uses pay-per-event pricing with a small start event and a per-company result event. Check the live pricing panel before running large exports because the final platform prices may use account-tier discounts.

#### Does this scrape full Clutch profile pages?

The default v1 route extracts listing-level company records from public category and search pages. Profile-only fields are not promised unless they are visible in the listing result.

#### Can I scrape location-filtered or service-filtered Clutch URLs?

Yes. Apply filters on Clutch.co, copy the resulting public URL, and paste it into `startUrls`.

#### Why did my run fail instead of returning an empty dataset?

A zero-result run can mean Clutch served bot protection or an unsupported page. The Actor fails loudly in that case so you do not mistake a blocked run for a valid empty export.

#### Are emails included?

No. This Actor focuses on public Clutch listing data and does not crawl third-party websites for contact emails.

### Related Actors

- [Apple Maps Places Scraper](https://apify.com/fetch_cat/apple-maps-places-scraper)
- [Bing Search Results Scraper](https://apify.com/fetch_cat/bing-search-results-scraper)
- [Eventbrite Events Scraper](https://apify.com/fetch_cat/eventbrite-events-scraper)
- [Amazon Seller Profiles Scraper](https://apify.com/fetch_cat/amazon-seller-profiles-scraper)
- [YouTube Comments Scraper](https://apify.com/fetch_cat/youtube-comments-scraper)

### Support

If you need a Clutch category route that does not work, open an issue on the Actor page and include the input URL, run ID, and expected result count.

# Actor input Schema

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

One or more public Clutch.co category, directory, or search-result URLs to scrape.

## `maxResults` (type: `integer`):

Maximum number of company records to save across all input URLs.

## `maxPagesPerUrl` (type: `integer`):

Maximum pagination depth for each input URL. Use a low value for tests and increase for larger exports.

## `includeProfileDetails` (type: `boolean`):

Reserved for future profile-detail extraction. Direct profile pages are currently treated as experimental and may be blocked by Clutch.

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

Apify Proxy configuration. SHADER datacenter proxy is the default because it passed listing extraction at much lower cost; switch only if a category is blocked.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://clutch.co/developers"
    }
  ],
  "maxResults": 5,
  "maxPagesPerUrl": 1,
  "includeProfileDetails": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "SHADER"
    ]
  }
}
```

# Actor output Schema

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

Company listing records extracted from public Clutch.co category/search pages.

# 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 = {
    "startUrls": [
        {
            "url": "https://clutch.co/developers"
        }
    ],
    "maxResults": 5,
    "maxPagesPerUrl": 1,
    "includeProfileDetails": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("fetch_cat/clutch-companies-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 = {
    "startUrls": [{ "url": "https://clutch.co/developers" }],
    "maxResults": 5,
    "maxPagesPerUrl": 1,
    "includeProfileDetails": False,
}

# Run the Actor and wait for it to finish
run = client.actor("fetch_cat/clutch-companies-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 '{
  "startUrls": [
    {
      "url": "https://clutch.co/developers"
    }
  ],
  "maxResults": 5,
  "maxPagesPerUrl": 1,
  "includeProfileDetails": false
}' |
apify call fetch_cat/clutch-companies-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/BZpHlOsRHaNPLgWf6/builds/3syc91HrLvRkMpQx2/openapi.json
