lead-intelligence
affaan-m/ECC
Выявляет, оценивает и устанавливает контакты с высокоценными пользователями посредством анализа социального графа и выявления «теплых» связей, формируя персонализированные шаблоны обращений для электронной почты, LinkedIn и X.
...Расширить всеАналитика потенциальных клиентов
Конвейер анализа потенциальных клиентов на основе агентов, который находит, оценивает и устанавливает контакт с ценными потенциальными клиентами посредством анализа социальных сетей и выявления «теплых» путей.
Когда следует активировать
- Пользователь хочет найти потенциальных клиентов в конкретной отрасли
- Составление списка контактов для налаживания партнерских отношений, продаж или привлечения инвестиций
- Изучение того, к кому следует обратиться, и определение оптимального пути для установления контакта
- Пользователь говорит: «найти потенциальных клиентов», «список для установления контактов», «к кому мне обратиться», «теплые знакомства»
- Необходимо оценить или ранжировать список контактов по релевантности
- Хочет сопоставить общие знакомые, чтобы найти пути для «теплых» знакомств
Требования к инструменту
Обязательные
- Exa MCP — поиск людей, компаний и сигналов в «глубокой сети» (
web_search_exa) - X API — граф подписчиков/подписок, анализ взаимных связей, недавняя активность (
X_BEARER_TOKEN, а также учетные данные для записи в контексте, такие какX_CONSUMER_KEY,X_CONSUMER_SECRET,X_ACCESS_TOKEN,X_ACCESS_TOKEN_SECRET)
Необязательно (для улучшения результатов)
- LinkedIn — Прямой API, если доступен; в противном случае — управление через браузер для поиска, просмотра профилей и создания черновиков
- Apollo/Clay API — для перекрёстных ссылок с целью обогащения данных, если у пользователя есть доступ
- GitHub MCP — для квалификации потенциальных клиентов с ориентацией на разработчиков
- Apple Mail / Mail.app — создание черновиков «холодных» или «теплых» писем без автоматической отправки
- Управление браузером — для LinkedIn и X, когда API отсутствует или имеет ограничения
Обзор воронки продаж
┌─────────────┐ ┌──────────────┐ ┌─────────────────┐ ┌──────────────┐ ┌─────────────────┐
│ 1. Signal │────>│ 2. Mutual │────>│ 3. Warm Path │────>│ 4. Enrich │────>│ 5. Outreach │
│ Scoring │ │ Ranking │ │ Discovery │ │ │ │ Draft │
└─────────────┘ └──────────────┘ └─────────────────┘ └──────────────┘ └─────────────────┘
Голосовое общение перед контактом
Не составляйте исходящие письма на основе типовых шаблонов продаж.
Проводите brand-voice в первую очередь, когда важен голос пользователя. Используйте его VOICE PROFILE вместо того, чтобы заново придумывать стиль специально для этого навыка.
Если доступен доступ к Live X, перед составлением сообщения извлеките недавние оригинальные посты. Если нет, используйте предоставленные примеры или лучший доступный материал из репозитория/сайта.
Этап 1: Оценка сигналов
Ищите людей с высоким сигналом в целевых отраслях. Присвойте каждому из них вес на основе:
| Сигнал | Вес | Источник |
|---|---|---|
| Соответствие должности/должностному названию | 30% | Exa, LinkedIn |
| Соответствие отрасли | 25% | Поиск компаний по Exa |
| Недавняя активность по теме | 20% | Поиск по API X, Exa |
| Количество подписчиков / влияние | 10 | X API |
| Близость по местоположению | 10% | Exa, LinkedIn |
| Взаимодействие с вашим контентом | 5% | X Взаимодействия с API |
Подход к поиску сигналов
# Step 1: Define target parameters
target_verticals = ["prediction markets", "AI tooling", "developer tools"]
target_roles = ["founder", "CEO", "CTO", "VP Engineering", "investor", "partner"]
target_locations = ["San Francisco", "New York", "London", "remote"]
# Step 2: Exa deep search for people
for vertical in target_verticals:
results = web_search_exa(
query=f"{vertical} {role} founder CEO",
category="company",
numResults=20
)
# Score each result
# Step 3: X API search for active voices
x_search = search_recent_tweets(
query="prediction markets OR AI tooling OR developer tools",
max_results=100
)
# Extract and score unique authors
Этап 2: Взаимный рейтинг
Для каждой оцененной цели анализируйте социальный граф пользователя, чтобы найти наиболее «теплый» путь.
Модель ранжирования
- Извлечь список подписчиков пользователя в X и его связи в LinkedIn
- Для каждой цели с высоким сигналом проверьте наличие общих связей
- Примените
social-graph-rankerмодель для оценки значения «моста» - Ранжируйте общих знакомых по:
| Фактор | Вес |
|---|---|
| Количество связей с целями | 40% — максимальный вес: чем больше связей, тем выше рейтинг |
| Текущая должность/компания сотрудника | 20% — лицо, принимающее решения, или рядовой сотрудник |
| Местонахождение знакомого | 15% — тот же город = проще познакомить |
| Соответствие отрасли | 15% — та же отрасль = естественное знакомство |
| Аккаунт Mutual в X / LinkedIn | 10% — возможность идентификации для установления контактов |
Каноническое правило:
Use social-graph-ranker when the user wants the graph math itself,
the bridge ranking as a standalone report, or explicit decay-model tuning.
В рамках данного навыка используйте ту же модель взвешенного моста:
B(m) = Σ_{t ∈ T} w(t) · λ^(d(m,t) - 1)
R(m) = B_ext(m) · (1 + β · engagement(m))
Интерпретация:
- Уровень 1: высокие
R(m)и прямые мостовые пути → запросы на «теплое» представление - Уровень 2: средний
R(m)и пути «моста» с одним переходом -> запросы с условным вступлением - Уровень 3: отсутствие подходящего посредника -> прямое обращение к незнакомому лиду с использованием той же записи о лиде
Формат результатов
If the user explicitly wants the ranking engine broken out, the math visualized, or the network scored outside the full lead workflow, run `social-graph-ranker` as a standalone pass first and feed the result back into this pipeline.
MUTUAL RANKING REPORT
=====================
#1 @mutual_handle (Score: 92)
Name: Jane Smith
Role: Partner @ Acme Ventures
Location: San Francisco
Connections to targets: 7
Connected to: @target1, @target2, @target3, @target4, @target5, @target6, @target7
Best intro path: Jane invested in Target1's company
#2 @mutual_handle2 (Score: 85)
...
Этап 3: Поиск «теплых» путей
Для каждой цели найти кратчайшую цепочку представления:
You ──[follows]──> Mutual A ──[invested in]──> Target Company
You ──[follows]──> Mutual B ──[co-founded with]──> Target Person
You ──[met at]──> Event ──[also attended]──> Target Person
Типы путей (в порядке убывания «теплоты»)
- Прямой взаимный — вы оба подписаны на одного и того же человека или знакомы с ним
- Связь через портфель — оба вложили средства в компанию целевого лица или консультируют её
- Коллега/выпускник — оба работали в одной компании или учились в одном учебном заведении
- Пересечение мероприятий — оба посещали одну и ту же конференцию/программу
- Взаимодействие с контентом — целевая компания взаимодействовала с контентом общего знакомого или наоборот
Этап 4: Расширение базы данных
Для каждого квалифицированного лида извлеките:
- Полное имя, текущую должность, название компании
- Размер компании, этап финансирования, последние новости
- Последние X постов (за последние 30 дней) — темы, тон, интересы
- Общие интересы с пользователем (общие подписки, похожий контент)
- Последние события в компании (запуск продукта, раунд финансирования, набор персонала)
Источники дополнительной информации
- Пример: данные о компании, новости, записи в блоге
- API X: последние твиты, биография, подписчики
- GitHub: вклад в проекты с открытым исходным кодом (для потенциальных клиентов из числа разработчиков)
- LinkedIn (через браузер): полный профиль, опыт работы, образование
Этап 5: Черновик обращения
Создайте персонализированное обращение для каждого потенциального клиента. Черновик должен соответствовать профилю стиля общения, полученному из источников, и целевому каналу.
Правила для каналов
Электронная почта
- Используйте для наиболее ценных холодных обращений, теплых представлений, обращения к инвесторам и запросов о партнерстве
- По умолчанию черновики следует создавать в Apple Mail / Mail.app, если доступно управление с локального рабочего стола
- Сначала создавайте черновики; не отправляйте письма автоматически, если пользователь явно не попросит об этом
- Тема письма должна быть простой и конкретной, а не изобретательной
- Используйте, если целевой пользователь активен в этой сети, если контекст взаимных связей на LinkedIn более силен или если уровень доверия к электронной почте низкий
- Если доступен, отдавайте предпочтение доступу через API
- В противном случае используйте элементы управления браузера для просмотра профилей, недавней активности и составления черновика сообщения
- Сообщение должно быть короче, чем в электронной почте, и избегайте фальшивой профессиональной теплоты
X
- Используйте для установления контактов с операторами, разработчиками или инвесторами, работающими в условиях высокого контекста, где важно поведение в публичных публикациях
- Предпочтительно использовать доступ к API для поиска, просмотра ленты и анализа взаимодействия
- При необходимости переключайтесь на управление через браузер
- Личные сообщения и публичные ответы должны быть гораздо лаконичнее, чем электронные письма, и должны содержать ссылки на реальные события из ленты целевого пользователя
Эвристика выбора канала
Выберите один основной канал в следующем порядке:
- неформальное знакомство по электронной почте
- прямое письмо
- личное сообщение в LinkedIn
- личное сообщение в X или ответ
Используйте многоканальный подход только в том случае, если для этого есть веская причина и частота обращений не будет восприниматься как спам.
Запрос на «теплое» знакомство (через общих знакомых)
Цель:
- одна чёткая просьба
- одна конкретная причина, по которой это представление имеет смысл
- короткий текст, который легко переслать, если понадобится
Избегайте:
- излишних объяснений о вашей компании
- нагромождение социальных доказательств
- тона, напоминающего шаблон для сбора средств
Прямой холодный обзор (для целевой аудитории)
Цель:
- начать с чего-то конкретного и свежего
- объяснить, почему это действительно подходит
- сделать одну простую просьбу
Избегайте:
- общих комплиментов
- перечисление всех своих достоинств
- общих просьб типа «хотелось бы пообщаться»
- натянутых риторических вопросов
Шаблон выполнения
Для каждой целевой аудитории создайте:
- рекомендуемый канал
- причину, по которой этот канал является лучшим
- черновик сообщения
- дополнительный черновик для последующих действий
- если в качестве канала выбран электронная почта и доступна программа Apple Mail, создайте черновик, а не просто отправляйте текст
Если доступен контроль над браузером:
- LinkedIn: изучите профиль адресата, его недавнюю активность и общий контекст, а затем составьте черновик или подготовьте сообщение
- X: проанализируйте последние публикации или ответы, а затем составьте черновик личного сообщения или текста публичного ответа
Если доступна автоматизация на рабочем столе:
- Apple Mail: создайте черновик письма с темой, текстом и адресатом
Не отправляйте сообщения автоматически без явного одобрения пользователя.
Антипаттерны
- общие шаблоны без персонализации
- длинные абзацы с описанием всей вашей компании
- несколько просьб в одном сообщении
- напускная фамильярность без конкретики
- массовые рассылки с заметными полями слияния
- одинаковый текст, повторно используемый в электронной почте, LinkedIn и X
- беспорядочный текст, адаптированный под платформу, вместо подлинного голоса автора
Настройка
Пользователи должны установить следующие переменные среды:
# Required
export X_BEARER_TOKEN="..."
export X_ACCESS_TOKEN="..."
export X_ACCESS_TOKEN_SECRET="..."
export X_CONSUMER_KEY="..."
export X_CONSUMER_SECRET="..."
export EXA_API_KEY="..."
# Optional
export LINKEDIN_COOKIE="..." # For browser-use LinkedIn access
export APOLLO_API_KEY="..." # For Apollo enrichment
Агенты
Этот навык включает специализированные агенты в agents/ подкаталоге:
- signal-scorer — выполняет поиск и ранжирует потенциальных клиентов по сигналам релевантности
- mutual-mapper — сопоставляет связи в социальном графе и находит «теплые» пути
- enrichment-agent — извлекает подробные данные о профиле и компании
- outreach-drafter — создаёт персонализированные сообщения
Пример использования
User: find me the top 20 people in prediction markets I should reach out to
Agent workflow:
1. signal-scorer searches Exa and X for prediction market leaders
2. mutual-mapper checks user's X graph for shared connections
3. enrichment-agent pulls company data and recent activity
4. outreach-drafter generates personalized messages for top ranked leads
Output: Ranked list with warm paths, voice profile summary, and channel-specific outreach drafts or drafts-in-app
Связанные навыки
brand-voiceдля канонического определения тонаconnections-optimizerдля предварительной проверки, сокращения и расширения сети контактов перед началом работы с потенциальными клиентами
---
name: lead-intelligence
description: Finds, scores, and reaches high-value contacts through social graph analysis and warm path discovery, generating personalized outreach drafts for email, LinkedIn, and X.
---
# Lead Intelligence
Agent-powered lead intelligence pipeline that finds, scores, and reaches high-value contacts through social graph analysis and warm path discovery.
## When to Activate
- User wants to find leads or prospects in a specific industry
- Building an outreach list for partnerships, sales, or fundraising
- Researching who to reach out to and the best path to reach them
- User says "find leads", "outreach list", "who should I reach out to", "warm intros"
- Needs to score or rank a list of contacts by relevance
- Wants to map mutual connections to find warm introduction paths
## Tool Requirements
### Required
- **Exa MCP** — Deep web search for people, companies, and signals (`web_search_exa`)
- **X API** — Follower/following graph, mutual analysis, recent activity (`X_BEARER_TOKEN`, plus write-context credentials such as `X_CONSUMER_KEY`, `X_CONSUMER_SECRET`, `X_ACCESS_TOKEN`, `X_ACCESS_TOKEN_SECRET`)
### Optional (enhance results)
- **LinkedIn** — Direct API if available, otherwise browser control for search, profile inspection, and drafting
- **Apollo/Clay API** — For enrichment cross-reference if user has access
- **GitHub MCP** — For developer-centric lead qualification
- **Apple Mail / Mail.app** — Draft cold or warm email without sending automatically
- **Browser control** — For LinkedIn and X when API coverage is missing or constrained
## Pipeline Overview
```
┌─────────────┐ ┌──────────────┐ ┌─────────────────┐ ┌──────────────┐ ┌─────────────────┐
│ 1. Signal │────>│ 2. Mutual │────>│ 3. Warm Path │────>│ 4. Enrich │────>│ 5. Outreach │
│ Scoring │ │ Ranking │ │ Discovery │ │ │ │ Draft │
└─────────────┘ └──────────────┘ └─────────────────┘ └──────────────┘ └─────────────────┘
```
## Voice Before Outreach
Do not draft outbound from generic sales copy.
Run `brand-voice` first whenever the user's voice matters. Reuse its `VOICE PROFILE` instead of re-deriving style ad hoc inside this skill.
If live X access is available, pull recent original posts before drafting. If not, use supplied examples or the best repo/site material available.
## Stage 1: Signal Scoring
Search for high-signal people in target verticals. Assign a weight to each based on:
| Signal | Weight | Source |
|--------|--------|--------|
| Role/title alignment | 30% | Exa, LinkedIn |
| Industry match | 25% | Exa company search |
| Recent activity on topic | 20% | X API search, Exa |
| Follower count / influence | 10% | X API |
| Location proximity | 10% | Exa, LinkedIn |
| Engagement with your content | 5% | X API interactions |
### Signal Search Approach
```python
# Step 1: Define target parameters
target_verticals = ["prediction markets", "AI tooling", "developer tools"]
target_roles = ["founder", "CEO", "CTO", "VP Engineering", "investor", "partner"]
target_locations = ["San Francisco", "New York", "London", "remote"]
# Step 2: Exa deep search for people
for vertical in target_verticals:
results = web_search_exa(
query=f"{vertical} {role} founder CEO",
category="company",
numResults=20
)
# Score each result
# Step 3: X API search for active voices
x_search = search_recent_tweets(
query="prediction markets OR AI tooling OR developer tools",
max_results=100
)
# Extract and score unique authors
```
## Stage 2: Mutual Ranking
For each scored target, analyze the user's social graph to find the warmest path.
### Ranking Model
1. Pull user's X following list and LinkedIn connections
2. For each high-signal target, check for shared connections
3. Apply the `social-graph-ranker` model to score bridge value
4. Rank mutuals by:
| Factor | Weight |
|--------|--------|
| Number of connections to targets | 40% — highest weight, most connections = highest rank |
| Mutual's current role/company | 20% — decision maker vs individual contributor |
| Mutual's location | 15% — same city = easier intro |
| Industry alignment | 15% — same vertical = natural intro |
| Mutual's X handle / LinkedIn | 10% — identifiability for outreach |
Canonical rule:
```text
Use social-graph-ranker when the user wants the graph math itself,
the bridge ranking as a standalone report, or explicit decay-model tuning.
```
Inside this skill, use the same weighted bridge model:
```text
B(m) = Σ_{t ∈ T} w(t) · λ^(d(m,t) - 1)
R(m) = B_ext(m) · (1 + β · engagement(m))
```
Interpretation:
- Tier 1: high `R(m)` and direct bridge paths -> warm intro asks
- Tier 2: medium `R(m)` and one-hop bridge paths -> conditional intro asks
- Tier 3: no viable bridge -> direct cold outreach using the same lead record
### Output Format
```
If the user explicitly wants the ranking engine broken out, the math visualized, or the network scored outside the full lead workflow, run `social-graph-ranker` as a standalone pass first and feed the result back into this pipeline.
MUTUAL RANKING REPORT
=====================
#1 @mutual_handle (Score: 92)
Name: Jane Smith
Role: Partner @ Acme Ventures
Location: San Francisco
Connections to targets: 7
Connected to: @target1, @target2, @target3, @target4, @target5, @target6, @target7
Best intro path: Jane invested in Target1's company
#2 @mutual_handle2 (Score: 85)
...
```
## Stage 3: Warm Path Discovery
For each target, find the shortest introduction chain:
```
You ──[follows]──> Mutual A ──[invested in]──> Target Company
You ──[follows]──> Mutual B ──[co-founded with]──> Target Person
You ──[met at]──> Event ──[also attended]──> Target Person
```
### Path Types (ordered by warmth)
1. **Direct mutual** — You both follow/know the same person
2. **Portfolio connection** — Mutual invested in or advises target's company
3. **Co-worker/alumni** — Mutual worked at same company or attended same school
4. **Event overlap** — Both attended same conference/program
5. **Content engagement** — Target engaged with mutual's content or vice versa
## Stage 4: Enrichment
For each qualified lead, pull:
- Full name, current title, company
- Company size, funding stage, recent news
- Recent X posts (last 30 days) — topics, tone, interests
- Mutual interests with user (shared follows, similar content)
- Recent company events (product launch, funding round, hiring)
### Enrichment Sources
- Exa: company data, news, blog posts
- X API: recent tweets, bio, followers
- GitHub: open source contributions (for developer-centric leads)
- LinkedIn (via browser-use): full profile, experience, education
## Stage 5: Outreach Draft
Generate personalized outreach for each lead. The draft should match the source-derived voice profile and the target channel.
### Channel Rules
#### Email
- Use for the highest-value cold outreach, warm intros, investor outreach, and partnership asks
- Default to drafting in Apple Mail / Mail.app when local desktop control is available
- Create drafts first, do not send automatically unless the user explicitly asks
- Subject line should be plain and specific, not clever
#### LinkedIn
- Use when the target is active there, when mutual graph context is stronger on LinkedIn, or when email confidence is low
- Prefer API access if available
- Otherwise use browser control to inspect profiles, recent activity, and draft the message
- Keep it shorter than email and avoid fake professional warmth
#### X
- Use for high-context operator, builder, or investor outreach where public posting behavior matters
- Prefer API access for search, timeline, and engagement analysis
- Fall back to browser control when needed
- DMs and public replies should be much tighter than email and should reference something real from the target's timeline
#### Channel Selection Heuristic
Pick one primary channel in this order:
1. warm intro by email
2. direct email
3. LinkedIn DM
4. X DM or reply
Use multi-channel only when there is a strong reason and the cadence will not feel spammy.
### Warm Intro Request (to mutual)
Goal:
- one clear ask
- one concrete reason this intro makes sense
- easy-to-forward blurb if needed
Avoid:
- overexplaining your company
- social-proof stacking
- sounding like a fundraiser template
### Direct Cold Outreach (to target)
Goal:
- open from something specific and recent
- explain why the fit is real
- make one low-friction ask
Avoid:
- generic admiration
- feature dumping
- broad asks like "would love to connect"
- forced rhetorical questions
### Execution Pattern
For each target, produce:
1. the recommended channel
2. the reason that channel is best
3. the message draft
4. optional follow-up draft
5. if email is the chosen channel and Apple Mail is available, create a draft instead of only returning text
If browser control is available:
- LinkedIn: inspect target profile, recent activity, and mutual context, then draft or prepare the message
- X: inspect recent posts or replies, then draft DM or public reply language
If desktop automation is available:
- Apple Mail: create draft email with subject, body, and recipient
Do not send messages automatically without explicit user approval.
### Anti-Patterns
- generic templates with no personalization
- long paragraphs explaining your whole company
- multiple asks in one message
- fake familiarity without specifics
- bulk-sent messages with visible merge fields
- identical copy reused for email, LinkedIn, and X
- platform-shaped slop instead of the author's actual voice
## Configuration
Users should set these environment variables:
```bash
# Required
export X_BEARER_TOKEN="..."
export X_ACCESS_TOKEN="..."
export X_ACCESS_TOKEN_SECRET="..."
export X_CONSUMER_KEY="..."
export X_CONSUMER_SECRET="..."
export EXA_API_KEY="..."
# Optional
export LINKEDIN_COOKIE="..." # For browser-use LinkedIn access
export APOLLO_API_KEY="..." # For Apollo enrichment
```
## Agents
This skill includes specialized agents in the `agents/` subdirectory:
- **signal-scorer** — Searches and ranks prospects by relevance signals
- **mutual-mapper** — Maps social graph connections and finds warm paths
- **enrichment-agent** — Pulls detailed profile and company data
- **outreach-drafter** — Generates personalized messages
## Example Usage
```
User: find me the top 20 people in prediction markets I should reach out to
Agent workflow:
1. signal-scorer searches Exa and X for prediction market leaders
2. mutual-mapper checks user's X graph for shared connections
3. enrichment-agent pulls company data and recent activity
4. outreach-drafter generates personalized messages for top ranked leads
Output: Ranked list with warm paths, voice profile summary, and channel-specific outreach drafts or drafts-in-app
```
## Related Skills
- `brand-voice` for canonical voice capture
- `connections-optimizer` for review-first network pruning and expansion before outreach
Все файлы
5 файловУстановить lead-intelligence
Скачайте файлы навыков и распакуйте их в каталог .claude/skills/.
Скачать ZIPКлонируйте репозиторий и скопируйте файлы навыка в свой проект.
git clone https://github.com/affaan-m/ECC/tree/main/skills/lead-intelligence # Copy SKILL.md to your .claude/skills/ directory
Копировать





Дом
