# Bulk Description Finder ⭐ Website -> Description (`amr-mando/company-description-finder`) Actor

$1.2/1000 | Website scraper -> description ✅  Input the domain and get the description.
Used for lead generation, personalization, and more⭐Very fast and easy to use | Free Plan users are unfortunately limited to 10 per run

- **URL**: https://apify.com/amr-mando/company-description-finder.md
- **Developed by:** [Mando](https://apify.com/amr-mando) (community)
- **Categories:** Lead generation, Automation, SEO tools
- **Stats:** 5 total users, 3 monthly users, 100.0% runs succeeded, 2 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.20 / 1,000 results

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/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 Description Finder

Give it a list of company websites. Get back a one-line description for each one.

> **Free plan users are limited to 10 results per run.** We do not get paid for free-tier usage, so we have to cap it to keep this actor running. Upgrading to any paid Apify plan removes the limit entirely.

---

### What it does

You provide a list of company domains, either by uploading a CSV file or typing them in directly. The actor visits each company homepage, finds their description, and returns it to you.

If you uploaded a CSV, you get the same file back with a new **description** column added at the end. Every other column stays exactly as it was.

---

### How to use it

#### Option A - Upload a CSV

1. Upload your CSV file
2. Specify which column holds the domains (e.g. `domain`, `website`, `url`), or leave it blank and it will be detected automatically
3. Run the actor
4. Download the results - your original CSV with a `description` column added as the last column

#### Option B - Paste domains directly

1. Type or paste one domain per line in the **Domains** field
2. Run the actor
3. Download the results

Domains can be in any format. `stripe.com`, `www.stripe.com`, and `https://stripe.com` all work the same way.

> **If both a CSV file and a direct domain list are provided, the CSV takes priority and the domain list is ignored.**

---

### Output

| Column | What it contains |
|--------|-----------------|
| *(your original columns)* | Unchanged, in their original order |
| `description` | The company description pulled from their homepage |

---

### What counts as a description?

The actor looks for descriptions in this order:

1. The meta description tag
2. The Open Graph description tag
3. The page title
4. The first paragraph of readable text

---

### Speed

- **1,000 domains** - under 2 minutes
- **20,000 domains** - under 15 minutes

---

### When a description cannot be found

Some websites actively block automated visitors. Large retail sites, financial institutions, and some enterprise software companies are the most common cases. When that happens, the description will be blank for that row.

---

### Tips

- If your CSV has a column called `domain`, `website`, `url`, `site`, or `homepage`, it will be detected automatically
- Column name matching is not case-sensitive, so `Domain`, `DOMAIN`, and `domain` all work
- Duplicate domains in your CSV are fine - each row gets its own result

# Actor input Schema

## `csvFile` (type: `string`):

Upload a CSV file containing company domains or websites. The actor will append a description column to every row, preserving all original columns in their original order. If a CSV is provided, the Direct Domain List below is ignored.
## `domainColumn` (type: `string`):

The name of the CSV column that contains the domains or URLs (for example: domain, website, url). Leave blank to auto-detect. Column matching is not case-sensitive.
## `domains` (type: `array`):

Enter one domain per line. No need to include https:// as bare domains like stripe.com work fine. This input is only used when no CSV file is uploaded above.

## Actor input object example

```json
{
  "domainColumn": "domain",
  "domains": [
    "stripe.com",
    "notion.so",
    "linear.app",
    "figma.com",
    "vercel.com"
  ]
}
````

# Actor output Schema

## `results` (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 = {
    "domainColumn": "domain",
    "domains": [
        "stripe.com",
        "notion.so",
        "linear.app",
        "figma.com",
        "vercel.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("amr-mando/company-description-finder").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 = {
    "domainColumn": "domain",
    "domains": [
        "stripe.com",
        "notion.so",
        "linear.app",
        "figma.com",
        "vercel.com",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("amr-mando/company-description-finder").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 '{
  "domainColumn": "domain",
  "domains": [
    "stripe.com",
    "notion.so",
    "linear.app",
    "figma.com",
    "vercel.com"
  ]
}' |
apify call amr-mando/company-description-finder --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Bulk Description Finder ⭐ Website -> Description",
        "description": "$1.2/1000 | Website scraper -> description ✅  Input the domain and get the description. \nUsed for lead generation, personalization, and more⭐Very fast and easy to use | Free Plan users are unfortunately limited to 10 per run",
        "version": "0.3",
        "x-build-id": "UVInGyBblUdvlHRyJ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/amr-mando~company-description-finder/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-amr-mando-company-description-finder",
                "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/amr-mando~company-description-finder/runs": {
            "post": {
                "operationId": "runs-sync-amr-mando-company-description-finder",
                "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/amr-mando~company-description-finder/run-sync": {
            "post": {
                "operationId": "run-sync-amr-mando-company-description-finder",
                "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": {
                    "csvFile": {
                        "title": "📄 CSV File",
                        "type": "string",
                        "description": "Upload a CSV file containing company domains or websites. The actor will append a description column to every row, preserving all original columns in their original order. If a CSV is provided, the Direct Domain List below is ignored."
                    },
                    "domainColumn": {
                        "title": "🔖 Domain Column Name",
                        "type": "string",
                        "description": "The name of the CSV column that contains the domains or URLs (for example: domain, website, url). Leave blank to auto-detect. Column matching is not case-sensitive.",
                        "default": ""
                    },
                    "domains": {
                        "title": "🌐 Domains",
                        "type": "array",
                        "description": "Enter one domain per line. No need to include https:// as bare domains like stripe.com work fine. This input is only used when no CSV file is uploaded above.",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
