# AI Lead Intent Finder (`joseforo/ai-lead-intent-finder`) Actor

Find B2B lead intent from websites: contact data, automation signals, lead score, and outreach messages.

- **URL**: https://apify.com/joseforo/ai-lead-intent-finder.md
- **Developed by:** [Josefo](https://apify.com/joseforo) (community)
- **Categories:** Lead generation, AI, E-commerce
- **Stats:** 0 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## 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

## AI Lead Intent Finder

Apify Actor MVP for turning B2B websites into actionable sales leads.

It crawls each website, extracts contact details and social links, detects automation and CRM signals, scores the lead, and generates a short outreach message in German or English.

It can also match each lead against your own products or service packages and output a win-rate plan: best-fit offer, win probability, objections, pitch angle, next best action, and follow-up sequence.

### Input

- `startUrls`: company websites to enrich
- `niche`: target customer segment
- `offer`: your service offer
- `products`: your products, packages, or services to match against each lead
- `salesGoal`: campaign goal for the win-rate plan
- `language`: `de` or `en`
- `maxPagesPerSite`: crawl depth per company website

### Output

Each dataset item contains:

- company name and domain
- emails, phones, contact page, social links
- detected technologies and business signals
- pain points and automation opportunities
- lead score from 0 to 100
- best-fit product and estimated win probability
- objections, pitch angle, next action, and follow-up sequence
- ready-to-send outreach message

### Local run

```bash
npm install
APIFY_LOCAL_STORAGE_DIR=./storage npm start
````

For local testing, create `storage/key_value_stores/default/INPUT.json`.

### Deploy

```bash
npm run apify -- login
npm run apify -- push
```

Do not paste your API token into chat. Use `apify login` or set `APIFY_TOKEN` locally.

Do not use `npx apify login`: that resolves the Apify SDK package, which has no CLI executable. Use the local `apify-cli` via `npm run apify -- ...`.

### Update Store display fields

The Apify API supports updating Actor categories and display metadata. Export a real token locally first:

```bash
export APIFY_TOKEN="your-token"
npm run store:update
```

Update one Actor:

```bash
npm run store:update -- --actor jvbmRq5PIzcxbCPvk
```

Update all Actors owned by your account:

```bash
npm run store:update -- --all
```

Use a config file:

```bash
npm run store:update -- --config ./store-info.example.json
```

# Actor input Schema

## `startUrls` (type: `array`):

Company websites to enrich. Paste URLs from Google Maps, LinkedIn, a CSV import, or another Actor dataset.

## `niche` (type: `string`):

Used in scoring and outreach copy.

## `offer` (type: `string`):

The service you want to sell to these leads.

## `products` (type: `array`):

Products, services, or packages to match against each lead. The Actor outputs the best-fit offer and win-rate reasons.

## `salesGoal` (type: `string`):

Your desired outcome for the outreach campaign.

## `language` (type: `string`):

Language for generated outreach message.

## `maxPagesPerSite` (type: `integer`):

Homepage plus relevant pages such as contact, pricing, services, and imprint.

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

Maximum number of websites processed at the same time.

## `includePages` (type: `boolean`):

Adds crawled page URLs to each output item.

## `includeWinRatePlan` (type: `boolean`):

Adds best-fit product, win probability, objections, pitch angle, and follow-up plan for each lead.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.shopify.com"
    }
  ],
  "niche": "E-commerce and service businesses",
  "offer": "AI automation with n8n, CRM updates, lead scoring, and personalized follow-ups",
  "products": [
    {
      "name": "AI Sales Automation",
      "description": "Lead capture, AI qualification, CRM update, personalized follow-up, and sales alerts.",
      "targetSignals": [
        "forms_present",
        "crm_present",
        "booking_flow",
        "email_marketing"
      ],
      "targetTechnologies": [
        "HubSpot",
        "Shopify",
        "Email marketing"
      ],
      "priceFrom": "1500 EUR",
      "cta": "Book a 20-minute automation audit"
    },
    {
      "name": "Automation Quick Win",
      "description": "One small workflow such as form to CRM to Slack alert, delivered quickly.",
      "targetSignals": [
        "forms_present"
      ],
      "targetTechnologies": [
        "WordPress",
        "Webflow"
      ],
      "priceFrom": "500 EUR",
      "cta": "Start with a 48-hour proof of concept"
    }
  ],
  "salesGoal": "Book qualified discovery calls for automation services",
  "language": "de",
  "maxPagesPerSite": 6,
  "maxConcurrency": 5,
  "includePages": true,
  "includeWinRatePlan": true
}
```

# 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 = {
    "startUrls": [
        {
            "url": "https://www.shopify.com"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("joseforo/ai-lead-intent-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 = { "startUrls": [{ "url": "https://www.shopify.com" }] }

# Run the Actor and wait for it to finish
run = client.actor("joseforo/ai-lead-intent-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 '{
  "startUrls": [
    {
      "url": "https://www.shopify.com"
    }
  ]
}' |
apify call joseforo/ai-lead-intent-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=joseforo/ai-lead-intent-finder",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "AI Lead Intent Finder",
        "description": "Find B2B lead intent from websites: contact data, automation signals, lead score, and outreach messages.",
        "version": "0.2",
        "x-build-id": "LXqu9BD950evn6Jq0"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/joseforo~ai-lead-intent-finder/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-joseforo-ai-lead-intent-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/joseforo~ai-lead-intent-finder/runs": {
            "post": {
                "operationId": "runs-sync-joseforo-ai-lead-intent-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/joseforo~ai-lead-intent-finder/run-sync": {
            "post": {
                "operationId": "run-sync-joseforo-ai-lead-intent-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",
                "required": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Company websites to enrich. Paste URLs from Google Maps, LinkedIn, a CSV import, or another Actor dataset.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "niche": {
                        "title": "Target niche",
                        "type": "string",
                        "description": "Used in scoring and outreach copy.",
                        "default": "E-commerce and service businesses"
                    },
                    "offer": {
                        "title": "Your offer",
                        "type": "string",
                        "description": "The service you want to sell to these leads.",
                        "default": "AI automation with n8n, CRM updates, lead scoring, and personalized follow-ups"
                    },
                    "products": {
                        "title": "Your products or offers",
                        "type": "array",
                        "description": "Products, services, or packages to match against each lead. The Actor outputs the best-fit offer and win-rate reasons.",
                        "default": [
                            {
                                "name": "AI Sales Automation",
                                "description": "Lead capture, AI qualification, CRM update, personalized follow-up, and sales alerts.",
                                "targetSignals": [
                                    "forms_present",
                                    "crm_present",
                                    "booking_flow",
                                    "email_marketing"
                                ],
                                "targetTechnologies": [
                                    "HubSpot",
                                    "Shopify",
                                    "Email marketing"
                                ],
                                "priceFrom": "1500 EUR",
                                "cta": "Book a 20-minute automation audit"
                            },
                            {
                                "name": "Automation Quick Win",
                                "description": "One small workflow such as form to CRM to Slack alert, delivered quickly.",
                                "targetSignals": [
                                    "forms_present"
                                ],
                                "targetTechnologies": [
                                    "WordPress",
                                    "Webflow"
                                ],
                                "priceFrom": "500 EUR",
                                "cta": "Start with a 48-hour proof of concept"
                            }
                        ]
                    },
                    "salesGoal": {
                        "title": "Sales goal",
                        "type": "string",
                        "description": "Your desired outcome for the outreach campaign.",
                        "default": "Book qualified discovery calls for automation services"
                    },
                    "language": {
                        "title": "Outreach language",
                        "enum": [
                            "de",
                            "en"
                        ],
                        "type": "string",
                        "description": "Language for generated outreach message.",
                        "default": "de"
                    },
                    "maxPagesPerSite": {
                        "title": "Max pages per website",
                        "minimum": 1,
                        "maximum": 25,
                        "type": "integer",
                        "description": "Homepage plus relevant pages such as contact, pricing, services, and imprint.",
                        "default": 6
                    },
                    "maxConcurrency": {
                        "title": "Max concurrency",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "Maximum number of websites processed at the same time.",
                        "default": 5
                    },
                    "includePages": {
                        "title": "Include crawled pages",
                        "type": "boolean",
                        "description": "Adds crawled page URLs to each output item.",
                        "default": true
                    },
                    "includeWinRatePlan": {
                        "title": "Include win-rate plan",
                        "type": "boolean",
                        "description": "Adds best-fit product, win probability, objections, pitch angle, and follow-up plan for each lead.",
                        "default": 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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
