Systems Lab

Agent skill

lead-qualifier

Multi-dimensional lead qualification scoring.

dormantSelf-containedActs undeclared1,759 words

Filed under Prospecting and list building.

From ekatasingh1107/b2b-gtm-skills · 99 skills · 2 · pushed 2026-04-11

What it does when it runs

Multi-dimensional lead qualification scoring. Evaluates leads against BANT criteria, firmographic fit, behavioral signals, and intent indicators. Outputs qualified/disqualified verdict with detailed reasoning.

Read from the skill and the 1 file bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.

Keys and connectors you must supply
None found.
Hosts it reaches
No third-party host appears in the skill or its bundled files.
Tool permissions it declares
No allowed-tools in the frontmatter. It does act, so it runs under whatever permissions your session already grants.
Actions present in the files
network

Ask about lead-qualifier

Opens your assistant with this page's verified links already in the prompt.

Is this safe to install?ClaudeChatGPT
Adapt it to my stackClaudeChatGPT
What else do I need for it to workClaudeChatGPT
Rather ask a human? Talk to Cheetah
git clone --depth 1 --filter=blob:none --sparse https://github.com/ekatasingh1107/b2b-gtm-skills.git /tmp/b2b-gtm-skills
git -C /tmp/b2b-gtm-skills sparse-checkout set "skills/composites/lead-qualifier"
mkdir -p ~/.claude/skills/lead-qualifier
cp -R "/tmp/b2b-gtm-skills/skills/composites/lead-qualifier/." ~/.claude/skills/lead-qualifier/

Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗

The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.

Reproduced in full from ekatasingh1107/b2b-gtm-skills/blob/eae8dd0bb98da1c8e84abd297066a87015dd860f/skills/composites/lead-qualifier/SKILL.md, which is licensed MIT (repository). 1,759 words, 26 headings.

Lead Qualifier

Performs deep, multi-dimensional qualification on a single lead or batch of leads. Goes beyond simple lead scoring by evaluating across BANT (Budget, Authority, Need, Timeline), firmographic fit against ICP, behavioral engagement signals, and intent indicators. Outputs a clear qualified/disqualified verdict with detailed reasoning and recommended next action.

Prerequisites

  • agency.config.json populated (ICP, services, pricing context, CRM config)
  • Lead data: at minimum, company name and contact name
  • WebSearch tool available for enrichment during qualification
  • Optional: CRM data for behavioral signal analysis
  • Optional: lead-scorer capability output as input

Capabilities Used

  1. company-researcher -- firmographic data for qualification
  2. person-researcher -- decision-maker validation
  3. lead-scorer -- initial lead score as input signal
  4. crm-writer -- pull engagement history and update qualification status
  5. decision-maker-finder -- verify authority dimension

Phase 0: Intake

Read agency.config.json:

  • icp.segments[] -- ideal customer profile criteria
  • services[] -- what you sell (for need mapping)
  • pricing -- minimum engagement size, retainer ranges (for budget qualification)
  • crm.tabs -- locate lead data
  • qualification_rules -- custom rules if defined in config

Accept parameters:

  • lead -- (required) lead object or lead name to look up in CRM
  • mode -- single | batch. Default: single
  • leads -- (required if mode = batch) array of lead objects
  • auto_route -- boolean, automatically trigger lead-router after qualification. Default: false
  • depth -- quick | full. Default: full

Lead object structure:

{
  "contact_name": "Priya Mehta",
  "company_name": "FreshSkin Co",
  "email": "[email protected]",
  "title": "Founder",
  "source": "inbound_form",
  "notes": "Interested in Shopify store revamp"
}

Phase 1: BANT Assessment

Budget (Weight: 25%)

Evaluate ability and willingness to pay:

Direct signals (from form data, emails, conversations):

  • Mentioned budget range
  • Asked about pricing (positive signal -- they're evaluating)
  • Mentioned "cost-effective" or "affordable" (may signal tight budget)
  • Mentioned specific investment amount

Indirect signals (from research):

  • Company revenue/funding (proxy for budget capacity)
  • Current spending on similar services (if visible)
  • Number of employees (proxy for operational budget)
  • Premium vs budget positioning of their brand

Scoring:

Budget Score:
  5 = Budget confirmed, aligns with services pricing
  4 = Strong budget indicators (funded, premium brand, asked about pricing)
  3 = Moderate indicators (mid-size company, no budget mentioned)
  2 = Weak indicators (small company, mentioned budget constraints)
  1 = Disqualifying (explicitly stated budget far below minimum)
  0 = No data available

Authority (Weight: 25%)

Evaluate decision-making power:

Title analysis:

  • C-suite (CEO, CMO, CTO): Score 5
  • VP/Director level: Score 4
  • Head/Manager level: Score 3
  • Coordinator/Specialist: Score 2
  • Unknown/Intern: Score 1

Decision-maker validation:

  • Run decision-maker-finder if title suggests non-decision-maker
  • Check if they mentioned "I need to check with..." (lower authority)
  • Check if they said "I'm the one who decides..." (higher authority)
  • Company size context: at a 10-person startup, a "Marketing Manager" may be the sole decision-maker

Scoring:

Authority Score:
  5 = Confirmed decision-maker, signs contracts
  4 = Strong authority (C-suite, founder, sole ecomm person)
  3 = Influencer with access to decision-maker
  2 = Influencer without confirmed path to decision-maker
  1 = No authority, no path identified
  0 = No data available

Need (Weight: 30%)

Evaluate alignment between their problems and your services:

Explicit need signals:

  • Mentioned specific pain points matching services[]
  • Requested a specific service by name
  • Described a project scope
  • Referenced competitors doing something they want

Implicit need signals:

  • Website quality issues visible on their store
  • Outdated design or poor mobile experience
  • Low conversion signals (poor product pages, no trust elements)
  • Missing features competitors have
  • Growing traffic but flat revenue (CRO need)
  • New product launches with basic pages (catalog need)

Service mapping: For each detected need, map to a specific service from services[]:

Detected need -> Service match -> Fit strength
"Store looks outdated" -> Shopify Store Development -> STRONG
"Want more traffic" -> Performance Marketing -> STRONG
"Conversion is low" -> CRO -> STRONG
"Need better photos" -> Catalog Management -> MODERATE

Scoring:

Need Score:
  5 = Explicit, urgent need perfectly matching core services
  4 = Clear need matching services, moderate urgency
  3 = Need exists but vague, or matches secondary services
  2 = Peripheral need, weak match to services
  1 = No apparent need for offered services
  0 = No data available

Timeline (Weight: 20%)

Evaluate urgency and readiness to start:

Urgency indicators:

  • Mentioned specific deadline ("need this before Diwali sale")
  • Mentioned event-driven timeline ("launching new line in Q2")
  • Mentioned competitive pressure ("competitor just relaunched")
  • Mentioned internal pressure ("board wants ecomm growth this quarter")

Readiness indicators:

  • Already evaluated other agencies (deep in buying process)
  • Has a brief or scope document ready
  • Mentioned budget is approved
  • Asked about start dates and timelines

Anti-urgency indicators:

  • "Just exploring for now"
  • "Maybe next quarter"
  • "No rush"
  • "We're in early stages of thinking about this"

Scoring:

Timeline Score:
  5 = Immediate need, ready to start within 2 weeks
  4 = Near-term, wants to start within 1-2 months
  3 = Medium-term, planning for next quarter
  2 = Long-term, 6+ months out
  1 = No timeline, "just exploring"
  0 = No data available

Phase 2: Firmographic Qualification

Compare the lead's company against ICP segments:

Segment Match

For each icp.segments[] entry, evaluate:

  • Industry match: Does their vertical match?
  • Company size match: Within the segment's range?
  • Geography match: Correct market?
  • Revenue/stage match: Post-PMF? Mid-market? Early-stage?
  • Platform match: On Shopify or moving to Shopify?

Firmographic Score

Firmographic Score:
  5 = Perfect ICP match (right industry, size, geo, stage, platform)
  4 = Strong match (3-4 criteria match)
  3 = Partial match (2-3 criteria match)
  2 = Weak match (1-2 criteria match)
  1 = No match but adjacent (could become ICP with growth)
  0 = Anti-ICP (wrong industry, too small/large, wrong platform)

Deal Breakers

Check for automatic disqualifiers:

  • Company in a prohibited industry
  • Company too small (below minimum engagement size)
  • Company on a platform you don't serve with no migration interest
  • Geographic restrictions (if applicable)
  • Direct competitor of an existing client (conflict of interest)

Phase 3: Behavioral Qualification

Pull engagement data from CRM (if available):

Engagement Signals

  • Email opens and clicks (frequency, recency)
  • Website visits (pages viewed, time on site)
  • Content downloads (guides, templates)
  • Webinar attendance
  • Social media engagement (liked, commented, shared)
  • Form submissions (which forms, how detailed)
  • Meeting requests or demo bookings

Engagement Score

Engagement Score:
  5 = High engagement (multiple touchpoints, recent, deep)
  4 = Good engagement (responded to outreach, visited key pages)
  3 = Moderate engagement (opened emails, some website visits)
  2 = Low engagement (minimal interaction)
  1 = No engagement (cold lead, no response to outreach)
  0 = No data available

Phase 4: Intent Signal Analysis

Look for buying intent signals:

High-Intent Signals (score 3 each)

  • Searched for "[your service] agency" or similar
  • Visited pricing page
  • Requested a proposal or audit
  • Asked about contracts or terms
  • Compared you to competitors by name
  • Mentioned urgency or deadline

Medium-Intent Signals (score 2 each)

  • Downloaded a case study
  • Attended a webinar
  • Engaged with multiple content pieces
  • Followed on LinkedIn
  • Visited portfolio/case study page

Low-Intent Signals (score 1 each)

  • Subscribed to newsletter
  • Single blog post visit
  • Social media follow only
  • Opened a cold email but no reply

Intent Score

Intent Score: sum(signals) normalized to 1-5 scale
  5 = Strong buying intent (4+ high-intent signals)
  4 = Good intent (2-3 high-intent signals)
  3 = Moderate intent (medium signals present)
  2 = Weak intent (low signals only)
  1 = No intent signals detected

Phase 5: Composite Qualification

Calculate the composite qualification score:

composite_score = (
  budget_score * 0.25 +
  authority_score * 0.25 +
  need_score * 0.30 +
  timeline_score * 0.20
)

firmographic_modifier:
  5 = +0.5
  4 = +0.25
  3 = 0
  2 = -0.25
  1 = -0.5
  0 = DISQUALIFY (automatic)

behavioral_modifier:
  5 = +0.3
  4 = +0.15
  3 = 0
  2 = -0.1
  1 = -0.2

intent_modifier:
  5 = +0.3
  4 = +0.15
  3 = 0
  2 = -0.1
  1 = -0.2

final_score = composite_score + firmographic_modifier + behavioral_modifier + intent_modifier

Qualification Verdict

QUALIFIED (score >= 3.5):
  - MQL (Marketing Qualified Lead): score 3.5-4.0
  - SQL (Sales Qualified Lead): score 4.0-4.5
  - HOT (Ready to close): score 4.5+

DISQUALIFIED (score < 3.5 or deal breaker triggered):
  - NURTURE: score 2.5-3.49 (not ready, but could be)
  - UNQUALIFIED: score < 2.5 (poor fit)
  - DEAL_BREAKER: automatic disqualifier triggered

Phase 6: Output

Return structured JSON:

{
  "lead": {
    "contact_name": "Priya Mehta",
    "company_name": "FreshSkin Co",
    "title": "Founder",
    "source": "inbound_form"
  },
  "qualification": {
    "verdict": "SQL",
    "final_score": 4.2,
    "confidence": "HIGH",
    "reasoning": "Strong ICP fit (D2C skincare, post-PMF), founder-level authority, explicit need for store revamp, Q2 timeline mentioned. Budget unconfirmed but funding round suggests capacity."
  },
  "bant": {
    "budget": {"score": 3, "notes": "No explicit budget mentioned. Series A funded, premium pricing suggests healthy margins."},
    "authority": {"score": 5, "notes": "Founder and sole decision-maker."},
    "need": {"score": 5, "notes": "Explicitly requested Shopify store revamp. Current store has poor mobile experience and outdated design."},
    "timeline": {"score": 4, "notes": "Mentioned wanting to launch before Q2 seasonal push."}
  },
  "firmographic": {
    "score": 4,
    "icp_segment": "Post-PMF D2C India",
    "match_details": {"industry": true, "size": true, "geo": true, "stage": true, "platform": true}
  },
  "behavioral": {
    "score": 4,
    "signals": ["Opened 3/3 emails", "Visited case study page twice", "Downloaded CRO guide"]
  },
  "intent": {
    "score": 4,
    "signals": ["Requested audit", "Visited pricing page", "Asked about timelines"]
  },
  "deal_breakers": [],
  "recommended_action": {
    "next_step": "Schedule discovery call with founder",
    "assigned_to": "founder_direct",
    "urgency": "This week",
    "talking_points": ["Reference their mobile experience issues", "Share skincare D2C case study if available"]
  },
  "generated_at": "2026-03-07T10:00:00Z"
}

Phase 7: Review and Routing

Present qualification results.

If auto_route = true, trigger lead-router with the qualification output.

APPROVAL GATE: "Lead qualified as [verdict]. Route to [assignment]?"

Update CRM via crm-writer:

  • Set qualification status
  • Set lead score
  • Add qualification notes
  • Set next action and assigned owner

Example Usage

Trigger phrases:

  • "Qualify this lead: [name] at [company]"
  • "Is [prospect] a good fit for us?"
  • "Run BANT qualification on the new inbound leads"
  • "Score and qualify [lead]"
  • "Should we pursue [company]? Qualify them."
  • "Batch qualify this week's inbound leads"

Files bundled with it

These load only when the skill asks for them, so they cost nothing until it runs.

Other skills for the same job

Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.

Need help setting it up?

This page tells you what lead-qualifier does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.

Book a call →

The directory stays free. There is nothing gated behind this.