Lead Enrichment
Crawls business websites to extract emails, phone numbers, and social media handles using Apify actor QAKrfXwAcbmcWYnSo (Contact Details Scraper). Updates the business_leads table.
What It Does
- Reads businesses from
business_leadswherewebsite IS NOT NULLandemail IS NULL - Submits all websites to Apify Contact Details Scraper (crawls up to 3 pages deep)
- Extracts emails, phone numbers, LinkedIn, Twitter, Facebook, Instagram handles
- Updates
business_leadswith found contact info (only fills empty fields)
How to Run
# Enrich all leads with websites but no email
node skills/lead-enrichment/scripts/lead-enrichment.js
# Limit batch size
node skills/lead-enrichment/scripts/lead-enrichment.js --limit 100
# Dry run
node skills/lead-enrichment/scripts/lead-enrichment.js --dry-run
Environment Variables
APIFY_API_KEY=xxx
INSFORGE_CONNECTION_STRING=xxx
Apify Actor
- Actor ID:
QAKrfXwAcbmcWYnSo(Contact Details Scraper) - Crawls up to 3 pages deep on each website
- Extracts: emails, phone numbers, LinkedIn, Twitter, Facebook, Instagram
Database
- Reads from:
business_leadswherewebsite IS NOT NULL AND email IS NULL - Updates:
business_leads.email,business_leads.phone,business_leads.facebook,business_leads.instagram - Never overwrites existing data — uses
COALESCEto only fill empty fields
Notes
- Run after
apify-google-mapsto enrich the scraped businesses - Works best when businesses have a website in their Google Maps listing
- Typical enrichment rate: 30-60% of leads will have a findable email