B2B Agency Leads — Clutch, GoodFirms, DesignRush + Emails
Pricing
from $2.00 / 1,000 agency listings
B2B Agency Leads — Clutch, GoodFirms, DesignRush + Emails
Scrape agencies from Clutch, GoodFirms, and DesignRush: name, website, rating, rates, and location, with optional email extraction from agency websites.
Pricing
from $2.00 / 1,000 agency listings
Rating
0.0
(0)
Developer
Shrithan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
B2B Agency Leads Scraper — Clutch, GoodFirms & DesignRush + Emails
Unofficial. Not affiliated with, endorsed by, or sponsored by Clutch, GoodFirms, or DesignRush.
Scrape B2B agencies from Clutch, GoodFirms, and DesignRush in a single run: name, website, rating, reviews, hourly rates, team size, and location, with optional email extraction from each agency's public site. Built for outbound sales, agency partnership teams, and lead-gen agencies who need directory leads they can actually contact.
What you get
Each dataset item is one agency. Primary key is profileUrl.
{"source": "clutch","name": "Power Digital","profileUrl": "https://clutch.co/profile/power-digital","website": "https://powerdigitalmarketing.com/growthplan","tagline": "Power Digital is a comprehensive advertising agency specializing in digital marketing services, including SEO, paid media, and content creation.","rating": 4.8,"reviewCount": 66,"minProjectSize": "$5,000+","hourlyRate": "$100 - $149 / hr","employees": "250 - 999","servicesFocus": ["Advertising", "Social Media Marketing", "Pay Per Click", "Search Engine Optimization"],"location": "San Diego, CA","country": "US","emails": []}
How to use
- Open this Actor in Apify Console. Category is required (for example
digital marketingorseo). Pick one or more sources: Clutch, GoodFirms, DesignRush — default is all three. - Set Max results per source to cap cost. Leave Extract emails off for a cheap directory pull; turn it on when you need contact addresses from agency websites.
- Click Start. Export the dataset as JSON, CSV, or Excel when the run finishes.
Worked example input (digital marketing agencies, 5 per directory, no email crawl):
{"sources": ["clutch", "goodfirms", "designrush"],"category": "digital marketing","maxResultsPerSource": 5,"includeEmails": false}
Category aliases include marketing, web development, seo, mobile apps, design, and it-services. Unknown text falls back to each site's directory root. GoodFirms uses live listing paths (for example /directory/marketing-services/top-digital-marketing-companies) — not the stale /companies/... slugs.
Pricing
| Event | Price | When you are charged |
|---|---|---|
Actor start (apify-actor-start) | $0.00005 | Once per run (automatic; first 5 seconds of compute are covered) |
Listing (listing) | $0.002 | Each unique agency written to the dataset |
Email enrichment (email-enrichment) | $0.005 | Each agency where at least one email was found (in addition to listing) |
Scraping 5,000 agencies without emails costs $10.00 + $0.00005 start fee. If 1,000 of those also return an email, add $5.00.
You are not charged email-enrichment when emails is []. You are not charged listing on a zero-result run (beyond the start fee).
Monitor mode / scheduling
Turn on Monitor mode (new agencies only) and create a daily or weekly schedule in Apify Console (Actor → Schedules).
- The actor stores a cursor (profile URLs already seen) in a named key-value store, keyed by your sources + category + location, so two schedules with different filters do not overwrite each other.
- First monitor run (no cursor yet): emits every matching agency up to your cap, then saves the cursor (capped at 50,000 URLs).
- Later runs: skip profile URLs already in the cursor — a feed of newly listed agencies.
- Changing
maxResultsPerSourceorincludeEmailsdoes not reset the cursor.
Integrations
- API: Call actor
shrid5/agency-leads-scraper(orhttps://apify.com/shrid5/agency-leads-scraper) with the Apify REST API or JS/Python client. Pass the same JSON input as the Console form. - MCP: Apify Actors are callable from MCP/AI-agent clients, so an assistant can search agency directories and return structured leads.
- Webhooks: Fire a webhook on run success to notify Slack, a CRM, or your own endpoint.
- Make / Zapier / n8n: Use the official Apify apps to send new agency rows into Google Sheets, HubSpot, Salesforce, or email.
FAQ
How do I get a list of SEO agencies?
Set Category to seo and leave Sources on all three (or Clutch only). Raise Max results per source if you need more than the default 200.
Do you extract emails from Clutch/GoodFirms/DesignRush profiles?
No. Emails come from the agency's own public website (homepage, /contact, /contact-us, /about) when Extract emails is on. Directory pages rarely publish emails. Empty emails: [] is a valid result and is not billed as enrichment.
Why is GoodFirms missing some categories?
GoodFirms listing URLs change. This actor maps marketing to the live /directory/marketing-services/top-digital-marketing-companies path (the old /companies/digital-marketing slug is a 404). Unknown categories use the GoodFirms directory root.
Can I filter by city or country?
Yes — set Location (for example Austin or US). Directories do not share one geo URL scheme, so the actor post-filters listing location/country fields.
Is scraping these directories legal? This actor reads public listing pages only. You are responsible for how you use the leads (CAN-SPAM, GDPR/CCPA, and each directory's terms). We do not log in, bypass paywalls, or invent contact data.
How does billing work if I hit my spending cap?
The actor charges listing after each agency is written (and email-enrichment only when an email was found). If your max-total-charge limit is reached it logs Charge limit reached, stopping gracefully, saves the monitor cursor, and stops without throwing.
Support
Maintained by Shrithan. Open an issue on this Actor or email shrithanofficial@gmail.com.