B2B Lead & Multi-Channel Contact Enricher avatar

B2B Lead & Multi-Channel Contact Enricher

Under maintenance

Pricing

Pay per usage

Go to Apify Store
B2B Lead & Multi-Channel Contact Enricher

B2B Lead & Multi-Channel Contact Enricher

Under maintenance

Scrape, discover, and enrich B2B leads from search queries or website URLs. Deep extraction of direct & obfuscated emails, international phone numbers, LinkedIn & social profiles, Schema.org/JSON-LD company intelligence, physical addresses, and key decision-maker contact pages.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

WONX

WONX

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 days ago

Last modified

Categories

Share

🚀 B2B Lead & Multi-Channel Contact Enricher

Apify Actor Python 3.11 License: MIT

Autonomous B2B Lead Generation & Multi-Channel Contact Enrichment Engine. Discover verified business emails (including Cloudflare-obfuscated & [at] protections), international phone numbers, LinkedIn & social networks, Schema.org company intelligence, physical addresses, and tech stacks from queries or direct URLs.


⚡ Key Capabilities

  • 🎯 Dual Input Architecture:
    • Discovery Mode: Feed natural search queries (e.g., "Roofing contractors in Miami, FL", "SaaS startups Berlin", "Commercial cleaning Dallas TX") to dynamically uncover live company domains.
    • Direct URL Mode: Enrich a list of pre-existing website domains or URLs in bulk.
  • ✉️ Military-Grade Email Extraction:
    • Unmasks standard mailto: links and RFC 5322 regex addresses.
    • Decodes Cloudflare data-cfemail hex obfuscation and /cdn-cgi/l/email-protection scripts.
    • Decodes obfuscated patterns (e.g. info [at] company [dot] com, contact(at)domain.com).
    • Intelligent scoring to identify the Primary Corporate Email (contact@, info@, sales@, etc.).
  • 📞 Global Phone Number Normalization:
    • Extracts raw phone numbers, tel: links, and formatted text.
    • Normalizes numbers into international E.164 and standard regional formats via Google's libphonenumber engine.
  • 🌐 Multi-Channel Social Intelligence:
    • Extracts verified direct links for LinkedIn (company & personal), Twitter / X, Facebook, Instagram, YouTube, TikTok, GitHub, Pinterest, and Telegram.
    • Intelligent filtering discards share buttons (/sharer.php, /intent/tweet) and system pages.
  • 🏢 Deep Schema.org & Address Intelligence:
    • Parses LocalBusiness, Organization, Corporation, and PostalAddress JSON-LD scripts.
    • Extracts physical street address, city, state, postal code, country, and precise latitude/longitude geo-coordinates.
  • 🕷️ Multi-Page Internal Link Traversal:
    • Automatically identifies and crawls high-value internal subpages: /contact, /about, /team, /reach-us, /support, /impressum, /kontakt.
  • 🛡️ Anti-Bot Resilience & Proxy Support:
    • Rotating desktop browser User-Agents and modern HTTP/2 client headers.
    • Fully compatible with Apify Residential / Datacenter Proxies and custom HTTP/HTTPS proxy pools.

📥 Input Configuration

Configure your actor using the Apify Console UI or via raw JSON:

Example Input JSON

{
"searchQueries": [
"Commercial solar contractors Austin TX",
"B2B SaaS companies Berlin"
],
"startUrls": [
{ "url": "https://stripe.com" },
{ "url": "https://vercel.com" }
],
"maxLeadsPerQuery": 20,
"deepCrawlContactPages": true,
"maxInternalPagesPerDomain": 5,
"extractEmails": true,
"extractPhones": true,
"extractSocials": true,
"extractAddresses": true,
"extractMetadata": true,
"defaultCountry": "US",
"concurrency": 8,
"requestTimeoutSec": 15,
"proxyConfiguration": {
"useApifyProxy": true
}
}

Input Field Specifications

FieldTypeDefaultDescription
searchQueriesArray of Strings[]List of search queries/niches + locations for automated website discovery.
startUrlsArray of Objects[]List of target websites to crawl directly ({"url": "https://example.com"}).
maxLeadsPerQueryInteger25Max distinct business domains to discover per search query.
deepCrawlContactPagesBooleantrueAutomatically traverse /contact, /about, /team pages.
maxInternalPagesPerDomainInteger5Maximum internal contact pages to crawl per domain.
extractEmailsBooleantrueExtract plain, mailto, obfuscated, and Cloudflare emails.
extractPhonesBooleantrueExtract and normalize phone numbers into international format.
extractSocialsBooleantrueDiscover LinkedIn, Twitter/X, Facebook, Instagram, YouTube, etc.
extractAddressesBooleantrueParse Schema.org JSON-LD for address & geo-coordinates.
defaultCountryString"US"2-letter ISO country code used for local phone parsing.
concurrencyInteger8Number of parallel worker threads.
requestTimeoutSecInteger15Timeout per HTTP page request.
proxyConfigurationObject{"useApifyProxy": true}Apify Proxy or custom proxy configuration.

📤 Output Dataset Format

Each enriched lead is saved into the default Apify Dataset as clean, structured JSON:

{
"domain": "acmeroofingfl.com",
"websiteUrl": "https://acmeroofingfl.com",
"sourceQuery": "Roofing contractors in Miami, FL",
"companyName": "Acme Commercial Roofing",
"title": "Acme Commercial Roofing | Miami FL Premier Roofing Specialists",
"description": "Leading industrial and commercial roofing contractors serving Miami-Dade and South Florida.",
"emails": [
"contact@acmeroofingfl.com",
"service@acmeroofingfl.com",
"estimates@acmeroofingfl.com"
],
"primaryEmail": "contact@acmeroofingfl.com",
"phones": [
"+1 305-555-0199",
"+1 305-555-0188"
],
"primaryPhone": "+1 305-555-0199",
"socialProfiles": {
"linkedin": "https://www.linkedin.com/company/acme-commercial-roofing",
"twitter": "https://x.com/acmeroofingfl",
"facebook": "https://www.facebook.com/acmecommercialroofing",
"instagram": "https://www.instagram.com/acmeroofingfl",
"youtube": "https://www.youtube.com/@AcmeRoofingFL",
"tiktok": null,
"github": null,
"pinterest": null,
"telegram": null
},
"address": {
"streetAddress": "742 NW 1st Ave",
"addressLocality": "Miami",
"addressRegion": "FL",
"postalCode": "33136",
"addressCountry": "US",
"formattedAddress": "742 NW 1st Ave, Miami, FL, 33136, US",
"latitude": 25.7812,
"longitude": -80.1983
},
"schemaType": "LocalBusiness, RoofingContractor",
"crawledPages": [
"https://acmeroofingfl.com",
"https://acmeroofingfl.com/contact",
"https://acmeroofingfl.com/about-us"
],
"contactPageUrls": [
"https://acmeroofingfl.com/contact",
"https://acmeroofingfl.com/about-us"
],
"technologies": [
"Cloudflare",
"Google Analytics / GTM",
"WordPress"
],
"status": "SUCCESS",
"errorMessage": null,
"enrichedAt": "2026-10-05T18:30:00.000000Z"
}

🔗 CRM & Automation Integrations

Export your dataset effortlessly into any sales and marketing workflow:

1. Make.com (Integromat)

  1. Add an Apify module -> Watch Dataset Items.
  2. Select this Actor's dataset.
  3. Map primaryEmail, companyName, primaryPhone, and socialProfiles.linkedin to HubSpot, Salesforce, or Pipedrive (Create/Update Contact).

2. Zapier

  1. Set Trigger: Apify - New Item in Dataset.
  2. Action: Google Sheets - Create Spreadsheet Row or Instantly.ai / Smartlead - Add Lead to Campaign.

3. Webhooks & API

Listen to Apify run completion webhooks and retrieve the JSON dataset with:

curl "https://api.apify.com/v2/datasets/{DATASET_ID}/items?format=json" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN"

🛠️ Local Development & Deployment

1. Local Setup

# Clone or navigate to the project directory
cd b2b-lead-contact-enricher
# Create and activate virtual environment
python -m venv venv
# Windows:
venv\Scripts\activate
# Linux/macOS:
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt

2. Run Locally with Apify CLI

# Run actor locally using local storage
apify run

3. Deploy to Apify Cloud

# Login to Apify
apify login
# Push and build Actor on Apify platform
apify push

💡 Best Practices

  1. Enable Residential Proxies for Discovery: When running large batches of search queries, set proxyConfiguration: { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] } for highest success rates.
  2. Adjust Concurrency: For large enterprise domains, set concurrency between 10 and 25 to achieve high throughput without encountering edge rate limits.
  3. Target Country Phone Normalization: Set defaultCountry matching your target market (e.g. GB for United Kingdom, DE for Germany, US for United States) to optimize phone number parsing.

📄 License

MIT License. Created for high-performance lead generation and enterprise sales intelligence workflows.