Agency Lead Intelligence
Pricing
from $20.00 / 1,000 results
Agency Lead Intelligence
Production-ready Agency Vista scraper for extracting high-quality B2B agency leads, contact details, websites, services, ratings, and CRM-ready business data for sales, recruiting, and outreach workflows.
Pricing
from $20.00 / 1,000 results
Rating
0.0
(0)
Developer
Rohith S
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Agency Lead Intelligence ๐
Production-ready B2B lead-generation Apify Actor that extracts agency leads from public directories and exports CRM-ready datasets for sales teams, recruiters, outreach agencies, and lead-generation businesses.
๐ฏ What This Actor Does
Agency Lead Intelligence crawls agency directories and extracts structured B2B lead data at scale. It supports:
agencyvista
Other directories are planned for future releases.
The actor:
- ๐ discovers agencies from listing and search pages
- ๐ข opens agency profile pages and extracts structured data
- ๐ optionally visits agency websites for lightweight enrichment
- ๐ค exports results for spreadsheets and CRM workflows
Perfect For
- ๐ข Sales Teams: Find and contact agencies in target markets
- ๐ค Recruiters: Build agency outreach and partnership pipelines
- ๐ง Outreach Agencies: Scale prospecting with cleaner contact data
- ๐ผ Lead-Gen Businesses: Build curated agency datasets
- ๐ Prospecting Workflows: Move structured results into CRMs quickly
โจ Key Features
| Feature | Details |
|---|---|
| ๐ Directory Support | Agency Vista only for now |
| โ๏ธ Smart Search Inputs | Keywords, categories, locations, services, ratings |
| ๐ Website Enrichment | Extract additional emails, phones, socials, contact page links |
| ๐ค CRM-Ready Exports | JSON, CSV, HubSpot, Salesforce, Apollo-style CSV outputs |
| ๐งน Deduplication | Domain/profile/name-based deduplication logic |
| ๐ก๏ธ Anti-Blocking Basics | Proxy support, randomized delays, browser-like headers |
| ๐ Scalable Runs | Configurable concurrency, retries, graceful failure handling |
| ๐ธ Low Overhead | Lightweight HTTP-first crawl flow using Crawlee + gotScraping |
๐ Extracted Data Fields
Each lead can include fields such as:
company_nameagency_profile_urlwebsitedomainemailsphone_numberslocationcategoriesservicesratingreview_countdescriptionemployee_rangefounded_yearlinkedin_urltwitter_urlfacebook_urlinstagram_urlcontact_page_urlquality_scoresource_directoryscraped_atenrichedenriched_at
Example dataset item:
{"company_name": "Rocket Digital Agency","agency_profile_url": "https://agencyvista.com/agency/rocket-digital/summary","website": "https://rocketdigital.com","domain": "rocketdigital.com","emails": ["hello@rocketdigital.com", "contact@rocketdigital.com"],"phone_numbers": ["+1-555-123-4567"],"location": {"city": "New York","state": "NY","country": "United States","full_address": "123 Broadway, New York, NY 10001"},"categories": ["Digital Marketing", "SEO", "PPC"],"services": ["Google Ads", "SEO Audits", "Content Marketing", "Social Media"],"rating": 4.8,"review_count": 47,"description": "Full-service digital marketing agency specializing in ROI-driven campaigns.","employee_range": "10-50","founded_year": 2015,"linkedin_url": "https://linkedin.com/company/rocket-digital","twitter_url": "https://twitter.com/rocketdigital","facebook_url": "https://facebook.com/rocketdigital","instagram_url": "https://instagram.com/rocketdigital","contact_page_url": "https://rocketdigital.com/contact","source_directory": "agencyvista","quality_score": 88,"enriched": true,"scraped_at": "2026-05-12T14:22:45.000Z","enriched_at": "2026-05-12T14:23:00.000Z"}
๐๏ธ How It Works
Agency Lead Intelligenceโโโ Search discoveryโ โโโ Build search URLs from filtersโ โโโ Crawl directory listing/search pagesโโโ Profile extractionโ โโโ Discover profile URLsโ โโโ Extract structured agency dataโโโ Website enrichmentโ โโโ Visit agency websites when enabledโ โโโ Try to find emails, phones, socials, contact pagesโโโ Outputโโโ Save dataset itemsโโโ Generate optional export files
Current runtime characteristics:
- Uses
BasicCrawlerwithgotScraping - Uses Agency Vista-specific parsing
- Enrichment is lightweight and HTTP-first
- Other directory adapters are planned, but not active yet
โ๏ธ Input Configuration
Basic Search
{"keywords": ["digital marketing", "SEO agency"],"locations": ["New York", "California"],"maxResults": 200,"exportFormat": "hubspot"}
Full Configuration
{"keywords": ["digital marketing"],"categories": ["SEO", "PPC", "Social Media"],"locations": ["United States"],"services": ["Google Ads", "content marketing"],"minRating": 4,"maxResults": 500,"maxConcurrency": 5,"enableEnrichment": true,"deepEnrichment": false,"exportFormat": "salesforce","targetDirectory": "agencyvista","proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
keywords | string[] | [] | Search keywords |
categories | string[] | [] | Agency category filters |
locations | string[] | [] | City, state, country filters |
services | string[] | [] | Service offering filters |
minRating | number | 0 | Minimum rating from 0-5 |
maxResults | number | 100 | Max leads to extract. 0 means no explicit limit |
maxConcurrency | number | 5 | Concurrent requests. Current implementation clamps to 1-5 |
enableEnrichment | boolean | true | Visit agency websites for more data |
deepEnrichment | boolean | false | Present in input schema, but not actively used in the current runtime flow |
exportFormat | string | json | json, csv, hubspot, salesforce, apollo |
startUrls | array | [] | Optional custom search URLs. Overrides generated search URLs |
targetDirectory | string | agencyvista | Directory to scrape. Currently only agencyvista is active |
proxyConfiguration | object | Apify proxy prefill | Proxy settings for larger production runs |
requestTimeoutSecs | number | 30 | Request timeout, normalized to 10-120 |
maxRetries | number | 3 | Max retries, normalized to 0-10 |
๐ค Export Formats
JSON (Default)
Full structured data in the default dataset. Best for custom pipelines, APIs, and downstream processing.
Generic CSV
Universal CSV format compatible with spreadsheets and generic CRM imports.
HubSpot CSV
Pre-mapped for HubSpot-style imports, including fields such as:
Company NameWebsite URLPhone NumberEmailCityState/RegionCountry/Region
Salesforce CSV
Pre-mapped for Salesforce-style account imports, including:
Account NameWebsitePhoneBillingCityBillingStateBillingCountryIndustry
Apollo CSV
Pre-mapped for Apollo-style company imports.
When exportFormat is not json, the actor also writes a file to the default key-value store:
leads.csvleads.hubspotleads.salesforceleads.apollo
๐ก๏ธ Anti-Blocking Strategy
- ๐ Rotating Proxies: Supports Apify proxy configuration
- ๐ Adaptive Delays: Randomized delays between requests
- ๐งพ Realistic Headers: Browser-like request headers
- โป๏ธ Retry Logic: Failed core requests are retried through the crawl flow
- โ ๏ธ Graceful Enrichment Failure: If a website is unreachable, the base profile lead is still preserved
๐ Use Cases
Sales Prospecting
"Find digital marketing agencies in New York with strong ratings and export them for outreach."
Recruiter Pipeline
"Build a list of web design agencies in California for partnership or recruiting outreach."
Competitive Intelligence
"Map SEO agencies in the UK with employee counts, founding years, and social profiles."
Lead Operations
"Generate structured agency lead datasets for CRM import and internal prospecting workflows."
๐ Quick Start
Prerequisites
- Node.js 18+
- Apify CLI for local Actor runs
Install
$npm install
Run locally
npm run buildnpm start
Development scripts
npm run start:devnpm run devnpm run type-checknpm run lint
Apify CLI
$apify run
๐ง Technical Details
- Runtime: Node.js 18+ with TypeScript
- Crawler Core: Crawlee
BasicCrawler - HTTP Layer:
gotScraping - SDK: Apify SDK v3
- Directory Parsing: Adapter-based extraction per supported directory
- Deduplication: Domain, normalized profile URL, then company-name hash fallback
- Exports:
csv-stringifywith custom field mappers
โ ๏ธ Current Notes
deepEnrichmentis visible in the input schema, but the current runtime does not use a separate live Playwright enrichment flow.- Website enrichment is lightweight and does not guarantee JavaScript-rendered contact data.
- Dataset output can contain both a base profile item and a later enriched item for the same agency. If you need one final row per company, deduplicate by
dedup_key,domain, oragency_profile_url. - Directory markup changes over time, so selector updates may occasionally be required.
๐ License
Apache 2.0. See LICENSE for details.
๐ค Support
- ๐ง Found a bug? Open an issue or leave a detailed review note.
- ๐ Check the Apify Documentation
- ๐ฌ Join the Apify Discord Community
Built with Crawlee and Apify SDK v3 โจ