Clutch.co Agency Leads Scraper
Pricing
from $1.80 / 1,000 results
Clutch.co Agency Leads Scraper
Scrape Clutch.co B2B agency and vendor directory listings by category (and optional location) into clean leads — name, rating, verification tier, employee/rate/min-project bands, phone, and a per-agency service-mix breakdown other Clutch scrapers skip.
Pricing
from $1.80 / 1,000 results
Rating
0.0
(0)
Developer
DevilScrapes
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
🎯 What this scrapes
Clutch.co is the go-to B2B directory for agencies and software vendors — sales teams and buyers alike use its category+location listing pages (clutch.co/agencies/<category>[/<location>]) to shortlist providers. This Actor turns each listing page into structured leads: company name, star rating and review count, a premier/basic/none verification tier, employee-count and hourly-rate bands, minimum project size, phone number, and — the differentiator most Clutch scrapers skip — a per-agency service-mix breakdown (e.g. "60% SEO / 20% PPC / 20% content") parsed straight out of the same listing HTML. One category slug per run; combine with an optional location slug to narrow the pull.
🔥 What we handle for you
- 🛡️ Browser fingerprint rotation —
curl-cffiimpersonates real Chrome / Firefox / Safari TLS handshakes so the target sees a browser, not Python. - 🌐 Residential proxy rotation via Apify Proxy — fresh session and exit IP on every block.
- 🔁 Retries with exponential backoff on
408 / 429 / 5xx— up to 5 attempts per page,Retry-Afterhonoured. - 🧱 Rate-limit-aware pacing — when the target pushes back, we slow down instead of getting banned.
- 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, stable IDs, JSON / CSV / Excel export straight from the Apify Console.
- 💰 Pay-Per-Event pricing — you only pay for results that hit your dataset. No data, no charge.
💡 Use cases
- Agency shortlisting — pull a category+location listing into a comparable spreadsheet for RFP outreach.
- Sales prospecting — build a call list of agencies with phone numbers and verification tier as a quality signal.
- Competitive intelligence — track service-mix and rate-band positioning across a category.
- Lead scoring — filter by verification tier and rating before your SDR team reaches out.
⚙️ How to use it
- Click Try for free at the top of the page.
- Fill in the input form — most fields have sensible defaults.
- Click Start. Output streams into the run's dataset.
- Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.
📥 Input
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
category | string | yes | 'digital-marketing' | Clutch category slug to scrape, e.g. "digital-marketing" (kebab-case; hundreds exist on Clutch, not a fixed enum). |
location | string | no | '—' | Optional Clutch location slug, e.g. "new-york" (kebab-case). Builds /agencies/ |
maxResults | integer | no | 200 | Stop once this many unique (deduped by Clutch provider ID) leads are collected. |
maxPages | integer | no | 10 | Hard cap on listing pages fetched, independent of Max results. |
proxyConfiguration | object | no | {'useApifyProxy': False} | Apify Proxy settings. Optional — Clutch listing pages clear via curl-cffi browser impersonation alone (live-confirmed, n |
Example input
{"category": "digital-marketing","maxResults": 5,"maxPages": 1,"proxyConfiguration": {"useApifyProxy": false}}
📤 Output
Every row is one dataset item.
| Field | Type | Notes |
|---|---|---|
clutch_provider_id | string | Stable Clutch provider ID (data-clutch-pid) — dedup/identity key. |
name | string | Agency/vendor display name (data-title). |
profile_url | ['string', 'null'] | Absolute Clutch profile URL. Null for PPC-only rows exposing a tracking redirect instead. |
category | string | Category slug that was searched (input echo). |
location_searched | ['string', 'null'] | Location slug that was searched, if any (input echo). |
city | ['string', 'null'] | City, preferring the address meta tag over the free-text node. |
region | ['string', 'null'] | Region/state, preferring the address meta tag over the free-text node. |
country | ['string', 'null'] | Country, from the address meta tag. |
employee_band | ['string', 'null'] | Employee-count band text, e.g. "250 - 999". |
hourly_rate_band | ['string', 'null'] | Hourly-rate band text, e.g. "$50 - $99 / hr". Null when shown as "Undisclosed". |
min_project_size | ['string', 'null'] | Minimum project size text, e.g. "$5,000+". Null when not $-prefixed. |
rating | ['number', 'null'] | Aggregate rating (0-5) from the ratingValue meta tag. |
review_count | ['integer', 'null'] | Review count from the reviewCount meta tag. |
verification_tier | string | "premier", "basic", or "none" — Clutch verified-mark modifier. Never null. |
service_mix | array | Per-agency service allocation, e.g. [{"service_name": "Advertising", "percent": 10}]. Empty list when the row has no ser |
listing_type | string | "sponsored", "ppc", or "organic" — from the row's class substring. |
phone | ['string', 'null'] | Phone number from the telephone meta tag — bonus lead field. |
position | ['integer', 'null'] | Rank position on the listing page (data-position). |
scraped_at | string | ISO-8601 UTC timestamp when this row was recorded. |
Example output
{"clutch_provider_id": "1005123","name": "Ninja Promo","profile_url": "https://clutch.co/profile/ninja-promo","category": "digital-marketing","location_searched": "new-york","city": "New York","region": "NY","country": "United States","employee_band": "250 - 999","hourly_rate_band": "$50 - $99 / hr","min_project_size": "$5,000+","rating": 4.9,"review_count": 95,"verification_tier": "premier","service_mix": [{"service_name": "Advertising","percent": 10},{"service_name": "Fractional CMO Services","percent": 5}],"listing_type": "organic","phone": "+1 212 555 0100","position": 3,"scraped_at": "2026-07-30T12:00:00Z"}
💰 Pricing
Pay-Per-Event — you pay only when these events fire:
| Event | USD | What it is |
|---|---|---|
actor-start | $0.02 | One-off warm-up charge per run |
result-scraped | $0.0018 | Per unique dataset item |
Example: 1 000 results at the rates above ≈ $1.82. No subscription, no minimum, no card to start — Apify gives every new account $5 of free credit.
🚧 Limitations
This Actor reads only Clutch's public category/location listing pages — no profile-page detail (reviews, portfolio, team), no email extraction, and no historical rating/service-mix tracking. One category slug per run; orchestrate multiple categories from the caller side.
❓ FAQ
Is this legal?
We only fetch content Clutch makes publicly available on its listing pages. Respect Clutch's terms of service before using output commercially.
Do I need a proxy?
No — Clutch's listing pages clear with curl-cffi browser impersonation alone (no proxy required). Add a proxy group only if you start seeing blocks.
What happens if my category or location doesn't exist?
The Actor logs a warning and finishes cleanly with zero rows instead of failing the run.
Can I scrape profile-page detail like reviews or portfolio?
Not in v1 — this Actor covers category/location listing pages only. Profile-page detail is a future addition.
💬 Your feedback
Spotted a bug, hit a weird edge case, or need a new field? Open an issue on the Actor's Issues tab on Apify Console — we ship fixes weekly and we read every report.