L logiover
lead-generation · May 29, 2026 · 10 min read

How to Scrape Clutch.co for B2B Agency Leads in 2026

Scrape Clutch.co's B2B directory into a clean lead list — agency name, website, rating, reviews, project size, hourly rate, team size, location and services.

If you sell to agencies, partner with them, or compete with them, Clutch.co is one of the richest B2B lead sources on the open web — and most teams still copy-paste it by hand. This guide shows how to scrape Clutch.co into a clean, structured agency lead list: name, website, star rating, review count, minimum project size, hourly rate band, team size, location and service focus. By the end you’ll know exactly what the directory exposes, how pagination works, what the output schema looks like, and how to turn a category-plus-location query into a few hundred outreach-ready leads in a single run.

Why Clutch.co is a high-value B2B lead source

Clutch.co is a curated directory of B2B service providers — web developers, digital-marketing shops, IT-services firms, design studios, dev agencies and more. Unlike a generic business listing, every Clutch profile is pre-qualified buyer intent in reverse: these are companies that actively sell services, list their pricing posture, and have been vetted enough to collect verified client reviews.

That makes the data unusually clean for lead generation. Each listing already carries the firmographic and commercial signals an SDR or partnerships lead normally has to chase down separately:

  • What they do — the service-focus breakdown, not just a vague category.
  • How big they are — a team-size band you can use to segment SMB versus mid-market.
  • What they charge — minimum project size and an hourly-rate band, so you can pre-qualify by budget.
  • How credible they are — star rating and review count as a social-proof filter.
  • Where they are — city and region, so you can slice by market.

The catch is that Clutch is built for browsing — one category, one city, one page at a time — not for bulk export. And it sits behind Cloudflare’s managed challenge, so a naive HTTP GET returns a challenge page, not data. That’s the gap this scraper closes.

How the scrape works under the hood

Clutch’s listing pages are server-rendered, but the server only renders them after you clear the Cloudflare managed challenge. That rules out a plain fetch or a bare HTTP client. The Clutch.co Scraper handles it by opening each directory page in a real Chrome browser routed through country-matched residential proxies, which is what lets it pass the challenge and read the server-rendered listing HTML.

Critically, there’s no login, no cookies and no API key involved. The actor only ever reads publicly listed directory and profile data — there’s no Clutch account to create or get restricted. That keeps the engineering posture clean: you’re collecting data Clutch publishes openly, just at scale instead of one page at a time.

Run the Clutch.co Scraper — turn any Clutch category or city directory into a structured B2B agency lead list with website, pricing and ratings. $2 per 1,000 records.

Input: point it at a directory or build the query

There are two ways to tell the scraper what to collect, and you can mix them.

Option 1 — paste directory URLs

Browse Clutch.co to any category or city listing and paste the URL into directoryUrls. For example:

  • https://clutch.co/web-developers
  • https://clutch.co/agencies/digital-marketing
  • https://clutch.co/it-services

You can paste several URLs in one run to assemble a broad list across categories or cities.

Option 2 — use the category + location builder

If you’d rather not hunt for URLs, set the category and location builder fields and the actor constructs the directory URL for you. Use category for a service like digital-marketing and location for a city or country like london. This is the fastest way to express “marketing agencies in London” without leaving the input form.

The full input reference

FieldTypeDescription
directoryUrlsarrayClutch category/location URLs, e.g. https://clutch.co/web-developers.
categorystringOptional builder — a service category like digital-marketing (used if URLs are empty).
locationstringOptional builder — a city/country to combine with category, e.g. london.
scrapeProfilesbooleanFollow each listing to its profile for website, address, founded year & socials. Default false.
maxResultsintegerMax agencies to save (auto-paginates to reach it). 0 = unlimited. Default 200.
proxyConfigurationobjectResidential proxy (required). Pre-configured to Apify Proxy · RESIDENTIAL · US.

A typical starting input:

{
  "directoryUrls": ["https://clutch.co/web-developers"],
  "scrapeProfiles": false,
  "maxResults": 200,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"],
    "apifyProxyCountry": "US"
  }
}

Pagination: how it reaches hundreds of agencies

A single Clutch directory page only shows a slice of the listings — but you rarely want just the first page. The scraper auto-paginates each directory you give it, walking page after page until it hits your maxResults cap. Set maxResults to 200 for a quick targeted batch, raise it for a deeper sweep, or set it to 0 to pull everything in the directory.

Two levers control breadth versus depth:

  • More directory URLs widen coverage — add web-developers and digital-marketing and it-services to span multiple service categories in one run.
  • A higher maxResults deepens each directory — useful when one category in one city already has more agencies than the default cap.

Because pagination is handled for you, “all the web-development agencies in New York” is a single input, not a loop you have to write.

Output: the exact fields you get per agency

Each agency comes back as one structured record. In the default listing mode you get the core firmographic and commercial fields; turning on scrapeProfiles enriches each record with the deeper profile-page data (website, full address, founded year and social links).

Here’s a realistic record:

{
  "name": "Lounge Lizard",
  "profileUrl": "https://clutch.co/profile/lounge-lizard",
  "websiteUrl": "https://www.loungelizard.com/",
  "rating": 4.8,
  "reviewCount": 43,
  "minProjectSize": "$25,000+",
  "hourlyRate": "$100 - $149 / hr",
  "teamSize": "50 - 249",
  "foundedYear": 1998,
  "location": "New York, NY",
  "address": "275 Madison Ave, New York, NY 10016, US",
  "serviceFocus": ["45% Web Development", "45% Web Design", "10% Branding"],
  "tagline": "Lounge Lizard is a versatile web development company...",
  "socialLinks": ["https://www.linkedin.com/company/lounge-lizard"],
  "sourceUrl": "https://clutch.co/web-developers",
  "scrapedAt": "2026-06-04T12:00:00.000Z"
}

Field reference

FieldDescription
nameAgency / service-provider name
websiteUrlThe agency’s own website (un-wrapped from Clutch’s redirect)
rating / reviewCountClutch star rating and number of reviews
minProjectSizeMinimum project budget the agency takes
hourlyRateHourly rate band (e.g. $100 - $149 / hr)
teamSizeEmployee range (e.g. 50 - 249)
foundedYearYear founded (profile mode)
location / addressCity/region; full address in profile mode
serviceFocusService breakdown the agency lists
taglineShort company description
socialLinksLinkedIn / X / Facebook / Instagram (profile mode)
profileUrlThe agency’s Clutch profile URL

A few schema notes for downstream use:

  • websiteUrl is the real domain, un-wrapped from Clutch’s outbound redirect — so it’s ready to feed into a contact-email scraper or domain-enrichment step.
  • minProjectSize and hourlyRate are bands, not numbers. Treat them as ordinal buckets ($25,000+, $100 - $149 / hr) when you sort or filter by budget.
  • teamSize is a range (50 - 249), perfect for SMB-versus-mid-market segmentation but not an exact headcount.
  • scrapedAt records capture time — useful since ratings, review counts and team sizes drift as you re-run on a schedule.

When to turn on profile enrichment

By default (scrapeProfiles: false), the scraper reads everything off the listing pages — fast, cheap, and enough for market mapping or a first-pass list. Flip scrapeProfiles to true when you need outreach-ready leads: the actor then follows each listing to its profile page and adds websiteUrl (where the listing didn’t expose it), the full address, foundedYear, and socialLinks like LinkedIn.

The trade-off is straightforward — profile mode visits one extra page per agency, so a run takes longer and costs more records, but you get the firmographic depth that makes a list genuinely sales-ready. A good pattern is to run listing mode first to scope and filter a category, then re-run with profiles on for just the segment you actually want to contact.

Use cases

What teams actually do with a structured Clutch dataset:

Agency sales and lead generation

Build a targeted list of agencies by service and city, then filter by teamSize, minProjectSize and rating to focus on firms that match your ICP. The websiteUrl field hands off cleanly to an email-finding step, turning a directory scrape into a warm-prospect pipeline for SDRs.

Partnerships and white-label sourcing

Looking for white-label vendors, referral partners or subcontractors in a specific niche? Scrape the relevant category, filter by service focus and team size, and you have a vetted shortlist of partners — complete with social-proof signals (rating, review count) to prioritise outreach.

Market mapping and competitive research

Pull an entire category to benchmark pricing, ratings and service mix across the competitive landscape. Aggregate hourlyRate and minProjectSize bands to see where a market clusters, or track how a vertical’s pricing and team sizes shift when you re-run the scrape quarter over quarter.

Recruiting and investor research

Recruiters can map service providers and their team sizes across markets to source talent or target firms. Investors and analysts can survey the providers in a vertical or region, using rating and review counts as an early quality filter when scoping acquisition or partnership targets.

Run the Clutch.co Scraper — paste several directory URLs, raise maxResults, and assemble a large targeted B2B agency lead list in one run. $2 per 1,000 records.

Cost and pairing it with other actors

Pricing is pay-per-result: $2 per 1,000 records, so a 200-agency targeted batch costs about $0.40, and a 2,000-agency category sweep runs around $4. Because the actor drives a real browser over residential proxies to clear Cloudflare, that per-result price already covers the bandwidth and challenge-clearing work you’d otherwise have to build and maintain yourself.

To go from “list of agencies” to “ready-to-email pipeline,” chain it with a couple of complementary steps:

  • Website Contact Scraper — turn each websiteUrl into emails and phone numbers.
  • Bulk Email Verifier — validate those emails before outreach so you don’t burn sender reputation.
  • LinkedIn Company Scraper — enrich each agency with company-page details for deeper firmographics.

FAQ

Where do I get the Clutch directory URLs?

Browse Clutch.co to any category or city listing — for example clutch.co/web-developers or clutch.co/agencies/digital-marketing/london — and paste the URL into directoryUrls. Or skip URLs entirely and fill in the category and location builder fields, and the scraper constructs the directory URL for you.

Does the scraper get past Cloudflare?

Yes. Clutch sits behind Cloudflare’s managed challenge, and the actor clears it using a real Chrome browser with country-matched residential proxies. Residential proxies are required for this reason — they’re pre-configured in the default input.

How many agencies can I collect in one run?

Hundreds. The actor auto-paginates each directory until your maxResults cap is reached, and you can set maxResults to 0 for unlimited. Add more directory URLs to widen coverage across categories or cities.

What does profile mode add to each record?

Turning on scrapeProfiles follows each listing to its Clutch profile page and adds the agency’s website, full address, founded year and social links — the extra depth that makes a list outreach-ready rather than just a market overview.

Do I need a Clutch.co account or API key?

No. The scraper reads only public directory and profile data — there’s no account, login or API key involved, so there’s nothing to register or get restricted.

Is the pricing data exact?

No — minProjectSize, hourlyRate and teamSize are bands (e.g. $25,000+, $100 - $149 / hr, 50 - 249), exactly as Clutch publishes them. Treat them as ordinal buckets for filtering and segmentation rather than precise figures.

Wrapping up

Clutch.co packs an unusual amount of pre-qualified B2B signal into one directory — service focus, pricing posture, team size, social proof and location, all on public listings. The only thing standing between you and a clean lead list is Cloudflare and the lack of a bulk export. Point the scraper at a category and location, set your cap, and you’ve got a few hundred structured, outreach-ready agency records in a single run.

Open the Clutch.co Scraper on Apify — category-plus-location builder, auto-pagination, optional profile enrichment. Pay per record, start with Apify’s free monthly credit. $2 per 1,000 records.

Guide: how-to-scrape-clutch-co-b2b-agency-leads.mdx — your complete reference for how to scrape Clutch.co for B2B agency leads.

Related guides