Clutch.co Agency Leads Scraper avatar

Clutch.co Agency Leads Scraper

Pricing

Pay per event

Go to Apify Store
Clutch.co Agency Leads Scraper

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

Pay per event

Rating

0.0

(0)

Developer

DevilScrapes

DevilScrapes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days 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 rotationcurl-cffi impersonates 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-After honoured.
  • 🧱 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

  1. Click Try for free at the top of the page.
  2. Fill in the input form — most fields have sensible defaults.
  3. Click Start. Output streams into the run's dataset.
  4. Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.

📥 Input

FieldTypeRequiredDefaultNotes
categorystringyes'digital-marketing'Clutch category slug to scrape, e.g. "digital-marketing" (kebab-case; hundreds exist on Clutch, not a fixed enum).
locationstringno'—'Optional Clutch location slug, e.g. "new-york" (kebab-case). Builds /agencies/
maxResultsintegerno200Stop once this many unique (deduped by Clutch provider ID) leads are collected.
maxPagesintegerno10Hard cap on listing pages fetched, independent of Max results.
proxyConfigurationobjectno{'useApifyProxy': False}Apify Proxy settings. Optional — Clutch listing pages clear via curl-cffi browser impersonation alone (live-confirmed, no proxy). Enable a proxy group only if you see blocks.

Example input

{
"category": "digital-marketing",
"maxResults": 5,
"maxPages": 1,
"proxyConfiguration": {
"useApifyProxy": false
}
}

📤 Output

Every row is one dataset item.

FieldTypeNotes
clutch_provider_idstringStable Clutch provider ID (data-clutch-pid) — dedup/identity key.
namestringAgency/vendor display name (data-title).
profile_url['string', 'null']Absolute Clutch profile URL. Null for PPC-only rows exposing a tracking redirect instead.
categorystringCategory 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_tierstring"premier", "basic", or "none" — Clutch verified-mark modifier. Never null.
service_mixarrayPer-agency service allocation, e.g. [{"service_name": "Advertising", "percent": 10}]. Empty list when the row has no services chart. Never omitted.
listing_typestring"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_atstringISO-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:

EventUSDWhat it is
actor-start$0.05One-off warm-up charge per run
result-scraped$0.0018Per 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.