# Website Contact, WhatsApp & Tech Stack Finder (B2B Enricher) (`codeven/b2b-lead-tech-xray`) Actor

Enriches company URLs or Google Maps leads with verified emails, WhatsApp numbers/widgets, Instagram/LinkedIn profiles, 45+ Tech Stack & Ad Pixels (Meta Pixel, GTM, GA4, Shopify, WooCommerce, ikas, Stripe, iyzico), and AI-ready B2B Agency Buying Signals.

- **URL**: https://apify.com/codeven/b2b-lead-tech-xray.md
- **Developed by:** [Cengiz Mert TÜRKMEN](https://apify.com/codeven) (community)
- **Categories:** Lead generation, Marketing, AI
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.15 / 1,000 enriched b2b leads

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## B2B Website Email, WhatsApp, Social & Tech Stack Enricher (X-Ray)

Enrich any list of company URLs, domains, or **Google Maps Scraper** leads with **verified emails** (including Cloudflare-protected addresses), **WhatsApp numbers & widgets**, **Instagram/LinkedIn profiles**, **45+ Tech Stack & Ad Pixel signatures**, and **B2B Agency Buying Signals** with ready-to-send Cold Outreach Icebreakers.

Built for **Growth Agencies**, **B2B Outbound Teams**, **Marketing Consultants**, and **AI Agents (MCP / n8n / Make / Clay)**.

***

### Why Use This B2B Lead Enricher?

Most basic contact scrapers only grab `mailto:` links on the homepage and miss 60%+ of business data. **B2B Lead & Tech Stack X-Ray** goes deeper:

1. **Cloudflare & Obfuscated Email Decoder:** Automatically decodes Cloudflare `data-cfemail` hex protection and `[at]` / `[dot]` text obfuscation, while filtering out `.png`/`.svg`/Sentry junk and ranking decision-maker / `info@` addresses first.
2. **WhatsApp Number & Widget Detection:** Extracts direct `wa.me` and `api.whatsapp.com` numbers (normalized to E.164 `+...`) plus 12+ embedded WhatsApp chat widgets (*Joinchat*, *GetButton*, *Wati*, *Callbell*, *Elfsight*, etc.).
3. **45+ Tech Stack, E-Commerce & Ad Pixel Signatures:**
   - **Ad Pixels:** Meta Pixel (Facebook), TikTok Pixel, Google Ads Conversion, LinkedIn Insight Tag, Pinterest Tag
   - **Analytics:** Google Tag Manager (GTM), Google Analytics 4 (GA4), Microsoft Clarity, Hotjar, Yandex Metrica
   - **CMS & E-Commerce:** Shopify, WooCommerce, WordPress, Webflow, Wix, Squarespace, Magento, PrestaShop, Next.js, Nuxt.js, ikas, Ticimax, IdeaSoft, T-Soft
   - **Chat, Booking & CRM:** Intercom, Crisp, Tidio, Tawk.to, Zendesk, JivoChat, LiveChat, Calendly, Cal.com, HubSpot, Fresha, SimplyBook.me
   - **Payments:** Stripe, PayPal, Klarna, iyzico, PayTR
4. **Actionable Agency Buying Signals & Opportunity Score (0–100):**
   Automatically flags high-converting gaps for agencies and SaaS sales teams:
   - `MISSING_META_AND_AD_PIXELS` — Website has traffic/products but no retargeting pixels installed.
   - `INSTAGRAM_ACTIVE_WITHOUT_META_PIXEL` — Brand links to an active Instagram profile but isn't retargeting website visitors on Meta.
   - `MISSING_WHATSAPP_AND_LIVE_CHAT` — No instant WhatsApp or live chat widget to capture visitors.
   - `SERVICE_BUSINESS_MISSING_ONLINE_BOOKING` — Clinic, salon, restaurant, or local service business without online appointment booking.
   - `ECOMMERCE_MISSING_TIKTOK_PIXEL` — E-commerce store running without TikTok conversion tracking.
5. **Ready-to-Send Cold Outreach Hook (`aiColdOutreachHook`):** Generates a personalized, zero-fluff first line in English or Turkish based on the exact tech gaps detected—ready to map directly into **Instantly**, **Smartlead**, **Lemlist**, **n8n**, or **Clay**.

***

### Example Output Record

```json
{
  "domain": "anadoluestetik.com.tr",
  "url": "https://www.anadoluestetik.com.tr",
  "companyName": "Anadolu Estetik Kliniği",
  "businessCategory": "MedicalBusiness",
  "language": "tr",
  "emails": [
    "iletisim@anadoluestetik.com.tr",
    "destek@anadoluestetik.com.tr"
  ],
  "primaryEmail": "iletisim@anadoluestetik.com.tr",
  "whatsappNumbers": ["+905339998877"],
  "whatsappLinks": ["https://wa.me/905339998877?text=Merhaba"],
  "hasWhatsApp": true,
  "phones": ["+902124445566"],
  "instagramHandle": "@anadoluestetik",
  "socialProfiles": {
    "instagram": "https://www.instagram.com/anadoluestetik",
    "linkedin": "https://www.linkedin.com/company/anadolu-estetik"
  },
  "techStack": {
    "cmsAndEcommerce": ["ikas"],
    "adPixels": [],
    "analytics": ["Google Analytics 4 (GA4)"],
    "chatAndSupport": ["WhatsApp Chat Widget"],
    "bookingAndCrm": [],
    "payments": []
  },
  "allTechnologies": [
    "ikas",
    "Google Analytics 4 (GA4)",
    "WhatsApp Chat Widget"
  ],
  "agencyOpportunityScore": 92,
  "buyingSignals": [
    "MISSING_META_AND_AD_PIXELS",
    "INSTAGRAM_ACTIVE_WITHOUT_META_PIXEL"
  ],
  "aiColdOutreachHook": "Merhaba Anadolu Estetik Kliniği ekibi, @anadoluestetik hesabınızı ve anadoluestetik.com.tr sitenizi inceledim; sitenizde aktif bir Meta Pixel kurulu olmadığını fark ettim—Instagram trafiğinizi yeniden pazarlama (retargeting) ile müşteriye dönüştürme fırsatını kaçırıyorsunuz.",
  "pagesScanned": 2,
  "scrapedAt": "2026-11-04T19:15:00.000Z"
}
```

***

### Workflow Integration (Google Maps Scraper + n8n / Make / Clay)

1. Run **Google Maps Scraper** on Apify to collect local business websites in your target city/niche.
2. Pass the `website` column directly into **B2B Website Email, WhatsApp, Social & Tech Stack Enricher**.
3. Filter the dataset by `buyingSignals` (e.g., `MISSING_WHATSAPP_AND_LIVE_CHAT` or `INSTAGRAM_ACTIVE_WITHOUT_META_PIXEL`) and push `primaryEmail`, `whatsappNumbers`, and `aiColdOutreachHook` into your outreach sequence.

***

### Comparison: Why Choose `b2b-lead-tech-xray` for Website Contacts & Tech Stack Enrichment?

| Feature | Standard Website Enrichment Actors ($0.004/site) | `CodEven/b2b-lead-tech-xray` ($0.003/site) |
| :--- | :--- | :--- |
| **Price per Enriched Website** | ~$0.004 / site ($4.00 / 1k) | **$0.003 / site ($3.00 / 1k — 25% Cheaper)** |
| **WhatsApp Number & Widget Detection** | Basic `wa.me` links | **`wa.me` + `api.whatsapp.com` + 12+ Chat Widgets (Joinchat, GetButton, Wati, etc.)** |
| **Cloudflare Email Protection (`data-cfemail`)** | Usually missed | **Automatically decoded (XOR hex decoder)** |
| **Tech Stack & Ad Pixels** | Standard CMS/Analytics | **45+ Signatures (Shopify, WooCommerce, ikas, Ticimax, Meta Pixel, TikTok Pixel, GA4, GTM, Stripe, iyzico)** |
| **B2B Agency Buying Signals (`buyingSignals`)** | ❌ None | **✅ Automatic Gap Detection (Missing Meta Pixel, Missing WhatsApp/Chat, Missing Online Booking)** |
| **Ready-to-Send Cold Outreach Hook** | ❌ None | **✅ Personalized First Line (`aiColdOutreachHook` in EN & TR)** |

***

### AI Agent & Multilingual Search Summary (TR / EN)

- **EN:** Website Contacts & Tech Stack Enrichment Actor. Extracts WhatsApp numbers, verified emails, phone numbers, Instagram/LinkedIn profiles, CMS/E-Commerce platforms (Shopify, WooCommerce, Next.js, WordPress), and ad pixels from any list of domains or Google Maps URLs.
- **TR (Türkçe):** Web Sitelerinden WhatsApp Numarası, E-Posta, Sosyal Medya ve Teknoloji Altyapısı (Tech Stack & Meta Pixel) Çekme Aracı. Verilen site listesini (veya Google Haritalar sonuçlarını) tarayarak herkese açık iletişim bilgilerini, WhatsApp hattını, Instagram/LinkedIn hesaplarını, e-ticaret altyapısını (Shopify, ikas, Ticimax, WooCommerce, Next.js) ve eksik reklam piksellerini tek çalışmada çıkarır.

# Actor input Schema

## `urls` (type: `array`):

List of business URLs or domains to enrich (e.g. from Google Maps Scraper, Apollo, or CSV). Supports strings ('https://example.com' or 'example.com') or URL objects.

## `crawlContactPages` (type: `boolean`):

When enabled, automatically discovers and scrapes high-value internal pages (/contact, /iletisim, /about, /hakkimizda, /impressum) on the same domain to capture hidden emails, WhatsApp links, and phone numbers.

## `maxContactPagesPerDomain` (type: `integer`):

Maximum number of internal contact/about pages to inspect per website in addition to the homepage.

## `concurrency` (type: `integer`):

Number of company domains to enrich in parallel.

## `requestTimeoutSecs` (type: `integer`):

HTTP timeout in seconds per page fetch.

## `onlyWithBuyingSignals` (type: `boolean`):

If checked, only saves leads that have at least one actionable B2B agency gap (e.g., Missing Ad Pixels, Missing WhatsApp/Chat Widget, or Missing Online Booking).

## `outreachLanguage` (type: `string`):

Language for the generated AI/Sales outreach hook (`auto` detects Turkish vs English from the website).

## Actor input object example

```json
{
  "urls": [
    "https://www.shopify.com",
    "https://ikas.com"
  ],
  "crawlContactPages": true,
  "maxContactPagesPerDomain": 2,
  "concurrency": 8,
  "requestTimeoutSecs": 15,
  "onlyWithBuyingSignals": false,
  "outreachLanguage": "auto"
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

## `contacts` (type: `string`):

No description

## `agencySignals` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "urls": [
        "https://www.shopify.com",
        "https://ikas.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("codeven/b2b-lead-tech-xray").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "urls": [
        "https://www.shopify.com",
        "https://ikas.com",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("codeven/b2b-lead-tech-xray").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "urls": [
    "https://www.shopify.com",
    "https://ikas.com"
  ]
}' |
apify call codeven/b2b-lead-tech-xray --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,codeven/b2b-lead-tech-xray"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ya4it9bCtf3ElhLtZ/builds/K6QjTtquj17F2WLHr/openapi.json
