AI SkillDetect MoversSalesby Gooseworks

Champion Move Outreach — the warmest signal in B2B

Runs on
ClaudeClaudeChatGPTChatGPTOpenClawOpenClaw

Outbound to champions and buyers when they change companies

  • Tracks past buyers, champions, power users, and lost-deal contacts for job changes
  • Qualifies the new company against your ICP
  • Tiers contacts by warmth and time-since-move
  • Drafts personalized reconnect sequences leveraging existing relationships
  • Routes contacts to email or LinkedIn based on what's available

Who this is for

What it does

Reactivate past customers at new accounts

When a buyer who bought from you moves to a new company, the conversion rate is 3-5x higher than cold outbound.

Power-user-driven expansion

Track power users so when they move teams you can re-introduce the product without a sales cycle.

Quarterly champion check

Run periodically to catch every job change in the optimal first-30-days outreach window.

How it works

1

Take a list of past buyers, champions, and power users as input

2

Detect job changes via LinkedIn, Apollo, or web search

3

Research and qualify the new company against ICP

4

Find new email addresses and assign outreach approach

5

Draft a 3-touch sequence per contact with relationship anchors

Metrics this improves

Meeting Rate
Significantly higher meeting rate when reconnecting with someone who's used your product before
Sales
Reply Rate
3-5x higher reply rate vs cold outbound — these contacts already trust you
Sales

Works with

⚖ Compare side-by-side
Compare with 3 similar skills
In the same department: Sales (32 skills total)
Compare →

Similar skills

Auto-suggested by attribute overlap. Side-by-side comparison shows what differs.

Compare all 4
Sorted by attribute overlap × differentiation. Champion Move Outreach shares 21+ attributes with each.

Champion Move Outreach

Tracks known buyers, champions, and power users for job changes. When someone who already knows your product moves to a new company, that's the highest-conversion outbound signal in B2B — they already trust you, they're in a new role trying to make an impact, and they have firsthand experience with what your product delivers.

Why this is the #1 signal: Every other signal (funding, hiring, leadership change) targets strangers. This targets people who already know, like, and trust your product. Conversion rates on champion-move outreach are 3-5x higher than cold outreach because:

  • They don't need to be educated on what you do
  • They have a positive experience to anchor on
  • They want quick wins at the new company (bringing in a tool they trust IS a quick win)
  • They can internally champion the deal because they have firsthand results to cite

When to Auto-Load

Load this composite when:

  • User says "track my champions", "check for job changes", "who moved from our customer accounts", "champion tracking"
  • User has a list of past buyers/users and wants to know if anyone changed jobs
  • An upstream workflow (TAM Pulse) triggers a champion change check

Step 0: Configuration (One-Time Setup)

On first run for a client/user, collect and store these preferences. Skip on subsequent runs.

People to Track

QuestionPurposeStored As
Where does your list of people to track come from?Defines the input sourcepeople_source
What categories of people are you tracking?Determines outreach tone per persontracked_categories

People source options:

  • CRM export (Salesforce, HubSpot) — pull closed-won contacts, active users, power users
  • CSV file — manually curated list
  • Supabase people table — filter by lead_status = 'customer' or similar
  • Manual list — names + LinkedIn URLs

Tracked categories:

CategoryWho They AreWhy They MatterStored As
Past buyersSigned the contract at their previous companyCan sign again. Know the ROI. Can articulate value to new leadership.past_buyers
Past championsAdvocated for your product internally, drove adoptionWill champion again. Often have stronger conviction than the original buyer.past_champions
Power usersUsed your product daily, know it deeplyCan demonstrate value hands-on. Often become the internal expert at the new company.power_users
Lost deal contactsEvaluated your product but chose a competitor or no decisionWeaker signal but still valid — they know you exist. New company = fresh start.lost_deal_contacts

ICP Definition (for qualifying the new company)

QuestionPurposeStored As
What industries do you sell to?Filter out non-ICP companiestarget_industries
What company sizes? (employee count ranges)Filter out too-small or too-largetarget_company_size
What geographies?Filter if relevanttarget_geographies
Any disqualifiers? (e.g., government, non-profit, specific verticals)Hard no'sdisqualifiers
What's the minimum viable deal?Don't chase companies too small to payminimum_deal_size

Signal Detection Config

QuestionOptionsStored As
How should we detect job changes?LinkedIn profile monitoring / Apollo job change data / Web search / Manual checkdetection_tool
How often should we check?Weekly / Biweekly / Monthlycheck_frequency

Outreach Config

QuestionOptionsStored As
Where do you want outreach sent?Smartlead / Instantly / Outreach.io / CSV exportoutreach_tool
Email or multi-channel?Email only / Email + LinkedInoutreach_channels

Your Company Context

QuestionPurposeStored As
What does your company do? (1-2 sentences)New company research contextcompany_description
What results did customers typically see?Proof points for outreachcustomer_results
Any specific results from the tracked person's previous company?Strongest possible proofspecific_results

Store config in: clients/<client-name>/config/signal-outreach.json or equivalent.


Step 1: Detect Job Changes

Purpose: For each person in the tracking list, determine if they've moved to a new company.

Input Contract

tracked_people: [
  {
    full_name: string             # Required
    linkedin_url: string          # Strongly recommended (most reliable for matching)
    email: string | null          # Previous email (will be outdated after move)
    last_known_company: string    # The company they were at when you knew them
    last_known_title: string      # Their title when you knew them
    category: "past_buyer" | "past_champion" | "power_user" | "lost_deal_contact"
    relationship_context: string | null  # e.g. "Signed $50K deal in 2025", "Led implementation"
  }
]

Process

For each person, use the configured detection_tool:

  1. Check current position against last_known_company:

    • LinkedIn: Visit profile (or use scraping tool) → compare current company to last_known_company
    • Apollo: People search by name + LinkedIn URL → check current employer
    • Web search: "{full_name}" AND ("{last_known_company}" OR "joined" OR "new role") — look for announcements
    • Any other tool: Must return the same output contract
  2. For each person, determine:

    • Are they still at the same company? → No signal, skip.
    • Have they moved? → Signal detected. Capture new company + new title.
    • Has their profile gone dark (no updates, no activity)? → Flag for manual check.
  3. For each mover, extract:

    • New company name
    • New title
    • Approximate start date at new company
    • New company domain (for research in Step 2)
    • Was this a promotion (higher title) or lateral move?

Output Contract

movers: [
  {
    person: {
      full_name: string
      linkedin_url: string
      category: string                # "past_buyer", "past_champion", etc.
      relationship_context: string
      previous_company: string
      previous_title: string
    }
    move: {
      new_company: string
      new_company_domain: string
      new_title: string
      start_date: string              # ISO date or approximate
      days_in_new_role: integer
      is_promotion: boolean           # Higher title than before?
    }
  }
]
no_change: [
  { full_name: string, still_at: string }
]
unable_to_verify: [
  { full_name: string, reason: string }  # Profile private, no data, etc.
]

Human Checkpoint

## Job Change Detection Results

Tracked: X people
Moved: Y people
No change: Z people
Unable to verify: W people

### People Who Moved
| Name | Category | Was At | Now At | New Title | Days In |
|------|----------|--------|--------|-----------|---------|
| Jane Doe | Past buyer | Acme Corp | NewCo Inc | VP Sales | 45 days |
| Bob Lee | Power user | Beta LLC | StartupX | Sales Manager | 12 days |
| ...  | ...      | ...    | ...    | ...       | ...     |

### Unable to Verify
| Name | Reason |
|------|--------|
| Sam Chen | LinkedIn profile set to private |

Proceed to research their new companies? (Y/n)

Step 2: Research New Company & Qualify Against ICP

Purpose: For each mover, research their new company and determine if it's a fit for your product. This is the critical gate — just because someone you know moved doesn't mean their new company is a prospect.

Input Contract

movers: [...]                         # From Step 1 output
icp_criteria: {
  target_industries: string[]
  target_company_size: string         # e.g. "50-500 employees"
  target_geographies: string[]
  disqualifiers: string[]
  minimum_deal_size: string
}
your_company: {
  description: string
}

Process

For each mover's new company:

  1. Research the new company using web search (tool-agnostic — always available):

    • What does the company do? (1-2 sentence summary)
    • What industry are they in?
    • Approximate company size (employees)
    • Location/HQ
    • Funding stage (if applicable)
    • Any recent news (funding, product launches, leadership changes)
  2. Qualify against ICP:

    CriterionCheckPass/Fail
    IndustryIs new_company.industry in target_industries?Hard filter
    SizeIs employee count within target_company_size range?Hard filter
    GeographyIs location in target_geographies? (Skip if no geo filter)Soft filter
    DisqualifiersDoes the company match any disqualifiers?Hard filter
    Deal viabilityCould this company afford minimum_deal_size?Judgment call
  3. Assess the person's position at the new company:

    FactorWhat to CheckWhy It Matters
    Authority levelIs their new title at or above their old title?Higher = more budget authority
    Department fitAre they in a department that buys/uses your product?Must be in the right department
    Influence trajectoryPromoted into a leadership role?More influence = stronger champion
    Seniority mismatchWere they a user before, now they're a VP?Adjust outreach — they're a buyer now, not a user
  4. Determine outreach approach based on category + new position:

    Category at Old CompanyNew Position LevelApproach
    Past buyer → Buyer-level titleRe-sell: "You bought us before, bring us to [new company]"
    Past buyer → Higher titleExecutive re-sell: "Now that you run [department], [product] scales with you"
    Past champion → Buyer-level titleUpgrade: "You championed us internally — now you own the budget"
    Past champion → Same levelLateral champion: "Bring what worked at [old company] to [new company]"
    Power user → Any levelBottom-up: "You know the product inside out — want to bring it to your new team?"
    Lost deal contact → AnyFresh start: "Different company, different needs. Worth a second look?"

Output Contract

qualified_movers: [
  {
    person: {
      full_name: string
      linkedin_url: string
      category: string
      relationship_context: string
      previous_company: string
      previous_title: string
    }
    move: {
      new_company: string
      new_company_domain: string
      new_title: string
      start_date: string
      days_in_new_role: integer
      is_promotion: boolean
    }
    new_company_research: {
      description: string             # What the company does
      industry: string
      employee_count: string          # Approximate
      location: string
      funding_stage: string | null
      recent_news: string[]           # 2-3 relevant items
    }
    qualification: {
      icp_fit: "strong" | "moderate" | "weak"
      icp_reasoning: string           # Why it's a fit or not
      authority_level: "buyer" | "influencer" | "user"
      outreach_approach: string       # "re-sell", "upgrade", "lateral champion", "bottom-up", "fresh start"
    }
    priority_tier: "tier_1" | "tier_2" | "tier_3"
  }
]
disqualified_movers: [
  {
    full_name: string
    new_company: string
    disqualification_reason: string   # "Industry not in ICP", "Company too small", etc.
  }
]

Tier Assignment

  • Tier 1 (Act Today): Past buyer or champion + strong ICP fit + <30 days in new role. This is the warmest possible lead.
  • Tier 2 (Act This Week): Past buyer/champion + moderate ICP fit, OR power user + strong ICP fit, OR any category + strong fit but 30-60 days in.
  • Tier 3 (Queue): Lost deal contacts + strong fit, OR any category with moderate fit and 60+ days in.
  • Disqualify: New company doesn't pass ICP hard filters.

Human Checkpoint

## New Company Research & Qualification

### Tier 1 — Act Today (X movers)
| Name | Category | New Company | ICP Fit | Approach | Days In |
|------|----------|-------------|---------|----------|---------|
| Jane Doe | Past buyer | NewCo Inc (Series B, 120 employees, SaaS) | Strong | Re-sell | 45 days |

  Research: NewCo Inc is a logistics SaaS platform. 120 employees, Series B,
  HQ in Austin. Recently launched an enterprise tier. Strong fit — same
  industry, right size, Jane has budget authority as VP Sales.

### Tier 2 — Act This Week (X movers)
| ... |

### Disqualified (X movers)
| Name | New Company | Reason |
|------|-------------|--------|
| Sam Lee | TinyStartup | 8 employees, pre-revenue — below minimum deal size |

Approve before we draft outreach?

Step 3: Find New Contact Details

Purpose: Get the mover's new email address and any additional context at the new company.

Input Contract

qualified_movers: [...]               # From Step 2 output
contact_tool: string                  # From config

Process

  1. Find new work email — their old email is outdated. Use the configured contact_tool:

    • Apollo: Search by name + new company domain → email
    • Clearbit: Prospector lookup by name + domain
    • Web search: "{full_name}" AND "@{new_company_domain}" or company contact patterns
    • LinkedIn: InMail or connection request (flag for manual if no email found)
  2. Verify the email is at the new company — don't accidentally email their old address.

  3. Flag contacts without email — these should be routed to LinkedIn outreach instead.

Output Contract

contactable_movers: [
  {
    ...qualified_mover_fields,
    new_email: string
    email_confidence: "verified" | "likely" | "pattern_guess"
    preferred_channel: "email" | "linkedin" | "both"
  }
]
email_not_found: [
  {
    ...qualified_mover_fields,
    linkedin_url: string              # Fall back to LinkedIn
    preferred_channel: "linkedin"
  }
]

Human Checkpoint

## Contact Details

| Name | New Company | Email | Confidence | Channel |
|------|-------------|-------|------------|---------|
| Jane Doe | NewCo Inc | [email protected] | Verified | Email |
| Bob Lee | StartupX | — | Not found | LinkedIn |

X contacts with email, Y LinkedIn-only

Approve before we draft outreach?

Step 4: Draft Personalized Outreach

Purpose: Draft outreach that leverages the existing relationship. This is NOT cold email — these people know you. The tone, length, and approach are fundamentally different from the other signal composites. Pure LLM reasoning — inherently tool-agnostic.

Input Contract

contactable_movers: [...]             # From Step 3 output
your_company: {
  description: string
  customer_results: string[]          # General results customers see
  specific_results: {                 # Results at their specific previous company (if available)
    [company_name]: string            # e.g. "Acme Corp: reduced call handling time by 40%"
  }
}
sequence_config: {
  touches: integer                    # Default: 3
  timing: integer[]                   # Default: [1, 7, 14] (more spaced — less urgency, warmer relationship)
  tone: string                       # Default: "casual-direct" (you know this person)
  cta: string                        # Default: "quick catch-up call"
}

Process

  1. Tone is fundamentally different from cold outreach:

    Cold OutreachChampion Move Outreach
    Formal introductionCasual reconnection
    Prove you're legitimateThey already trust you
    Signal-Proof-Ask frameworkRelationship-Context-Ask framework
    "I noticed...""Hey — congrats on the move!"
    50-90 words Touch 1Can be shorter — no education needed
    Professional-sharp toneCasual-direct tone (you know each other)
  2. Build the email around the relationship, not the product:

    ElementSourceHow to Use
    Relationship anchorrelationship_context"You were one of our first champions at [old company]"
    Their resultsspecific_results or customer_results"The 40% improvement your team saw at [old company]..."
    New role congratulationsmove.new_title + move.new_company"Congrats on VP Sales at NewCo"
    New company relevancenew_company_research"NewCo's push into enterprise makes this a natural fit"
    Category-specific anglecategory + qualification.outreach_approachSee table below
  3. Email angle by outreach approach:

    ApproachTouch 1 Template ShapeExample
    Re-sellCongrats + "remember the results?" + "bring it to [new company]""Hey Jane — congrats on the VP Sales gig at NewCo. You saw what [product] did at Acme (40% faster call handling). NewCo's sales team could see the same lift. Worth a quick catch-up?"
    UpgradeCongrats + "you championed this" + "now you own the budget""Congrats on the promotion. You pushed for [product] at [old company] — now you actually control the budget. Want to talk about bringing it to NewCo?"
    Lateral championCongrats + "you know what works" + "replicate it""Hey — saw you landed at NewCo. You know firsthand what [product] does. If the team there has the same [pain], happy to help you set it up."
    Bottom-upCongrats + "you were a power user" + "your new team will love it""Congrats on the move. You were one of our best users at [old company]. If you want [product] on your desk at NewCo, I can get you set up quickly."
    Fresh startCongrats + acknowledge the past + "different situation, worth a second look""Hey — congrats on the move to NewCo. I know the timing wasn't right when we spoke at [old company]. Different company, different needs — open to a fresh conversation?"
  4. Sequence design (warmer, more spaced):

    TouchDayPurposeLengthNotes
    Touch 11Reconnect + congrats + soft ask40-70 wordsShorter than cold — they know you
    Touch 27Share a relevant result or update30-50 wordsNew feature, new customer in their industry, case study
    Touch 314Low-pressure check-in20-30 words"No rush — whenever the timing is right"

    Key difference from cold sequences: More spacing between touches (they're not a stranger you'll lose if you wait), warmer tone, and Touch 3 is a check-in not a breakup.

  5. Follow email-drafting hard rules with one exception: Rule 6 ("never lie about how you found them") is flipped — you SHOULD reference exactly how you know them. That's the whole point.

Output Contract

email_sequences: [
  {
    contact: {
      full_name: string
      new_email: string
      new_title: string
      new_company: string
      category: string
      relationship_context: string
      outreach_approach: string
    }
    sequence: [
      {
        touch_number: integer
        send_day: integer
        subject: string
        body: string
        personalization_elements: {
          relationship_anchor: string     # How the relationship was referenced
          their_results: string | null    # Specific results referenced
          new_role_reference: string      # How the new role was acknowledged
          new_company_relevance: string   # Why new company is a fit
        }
        word_count: integer
      }
    ]
    channel: "email" | "linkedin"
  }
]

Human Checkpoint

Present samples covering different outreach approaches:

## Sample Outreach for Review

### Jane Doe — VP Sales @ NewCo Inc
Category: Past buyer | Approach: Re-sell | 45 days in new role

**Touch 1 — Day 1**
Subject: Congrats on NewCo — quick thought
> Hey Jane — congrats on the VP Sales move to NewCo. Your team at Acme
> saw a 40% improvement in call handling after going live with [product].
> NewCo's enterprise push could see the same lift.
>
> Worth a 15-minute catch-up?

**Touch 2 — Day 7**
Subject: NewCo + [product] — a few ideas
> Quick follow-up — we just launched [new feature] that would've
> been perfect for the workflow your team ran at Acme. Happy to
> walk you through it.

**Touch 3 — Day 14**
Subject: Whenever the timing is right
> No rush on this. If [product] makes sense for what you're building
> at NewCo, I'm a quick call away. Either way, congrats again on the role.

---

### Bob Lee — Sales Manager @ StartupX (LinkedIn only)
Category: Power user | Approach: Bottom-up | 12 days in new role

**LinkedIn Message:**
> Hey Bob — congrats on StartupX! You were one of our most active users
> at Beta LLC. If you want [product] set up for your new team, happy
> to fast-track it. Let me know.

---

Approve these samples? I'll generate the rest in the same style.

Step 5: Handoff to Outreach

Identical to funding-signal-outreach Step 5. Package contacts + email sequences for the configured outreach tool. Route LinkedIn-only contacts to linkedin-outreach skill.

Additional Note for This Composite

Some contacts will be email, some will be LinkedIn-only. Split the output:

  • Email contacts → outreach tool (Smartlead, Instantly, CSV, etc.)
  • LinkedIn contacts → LinkedIn automation tool (Dripify, Expandi) or manual LinkedIn queue

Output Contract

campaign_package: {
  email_campaign: {
    tool: string
    file_path: string
    contact_count: integer
  }
  linkedin_campaign: {
    file_path: string              # CSV for LinkedIn tool or manual queue
    contact_count: integer
  }
  total_contacts: integer
  sequence_touches: integer
  next_action: string
}

Human Checkpoint

## Campaign Ready

Signal type: Champion/buyer/user job change
Email contacts: X people → [outreach tool]
LinkedIn contacts: Y people → LinkedIn message queue
Total: Z people across W companies
Sequence: 3 touches over 14 days

Ready to launch?

Execution Summary

StepTool DependencyHuman CheckpointTypical Time
0. ConfigNoneFirst run only5 min (once)
1. Detect job changesConfigurable (LinkedIn, Apollo, web search)Review movers list2-5 min
2. Research + qualifyWeb search (always available)Approve qualified movers3-5 min
3. Find new emailConfigurable (Apollo, Clearbit, etc.)Review contact details1-2 min
4. Draft outreachNone (LLM reasoning)Review samples, iterate5-10 min
5. HandoffConfigurable (Smartlead, CSV, etc.)Final launch approval1 min

Total human review time: ~15-25 minutes


Key Differences from Other Signal Composites

DimensionFunding / Hiring / LeadershipChampion Move
RelationshipCold — they don't know youWarm — they know and (hopefully) like you
InputList of companiesList of people
Signal aboutThe companyThe person
QualificationIs the company relevant?Is the NEW company relevant? (Person is already qualified)
ToneProfessional, prove credibilityCasual, reference shared history
Conversion rate2-5% reply rate10-25% reply rate
Sequence spacingTight (Day 1/5/12)Relaxed (Day 1/7/14)
Touch 3BreakupCheck-in (leave door open)

Tips

  • Run this check monthly, not daily. Job changes don't happen overnight. Monthly cadence catches moves within the first 30 days, which is the optimal outreach window.
  • Keep your tracking list fresh. Add new champions, buyers, and power users as deals close. Remove people who've left the industry entirely.
  • Specific results beat generic proof. "Your team saw 40% improvement" is 10x better than "our customers see great results." If you have specific data from their previous company, use it.
  • Don't be pushy. These are warm contacts. A desperate tone ("We need your business!") destroys the relationship advantage. Casual and helpful wins.
  • Promotions are the best sub-signal. Someone who was a champion and is now a VP is the warmest possible lead — they already believe in your product AND now control budget.
  • Lost deal contacts are worth tracking too. "Different company, different needs" is a legitimate re-engagement angle. Their objection at the old company may not apply at the new one.
  • LinkedIn is often better than email for this signal. The relationship is personal, not company-to-company. A LinkedIn message feels more natural than a cold-looking email from a sales tool.
  • If the person was a VERY close contact (executive sponsor, etc.), skip the automated sequence. Pick up the phone or send a personal email from the founder/AE. Don't automate relationships that deserve a personal touch.