Automating Lead List Enrichment: From Domain Names to Full Contact Profiles

Sales teams who export domain lists from Apollo, Crunchbase, or industry directories face a universal problem: company names and websites — but no direct contact emails, no phone numbers, no social channels. This guide shows how to automate the entire enrichment step in a single API call.

Why Raw Domain Lists Have High Bounce Rates

Apollo exports, Crunchbase company downloads, and industry directory scrapes all share the same fundamental limitation: they give you company identity data — name, website, industry, headcount — but almost never a verified, deliverable contact email. The result when you push these raw lists into cold email campaigns:

High Bounce Rates

Guessed emails like [email protected] are wrong 40–70% of the time. Bounce rates above 3% destroy your sending domain's reputation permanently.

Wrong Contact Person

Even when emails exist, they're often pulled from LinkedIn scrapers pointing to a CMO or founder — not the decision-maker who actually buys your service.

Stale Contact Data

Databases like ZoomInfo and Apollo update contacts every 6–12 months. Company emails — especially at SMBs — change frequently when staff turns over or domains change.

Website scraping solves all three problems simultaneously: you extract the email that is currently live on the company's own website — the address the business owner themselves placed there for inbound inquiries. It's the most intentional, highest-quality contact signal available.

The Enrichment Workflow: CSV In, Full Profiles Out

The process has three stages. First, prepare your domain list. Second, pass it through the Website Scraper API. Third, re-import the enriched CSV into your CRM or cold email tool.

1
Export your domain list

Export from Apollo, Crunchbase, LinkedIn Sales Navigator, or any directory. Collect the website column — bare domains like example-co.com work fine; the API auto-adds https://.

2
Submit to the Enrichment API

POST all domains in one call via POST /api/v1/website/jobs. The API normalises, deduplicates, and queues them for parallel extraction. A signed webhook fires the instant results are ready.

cURL • Submit URL Batch to Website Scraper API
curl -X POST "https://boltscraper.com/api/v1/website/jobs" \
  -H "Authorization: Bearer bs_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "urls": [
      "https://example-co.com",
      "https://demo-roofing.com"
    ],
    "webhook_url": "https://api.yourcrm.com/webhooks/enriched"
  }'
3
Download and import the enriched CSV

The output CSV adds columns for email_1, email_2, phone_1, linkedin_url, instagram_url, facebook_url, and whatsapp directly alongside your existing rows. Upload straight into Smartlead, Instantly, or your CRM.

What the API Extracts Per Domain

For each company URL, the scraper visits the root page and automatically follows /contact, /about, and /team subpages to maximise coverage. The final record includes:

Field What's Extracted Cold Outreach Use
email_1, email_2, email_3 Up to 3 extracted business emails, priority-ranked (mailto links first) Primary contact for Smartlead / Instantly sequences
phone_1, phone_2 Normalized international phone numbers with country code SMS outreach, calling sequences, WhatsApp follow-up
linkedin_url LinkedIn company/in profile URL LinkedIn connection requests, Sales Navigator enrichment
instagram_url Instagram business profile link DM outreach for visually-driven brands (restaurants, retail)
facebook_url Facebook business page URL Facebook Messenger outreach, ad audience targeting
whatsapp wa.me click-to-chat links with number Direct WhatsApp messaging for international B2B outreach
page_title Cleaned company name from page title Personalisation variable in email subject lines
Enriched CSV — Before vs After
# BEFORE — raw Apollo export
company_name,website,industry,employees
Example Co,example-co.com,Construction,15
Demo Roofing,demo-roofing.com,Construction,8

# AFTER — enriched via Website Scraper API
company_name,website,email_1,phone_1,linkedin_url,instagram_url
Example Co,example-co.com,[email protected],+15550100192,linkedin.com/company/example-co,...
Demo Roofing,demo-roofing.com,[email protected],+15550200347,,instagram.com/demo_roofing

Phone Numbers and WhatsApp Links

The phone extractor applies nine pattern-matching rules — from href="tel:" links (the most reliable signal) to international number formats for UK, US, Australia, and global dial codes. Numbers are cleaned and normalised to E.164 format before being returned.

WhatsApp Business Links

Many SMBs and international businesses list their WhatsApp contact via wa.me click-to-chat links. These are captured separately in the whatsapp social field, giving you a direct messaging channel without going through cold email at all — particularly valuable for outreach to Asian, Latin American, and Middle Eastern markets.

Preparing High-Deliverability Lists for Smartlead and Instantly

Once your enriched CSV is downloaded, it's ready to upload directly into the major cold email platforms. Here's the recommended data hygiene workflow before sending:

post_enrichment_hygiene.py — recommended pre-send cleanup
import pandas as pd

df = pd.read_csv("enriched_contacts.csv")

# 1. Drop rows with no email at all
df = df.dropna(subset=["email_1"])
df = df[df["email_1"] != ""]

# 2. Optionally keep only company-domain emails (not Gmail/Yahoo)
df = df[~df["email_1"].str.contains(
    r"@gmail\.|@yahoo\.|@hotmail\.|@outlook\.", regex=True
)]

# 3. Tag contacts with LinkedIn vs email-only for sequence routing
df["has_linkedin"] = df["linkedin_url"].notna() & (df["linkedin_url"] != "")

# 4. Export for Smartlead / Instantly upload
df.to_csv("campaign_ready.csv", index=False)
print(f"✅ {len(df)} campaign-ready leads exported")

The Bolt Scraper API already eliminates noreply@, postmaster@, and placeholder domain emails before returning results, so your primary hygiene task is simply filtering out rows where no email was found at all (typically 10–25% of domains, mainly due to JS-only contact forms or email-less directories).

Use Webhooks to Auto-Import into Your CRM

Instead of manually downloading CSVs, configure a webhook endpoint that fires when your enrichment job completes. The payload includes a signed CSV download URL that Make.com or n8n can use to automatically import results directly into HubSpot, Pipedrive, Airtable, or Google Sheets. See the Webhooks guide and the Google Sheets integration guide for setup instructions.

Turn Your Domain List Into a Campaign-Ready Lead File

Submit your domain list export. Get back business emails, phone numbers, LinkedIn, Instagram, and WhatsApp links — automatically filtered and ready to upload into your cold email tool.

No Credit Card Required Free Credits Included 10,000 URLs per Job

Instant cloud setup • CSV & JSON export • Webhook delivery on completion

Frequently Asked Questions

Yes. The API automatically adds https:// to any URL missing a protocol prefix. Pass raw domain exports as-is — example-co.com and https://example-co.com are treated identically and deduplicated.

Typically 70–85% of SMB business domains return at least one email. Exceptions include sites that serve all contacts via JavaScript forms, enterprise sites with only CAPTCHA contact forms, or sites without a contact page at all. Phone number coverage tends to be higher at 80–90% since tel: links are extremely common in mobile-responsive business sites.

Yes. The CSV download uses standard column names (email_1, phone_1, linkedin_url, etc.) that map directly to Smartlead's and Instantly's lead import templates. You can also add a personalisation column by using page_title as the company name field.