# B2B Domain, Impressum, CEO & Ad-Pixel Enricher (`cobalt-data-labs/b2b-domain-impressum-ad-pixel-enricher`) Actor

Extract decrypted emails, direct phones, German/EU Impressum (CEO/Geschäftsführer, HRB, VAT ID), e-commerce tech stack, missing ad pixels (Meta, TikTok, Google Ads), AI chatbots, and cold-email sales hooks from any list of company domains.

- **URL**: https://apify.com/cobalt-data-labs/b2b-domain-impressum-ad-pixel-enricher.md
- **Developed by:** [Cobalt Data Labs](https://apify.com/cobalt-data-labs) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 enriched b2b domains

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 Domain, Impressum, CEO, Ad-Pixel & Contact Enricher (Clay / Make / n8n Ready)

Turn any list of raw company domains into complete, sales-ready B2B dossiers in seconds. Engineered with high-speed parallel HTTP threads (no slow headless browsers), this Actor extracts **verified emails, phone numbers, CEO / Geschäftsführer names, German/EU Impressum legal data (HRB, USt-IdNr.), e-commerce tech stacks, missing ad pixels, AI chat widgets, and active hiring signals**.

### What Data Does This Actor Extract?

- **Decrypted Emails & Direct Phones:** Unlocks Cloudflare-protected emails (`data-cfemail`), de-obfuscates `[at]` / `(at)` anti-bot strings, and prioritizes decision-maker emails.
- **DACH & EU Legal Impressum Parser:** Extracts **Geschäftsführer / CEO / Inhaber names**, legal form (`GmbH`, `AG`, `UG`, `Ltd.`), `HRB / HRA` register numbers, `Amtsgericht`, full street address, and `USt-IdNr.` (`DE/ATU/CHE/FR/NL/GB` VAT IDs).
- **Ad-Pixel Gap Finder (For Marketing Agencies):** Detects installed pixels (`Meta Pixel`, `TikTok Pixel`, `Google Ads`, `Google Tag Manager`, `LinkedIn Insight`, `Klaviyo`, `HubSpot`) and outputs a `missingAdPixels` list so you know exactly what to pitch.
- **AI Agency Widget Spy:** Detects whether a website has a live-chat widget (`Intercom`, `Drift`, `Zendesk`, `Tidio`, `Crisp`, `Voiceflow`) or online booking (`Calendly`, `Cal.com`, `Doctolib`, `Jameda`), plus WhatsApp links.
- **Active Hiring Signals:** Scans for career pages and detects ATS platforms (`Personio`, `Greenhouse`, `Lever`, `Workday`, `Ashby`, `JOIN`).
- **Ready-to-Send Sales Hook:** Automatically generates a personalized 1-sentence Icebreaker (`readyToSendSalesHook`) ready to map into **Clay.com, Instantly, Smartlead, Make.com, or n8n**.

### 4 Built-In Output Modes

1. **Full B2B Intelligence Dossier:** Complete tech stack, ad-pixel gaps, contacts, CEO names, and sales hook.
2. **DACH Impressum & Legal Extractor:** Tailored for German, Austrian, and Swiss (`DE/AT/CH`) B2B lead generation.
3. **E-Commerce & Ad-Pixel Gap Finder:** Built for Meta, TikTok, Google Ads, and Klaviyo agencies.
4. **AI Agency Widget Spy:** Finds businesses missing AI chatbots, voicebots, and automated booking tools.

### Sample Output (JSON / CSV / Clay.com Ready)

````json
{
  "domain": "personio.de",
  "companyName": "Personio",
  "decisionMakers_CEO": ["Hanno Renner"],
  "emails": ["info@personio.de"],
  "phones": ["+49 89 1250 1005"],
  "cmsAndEcommerce": ["Webflow"],
  "installedPixelsAndCRM": ["Google Tag Manager", "HubSpot", "LinkedIn Insight Tag"],
  "missingAdPixels": ["TikTok Pixel", "Klaviyo"],
  "hasLiveChat": true,
  "isHiring": true,
  "atsPlatform": ["Personio"],
  "vatId": "DE301500966",
  "registerNumber_HRB": "HRB 219822",
  "city": "München",
  "readyToSendSalesHook": "Hi Hanno Renner, noticed Personio is running Google Tag Manager, but you don't have TikTok Pixel installed yet."
}



# Actor input Schema

## `domains` (type: `array`):

Enter company domains (e.g., snocks.com, purelei.com, giesswein.com) to extract decrypted emails, phone numbers, CEO/Geschäftsführer names, HRB/VAT IDs, tech stack, ad pixels, and AI chatbots.
## `enrichmentMode` (type: `string`):

Choose the specialized B2B dataset format for your workflow.
## `maxConcurrency` (type: `integer`):

Number of domains to enrich simultaneously (1 to 25).

## Actor input object example

```json
{
  "domains": [
    "snocks.com",
    "purelei.com",
    "giesswein.com"
  ],
  "enrichmentMode": "full_b2b_dossier",
  "maxConcurrency": 10
}
````

# Actor output Schema

## `overview` (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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("cobalt-data-labs/b2b-domain-impressum-ad-pixel-enricher").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("cobalt-data-labs/b2b-domain-impressum-ad-pixel-enricher").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 '{}' |
apify call cobalt-data-labs/b2b-domain-impressum-ad-pixel-enricher --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,cobalt-data-labs/b2b-domain-impressum-ad-pixel-enricher"
        }
    }
}
```

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/6u4IIalHEOmyTYyAD/builds/izRuzYjNleTlDgYvs/openapi.json
