Skip to content
Marketing
Skill

/inbound-lead-qualification

Qualifies inbound leads against full ICP criteria — company size, industry, use case fit, role/seniority of the person. Checks CRM and existing customer base for duplicates and existing relationships. Outputs a scored CSV with qualification status, reasoning, and pipeline

From plugin
goose-skills
1.2k200 skills
Install
$ npx -y skills add gooseworks-ai/goose-skills --skill inbound-lead-qualification --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/inbound-lead-qualification

Context preview

The summary Claude sees to decide when to auto-load this skill.

Qualifies inbound leads against full ICP criteria — company size, industry, use case fit, role/seniority of the person. Checks CRM and existing customer base for duplicates and existing relationships. Outputs a scored CSV with qualification status, reasoning, and pipeline

SKILL.md

inbound-lead-qualification.SKILL.md
name: inbound-lead-qualification
version: 1.0.0
description: >
  Qualifies inbound leads against full ICP criteria — company size, industry, use case fit,
  role/seniority of the person. Checks CRM and existing customer base for duplicates and
  existing relationships. Outputs a scored CSV with qualification status, reasoning, and
  pipeline overlap flags. Tool-agnostic — works with any CRM, enrichment tool, or data source.
tags: [lead-generation]

Inbound Lead Qualification

Takes a set of inbound leads and validates each against your full ICP criteria. Not a fast-pass triage (that's `inbound-lead-triage`) — this is the thorough qualification step that determines whether a lead is genuinely worth pursuing, and produces a scored CSV for the team.

When to Auto-Load

Load this composite when:

  • User says "qualify these inbound leads", "check if these leads are ICP", "score my inbound"
  • An upstream triage has been completed and leads need deeper qualification
  • User has a batch of leads and wants a qualified/disqualified verdict on each

Architecture

[Inbound Leads] → Step 1: Load ICP & Config → Step 2: CRM/Pipeline Check → Step 3: Company Qualification → Step 4: Person Qualification → Step 5: Use Case Fit → Step 6: Score & Verdict → Step 7: Output CSV

---

Step 0: Configuration (Once Per Client)

On first run, establish the ICP definition and CRM access. Save to the current working directory or wherever the user prefers (e.g., `config/lead-qualification.json`).

{
  "icp_definition": {
    "company_size": {
      "min_employees": null,
      "max_employees": null,
      "sweet_spot": "",
      "notes": ""
    },
    "industry": {
      "target_industries": [],
      "excluded_industries": [],
      "notes": ""
    },
    "use_case": {
      "primary_use_cases": [],
      "secondary_use_cases": [],
      "anti_use_cases": [],
      "notes": ""
    },
    "company_stage": {
      "target_stages": [],
      "excluded_stages": [],
      "notes": ""
    },
    "geography": {
      "target_regions": [],
      "excluded_regions": [],
      "notes": ""
    }
  },
  "buyer_personas": [
    {
      "name": "",
      "titles": [],
      "seniority_levels": [],
      "departments": [],
      "is_economic_buyer": false,
      "is_champion": false,
      "is_user": false
    }
  ],
  "hard_disqualifiers": [],
  "hard_qualifiers": [],
  "crm_access": {
    "tool": "HubSpot | Salesforce | CSV export | none",
    "access_method": "",
    "tables_or_objects": []
  },
  "existing_customer_source": {
    "tool": "HubSpot | Salesforce | CSV | none",
    "access_method": ""
  },
  "qualification_prompt_path": "path/to/lead-qualification/prompt.md or null"
}

**If `lead-qualification` capability already has a saved qualification prompt:** Reference it directly — don't rebuild ICP criteria from scratch.

**On subsequent runs:** Load config silently.

---

Step 1: Load ICP Criteria & Parse Leads

Process

1. Load the client's ICP config (or qualification prompt from `lead-qualification` capability) 2. Parse the inbound lead list — accept any format:

  • Output from `inbound-lead-triage` (already normalized)
  • Raw CSV with any column structure
  • Pasted list of names/emails/companies
  • CRM export

3. Identify what data is available vs. missing per lead:

  • **Have:** Fields present in the input
  • **Need:** Fields required for qualification but missing
  • **Gap report:** "X leads have company name, Y have title, Z have nothing but email"

Output

  • Parsed lead list with available/missing field inventory
  • Gap report for the user

Human Checkpoint

If >50% of leads are missing critical fields (company name or person title), recommend running `inbound-lead-enrichment` first. Ask: "Many leads are missing company/title data. Want me to enrich them first, or qualify with what's available?"

---

Step 2: CRM & Pipeline Check

Process

For each lead, check against existing data sources to identify overlaps:

**Check 1 — Existing customer?**

  • Search customer database by company domain/name
  • If match found: Flag as `existing_customer` with customer details (plan, account owner, contract status)
  • This is NOT a disqualification — it's a routing flag (upsell vs. new business)

**Check 2 — Already in pipeline?**

  • Search your CRM (HubSpot, Salesforce, CSV) for the company in active deals
  • If match found: Flag as `in_pipeline` with deal details (stage, owner, last activity)
  • Critical: Sales rep should know before reaching out that a colleague already has this account

**Check 3 — Previous engagement?**

  • Search outreach logs for the email/company
  • If match found: Flag as `previously_contacted` with history summary (when, what channel, outcome)

**Check 4 — Known from signal composites?**

  • Search your CRM or signal tracking system for the company
  • If match found: Flag as `signal_flagged` with signal type and date

Output

Each lead tagged with:

  • `pipeline_status`: `new` | `existing_customer` | `in_pipeline` | `previously_contacted`
  • `pipeline_detail`: One sentence explaining the overlap (or null)
  • `signal_flags`: Any signal composite matches

Handling Overlaps

  • **Existing customer:** Don't disqualify. Mark separately. Might be expansion/upsell.
  • **In pipeline:** Don't disqualify. Flag for sales rep coordination. Note the existing deal owner.
  • **Previously contacted but no response:** Still qualify. The inbound signal means they're now warmer.
  • **Previously contacted and rejected:** Still qualify the inbound. People change their minds. Note the prior context.

---

Step 3: Company Qualification

Process

For each lead's company, evaluate against every ICP company dimension:

**Dimension 1 — Company Size**

  • Check employee count against ICP range
  • Sources: enrichment data, LinkedIn company page, web search
  • Score: `match` | `borderline` | `mismatch` | `unknown`
  • Note: If the lead is from a subsidiary or division, evaluate the re
Read more
Ships withgoose-skills

Put your AI agent on the growth team. Research customers and competitors, analyze what is working, create the next campaign, and learn from the result.

Get the whole plugin

Other skills on goose-skills.