# ColdBrief AI — AI Lead & Company Research Briefs (`aarya_2/coldbrief-ai`) Actor

Feed in a list of company websites and get back sales-ready research briefs: a plain-English company summary, likely pain points, a personalized cold-email icebreaker, tech/signal notes, and an ICP fit score — generated by AI, per lead.

- **URL**: https://apify.com/aarya\_2/coldbrief-ai.md
- **Developed by:** [Aarya Bhansali](https://apify.com/aarya_2) (community)
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$30.00 / 1,000 lead enricheds

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

## ColdBrief AI

Turns a plain list of company websites into sales-ready outbound research briefs:
a 2-3 sentence company summary, 3 likely pain points, a personalized cold-email
icebreaker, tech/signal notes, and a 1-5 ICP fit score \u2014 all generated by AI,
per lead, in seconds.

Built for solo founders, freelance SDRs, and small agencies who need
Clay/Apollo-style AI research without the $150-800/month price tag.

### Why this over a plain scraper

Google Maps / LinkedIn scrapers give you *rows of data*. ColdBrief gives you
a *reason to email* \u2014 the part a rep actually has to write by hand today.
It's the enrichment/synthesis layer, not another raw-data dump.

### Input

```json
{
  "leads": [
    { "companyName": "Notion", "website": "https://www.notion.com" }
  ],
  "icpDescription": "We sell an AI QA testing tool for B2B SaaS teams of 10-200 people.",
  "geminiApiKey": "YOUR_FREE_GEMINI_KEY",
  "groqApiKey": "",
  "maxLeads": 100,
  "requestDelayMs": 2500
}
```

- `leads` \u2014 array of `{ companyName, website, linkedinUrl }`. Only `website` is required.
- `icpDescription` \u2014 what *you* sell and who your ideal customer is. This is what makes the icebreaker and fit score personalized instead of generic.
- `geminiApiKey` — required. Free, no card. **[Get your Gemini key here →](https://aistudio.google.com/apikey)**
- `groqApiKey` — optional fallback used automatically if Gemini is rate-limited. Free, no card. **[Get your Groq key here →](https://console.groq.com/keys)**

### Output (per lead, in the dataset)

```json
{
  "companyName": "Notion",
  "website": "https://www.notion.com",
  "company_summary": "...",
  "likely_pain_points": ["...", "...", "..."],
  "icebreaker_line": "...",
  "tech_signals": ["..."],
  "icp_fit_score": 4,
  "icp_fit_reason": "...",
  "enrichedAt": "2026-09-17T12:00:00.000Z"
}
```

### Cost model (pay-per-event)

The Actor charges the `lead-enriched` event **only when a brief is
successfully generated** \u2014 failed or skipped rows are never billed.
Suggested price: **$0.03 per lead** (set in Apify Console \u2192 Monetization).
That undercuts AI-enrichment tools like Clay by roughly 50-100x per lead
while still leaving healthy margin over the ~$0.001-0.003 in Apify platform
compute the run actually consumes.

### Local development

```bash
npm install
apify run          # uses storage/key_value_stores/default/INPUT.json
```

Paste a real free Gemini key into that INPUT.json before running locally.
Get one in 30 seconds (no card required): **[aistudio.google.com/apikey](https://aistudio.google.com/apikey)**

### Publishing checklist (do this in order)

1. `npm install -g apify-cli`
2. `apify login` \u2014 paste your API token from Apify Console \u2192 Settings \u2192 API & Integrations (free account, no card).
3. From this folder: `apify push` \u2014 uploads and builds the Actor on Apify.
4. In Apify Console, open the Actor \u2192 **Publication** tab \u2192 complete identity verification (KYC) \u2014 required before you can monetize any Actor.
5. Open the **Monetization** tab \u2192 choose **Pay per event** \u2192 add a custom event named exactly `lead-enriched` \u2192 set its price (suggested: $0.03) \u2192 save.
6. Fill out the Store listing: title, short description, categories (`LEAD_GENERATION`, `AI`), and 2-3 example screenshots of the JSON output.
7. Submit for public listing. Keep it unlisted/private until you've run it yourself end-to-end with a real Gemini key and checked the output quality on 5-10 real leads.
8. Once public, it is **automatically usable from Zapier** \u2014 Apify's existing generic Zapier integration lets any user pick your Actor as an action with zero extra setup from you. Build one example Zap ("New row in Google Sheet \u2192 Run ColdBrief AI \u2192 Write results back to the Sheet") and share it as a template in your launch posts.

# Actor input Schema

## `leads` (type: `array`):

List of companies to enrich. Each item needs at least a website. companyName and linkedinUrl are optional but improve accuracy.

## `icpDescription` (type: `string`):

1-3 sentences describing what YOU sell and who your ideal customer is. Used to personalize the icebreaker and score ICP fit for each lead. Example: 'We sell an AI QA testing tool for B2B SaaS engineering teams of 10-200 people.'

## `geminiApiKey` (type: `string`):

Free key from https://aistudio.google.com/apikey — no credit card required. Used as the primary AI model.

## `groqApiKey` (type: `string`):

Optional. Free key from https://console.groq.com/keys — used automatically if Gemini is rate-limited or unavailable.

## `maxLeads` (type: `integer`):

Safety cap on how many leads this run will process and charge for.

## `requestDelayMs` (type: `integer`):

Small delay to stay under free-tier rate limits. Increase if you see 429 errors.

## Actor input object example

```json
{
  "leads": [
    {
      "companyName": "Notion",
      "website": "https://www.notion.com"
    },
    {
      "companyName": "Linear",
      "website": "https://linear.app"
    }
  ],
  "icpDescription": "We sell an AI-powered QA testing tool for B2B SaaS engineering teams of 10-200 people. Our ideal customer is a CTO or VP of Engineering at a fast-growing startup who is spending too much time on manual regression testing before each software release.",
  "maxLeads": 100,
  "requestDelayMs": 2500
}
```

# Actor output Schema

## `dataset` (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 = {
    "leads": [
        {
            "companyName": "Notion",
            "website": "https://www.notion.com"
        },
        {
            "companyName": "Linear",
            "website": "https://linear.app"
        }
    ],
    "icpDescription": "We sell an AI-powered QA testing tool for B2B SaaS engineering teams of 10-200 people. Our ideal customer is a CTO or VP of Engineering at a fast-growing startup who is spending too much time on manual regression testing before each software release."
};

// Run the Actor and wait for it to finish
const run = await client.actor("aarya_2/coldbrief-ai").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 = {
    "leads": [
        {
            "companyName": "Notion",
            "website": "https://www.notion.com",
        },
        {
            "companyName": "Linear",
            "website": "https://linear.app",
        },
    ],
    "icpDescription": "We sell an AI-powered QA testing tool for B2B SaaS engineering teams of 10-200 people. Our ideal customer is a CTO or VP of Engineering at a fast-growing startup who is spending too much time on manual regression testing before each software release.",
}

# Run the Actor and wait for it to finish
run = client.actor("aarya_2/coldbrief-ai").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 '{
  "leads": [
    {
      "companyName": "Notion",
      "website": "https://www.notion.com"
    },
    {
      "companyName": "Linear",
      "website": "https://linear.app"
    }
  ],
  "icpDescription": "We sell an AI-powered QA testing tool for B2B SaaS engineering teams of 10-200 people. Our ideal customer is a CTO or VP of Engineering at a fast-growing startup who is spending too much time on manual regression testing before each software release."
}' |
apify call aarya_2/coldbrief-ai --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,aarya_2/coldbrief-ai"
        }
    }
}
```

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/mgGGHIfNSuUkEwexe/builds/fAGyXjMcjgRzUgxWA/openapi.json
