# Company Data Enrichment — Domain to Company Profile (`jimmywhyte/company-enrichment`) Actor

Feed a list of domains and get a company profile for each: name, description, industry, logo, location, founded year, employee size, tech stack, emails, and socials — pulled from the company's own website. No LinkedIn, no cookies. Pipeline-ready for bulk CRM enrichment.

- **URL**: https://apify.com/jimmywhyte/company-enrichment.md
- **Developed by:** [Jim Whyte](https://apify.com/jimmywhyte) (community)
- **Categories:** Lead generation, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Company Data Enrichment — Domain to Company Profile

Turn a **list of domains into full company profiles** in one run. Feed it a spreadsheet of
websites — a handful or thousands — and get back structured company data for each, pulled
straight from the company's own website. **No LinkedIn, no cookies, no accounts** — so it
doesn't break the way LinkedIn scrapers do, which makes it safe to wire into a pipeline.

Built for **bulk CRM / lead enrichment**: you have a list of domains (from a form, a contact
scraper, a Maps export, a signup list) and this fills in who the company actually is.

#### What you get per domain

| Field | Source |
|---|---|
| **Company name** | schema.org data, OpenGraph, page title |
| **Description** | schema.org / meta description / about page |
| **Industry / keywords** | meta keywords |
| **Location / HQ** | schema.org address |
| **Founded** | schema.org foundingDate |
| **Employees** | schema.org numberOfEmployees |
| **Tech stack** | HTML fingerprints (CMS, e-commerce, analytics, frameworks…) |
| **Socials** | LinkedIn, Twitter/X, Facebook, Instagram, YouTube, TikTok, GitHub |
| **Emails & phones** | mailto:/tel: + contact/about page (optional) |
| **Logo** | schema.org logo / OpenGraph image |

The richest data comes from sites that publish schema.org `Organization` markup (many do) —
e.g. a single run can return a company's full HQ address, founding date, and logo automatically.

#### Feed it your whole database of domains
- Paste or upload a list right in the input form.
- Pipe thousands in via the **API** from your CRM, database, or app.
- **Chain it** after another Apify actor (a contact scraper, a Maps scraper) so leads are
  enriched hands-off.
- Pull the input list from **Google Sheets** with Apify's integrations.

### Output

One record per domain:

```json
{
  "input": "monzo.com",
  "status": "ok",
  "name": "Monzo Bank",
  "description": "Making money work for everyone",
  "location": "Broadwalk House, 5 Appold St, London, EC2A 2AG",
  "founded": "2015-02-18",
  "employees": null,
  "tech": ["React", "Next.js"],
  "socials": { "linkedin": "https://www.linkedin.com/company/monzo-bank" },
  "emails": [],
  "logo": "https://monzo.com/static/images/monzo-logo-stacked.svg"
}
````

`status` is one of `ok`, `no_data_found`, `unreachable`, `invalid_input`, or `error`.

### Pairs with: Bulk Contact & Email Scraper

Need the actual **contacts** at these companies too? Run the same domain list through
[**Bulk Contact & Email Scraper**](https://apify.com/jimmywhyte/website-contact-finder) to pull
emails, phone numbers, and social profiles from each site. Enrich the company, then reach the
people — one lead-gen pipeline.

### Pricing

Pay per domain enriched — no subscription, no minimum. If you set a maximum charge on a run,
the actor stops cleanly once that budget is reached — it never runs up costs beyond your cap.

# Actor input Schema

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

Company domains or URLs to enrich, e.g. 'stripe.com' or 'https://stripe.com'.

## `domainsText` (type: `string`):

Alternative input: paste domains/URLs separated by newlines, commas, or spaces. Merged with the list above and de-duplicated.

## `includeContacts` (type: `boolean`):

Also extract contact emails and phone numbers from the site (adds a page fetch).

## `includeTechStack` (type: `boolean`):

Detect the website's technologies (CMS, e-commerce, analytics, frameworks) from its HTML.

## `maxConcurrency` (type: `integer`):

How many domains to enrich in parallel.

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

Per-page fetch timeout before giving up on a domain.

## `proxyConfiguration` (type: `object`):

Proxy to route requests through. Recommended for larger runs.

## Actor input object example

```json
{
  "domains": [
    "stripe.com",
    "monzo.com"
  ],
  "includeContacts": true,
  "includeTechStack": true,
  "maxConcurrency": 10,
  "requestTimeoutSecs": 8,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `companies` (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 = {
    "domains": [
        "stripe.com",
        "monzo.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("jimmywhyte/company-enrichment").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 = { "domains": [
        "stripe.com",
        "monzo.com",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("jimmywhyte/company-enrichment").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "domains": [
    "stripe.com",
    "monzo.com"
  ]
}' |
apify call jimmywhyte/company-enrichment --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=jimmywhyte/company-enrichment",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Company Data Enrichment — Domain to Company Profile",
        "description": "Feed a list of domains and get a company profile for each: name, description, industry, logo, location, founded year, employee size, tech stack, emails, and socials — pulled from the company's own website. No LinkedIn, no cookies. Pipeline-ready for bulk CRM enrichment.",
        "version": "0.1",
        "x-build-id": "WdPPfWzSkZJNIJx4L"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/jimmywhyte~company-enrichment/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-jimmywhyte-company-enrichment",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/jimmywhyte~company-enrichment/runs": {
            "post": {
                "operationId": "runs-sync-jimmywhyte-company-enrichment",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/jimmywhyte~company-enrichment/run-sync": {
            "post": {
                "operationId": "run-sync-jimmywhyte-company-enrichment",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "domains": {
                        "title": "Domains or websites",
                        "type": "array",
                        "description": "Company domains or URLs to enrich, e.g. 'stripe.com' or 'https://stripe.com'.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "domainsText": {
                        "title": "Or paste domains as text",
                        "type": "string",
                        "description": "Alternative input: paste domains/URLs separated by newlines, commas, or spaces. Merged with the list above and de-duplicated."
                    },
                    "includeContacts": {
                        "title": "Include emails & phones",
                        "type": "boolean",
                        "description": "Also extract contact emails and phone numbers from the site (adds a page fetch).",
                        "default": true
                    },
                    "includeTechStack": {
                        "title": "Detect tech stack",
                        "type": "boolean",
                        "description": "Detect the website's technologies (CMS, e-commerce, analytics, frameworks) from its HTML.",
                        "default": true
                    },
                    "maxConcurrency": {
                        "title": "Max concurrency",
                        "minimum": 1,
                        "maximum": 30,
                        "type": "integer",
                        "description": "How many domains to enrich in parallel.",
                        "default": 10
                    },
                    "requestTimeoutSecs": {
                        "title": "Request timeout (seconds)",
                        "minimum": 3,
                        "maximum": 60,
                        "type": "integer",
                        "description": "Per-page fetch timeout before giving up on a domain.",
                        "default": 8
                    },
                    "proxyConfiguration": {
                        "title": "Proxy",
                        "type": "object",
                        "description": "Proxy to route requests through. Recommended for larger runs.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
