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 — 自動送信せずに、コールドメールやウォームメールの下書きを作成
- ブラウザ操作 — APIの対応範囲が不足している、または制限されている場合のLinkedInおよびX用
パイプラインの概要
┌─────────────┐ ┌──────────────┐ ┌─────────────────┐ ┌──────────────┐ ┌─────────────────┐
│ 1. Signal │────>│ 2. Mutual │────>│ 3. Warm Path │────>│ 4. Enrich │────>│ 5. Outreach │
│ Scoring │ │ Ranking │ │ Discovery │ │ │ │ Draft │
└─────────────┘ └──────────────┘ └─────────────────┘ └──────────────┘ └─────────────────┘
アウトリーチ前の音声確認
汎用的な営業文面からアウトバウンドメールの下書きを作成しないでください。
実行 brand-voice ユーザーの声が重要な場合は、常にこれを最初に実行してください。このスキル内でその VOICE PROFILE を再利用し、このスキル内でその都度スタイルを新たに作り直さないでください。
ライブXへのアクセスが可能な場合は、下書きを作成する前に最近のオリジナル投稿を取得してください。不可能な場合は、提供された例、または入手可能な最良のリポジトリ/サイトの資料を使用してください。
ステージ 1: シグナルスコアリング
対象分野においてシグナルの高い人物を検索する。以下に基づいて、各人物に重みを割り当てる:
| シグナル | 重み | 情報源 |
|---|---|---|
| 役職・肩書きの一致度 | 30% | Exa、LinkedIn |
| 業界の適合度 | 25% | Exaでの企業検索 |
| トピックに関する最近のアクティビティ | 20% | X API検索、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% — 同じ業種 = 自然な紹介 |
| 相互の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)およびワンホップのブリッジ経路 → 条件付き紹介の依頼 - Tier 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日間) — トピック、トーン、関心事
- ユーザーとの共通の関心事(フォローしているアカウントが重なる、類似したコンテンツ)
- 最近の企業動向(製品リリース、資金調達ラウンド、採用情報)
情報充実化のソース
- 例:企業データ、ニュース、ブログ記事
- X API:最近のツイート、プロフィール、フォロワー
- GitHub:オープンソースへの貢献(開発者中心のリード向け)
- LinkedIn(ブラウザ利用情報経由):プロフィール詳細、職歴、学歴
ステージ5:アウトリーチ草案
各リードごとにパーソナライズされたアウトリーチ案を作成します。草案は、情報源から導き出された声のプロファイルおよび対象チャネルに合致している必要があります。
チャネルごとのルール
メール
- 最も価値の高いコールドアウトリーチ、ウォームな紹介、投資家へのアプローチ、およびパートナーシップの打診に使用します
- ローカルのデスクトップ操作が可能な場合は、Apple Mail / Mail.appでの下書き作成をデフォルトとする
- まず下書きを作成し、ユーザーから明示的な指示がない限り、自動的に送信しない
- 件名は、凝った表現ではなく、簡潔かつ具体的なものにする
- 対象者がLinkedInでアクティブである場合、LinkedIn上での相互のつながりがより強固である場合、またはメールでのアプローチに確信が持てない場合に利用してください
- 利用可能な場合は、API アクセスを優先する
- それが不可能な場合は、ブラウザ操作でプロフィールや最近のアクティビティを確認し、メッセージの下書きを作成する
- メールよりも短くし、不自然な親しげな口調は避ける
X
- 公開投稿の行動が重要となる、ハイコンテキストなオペレーター、ビルダー、または投資家へのアプローチに使用してください
- 検索、タイムライン、エンゲージメント分析にはAPIアクセスを優先する
- 必要に応じてブラウザ操作に切り替えてください
- DMや公開返信はメールよりもはるかに簡潔にし、対象者のタイムラインにある具体的な内容に言及すべき
チャネル選定の指針
以下の順序で、主要なチャネルを1つ選択してください:
- メールによる親しみやすい導入
- 直接メール
- LinkedInのDM
- XのDMまたは返信
マルチチャネルを活用するのは、明確な理由があり、送信頻度がスパムのように感じられない場合に限ってください。
親しい人への紹介依頼(共通の知人を通じて)
目標:
- 明確な依頼を1つ
- この紹介が妥当である具体的な理由を1つ
- 必要に応じて転送しやすい紹介文
避けるべきこと:
- 自社について説明しすぎること
- 社会的証明の羅列
- 資金調達用のテンプレートのような印象を与えること
ターゲットへのダイレクトなコールドアプローチ
目標:
- 具体的かつ最近の話題から切り出す
- なぜ相性が良いのかを説明する
- 負担の少ない依頼を1つ行う
避けるべきこと:
- ありきたりな称賛
- 特徴の羅列
- 「ぜひつながりたいです」といった漠然とした依頼
- 不自然な修辞的な質問
実行パターン
対象ごとに、以下を作成する:
- 推奨されるチャネル
- そのチャネルが最適である理由
- メッセージの草案
- 任意のフォローアップ用下書き
- メールが選択されたチャネルであり、Apple Mailが利用可能な場合は、単なるテキストの返送ではなく、下書きを作成してください
ブラウザ操作が可能な場合:
- LinkedIn:対象のプロフィール、最近の活動、相互の関係を精査した上で、メッセージの下書きを作成または準備する
- X:最近の投稿や返信を確認し、DMまたは公開返信の文面を起草する
デスクトップ自動化が利用可能な場合:
- Apple Mail:件名、本文、受信者を指定してメールの下書きを作成する
ユーザーの明示的な承認がない限り、メッセージを自動的に送信しないでください。
アンチパターン
- パーソナライズされていない汎用テンプレート
- 会社全体を説明する長文の段落
- 1通のメッセージに複数の依頼を盛り込む
- 具体的な内容のない、不自然な親しげな口調
- マージフィールドがそのまま表示された一斉送信メッセージ
- メール、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
コピー





家
