Files
everything-claude-code/skills/lead-intelligence/SKILL.md
2026-04-01 19:41:03 -07:00

12 KiB
Raw Blame History

name, description, origin
name description origin
lead-intelligence AI-native lead intelligence and outreach pipeline. Replaces Apollo, Clay, and ZoomInfo with agent-powered signal scoring, mutual ranking, warm path discovery, source-derived voice modeling, and channel-specific outreach across email, LinkedIn, and X. Use when the user wants to find, qualify, and reach high-value contacts. ECC

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

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

Algorithm

  1. Pull user's X following list and LinkedIn connections
  2. For each high-signal target, check for shared connections
  3. 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

Weighted Bridge Ranking

Treat this as the canonical network-ranking stage for lead intelligence. Do not run a separate graph skill when this stage is enough.

Given:

  • T = target leads
  • M = your mutuals / existing connections
  • d(m, t) = shortest hop distance from mutual m to target t
  • w(t) = target weight from signal scoring

Compute the base bridge score for each mutual:

B(m) = Σ_{t ∈ T} w(t) · λ^(d(m,t) - 1)

Where:

  • λ is the decay factor, usually 0.5
  • a direct connection contributes full value
  • each extra hop halves the contribution

For second-order reach, expand one level into the mutual's own network:

B_ext(m) = B(m) + α · Σ_{m' ∈ N(m) \\ M} Σ_{t ∈ T} w(t) · λ^(d(m',t))

Where:

  • N(m) \\ M is the set of people the mutual knows that you do not
  • α is the second-order discount, usually 0.3

Then rank by response-adjusted bridge value:

R(m) = B_ext(m) · (1 + β · engagement(m))

Where:

  • engagement(m) is a normalized responsiveness score
  • β is the engagement bonus, usually 0.2

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

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:

# 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
  • brand-voice for canonical voice capture
  • connections-optimizer for review-first network pruning and expansion before outreach