Lead Qualification logo

Lead Qualification

Organization
cognyai
lead-qualification

Research and qualify business leads against your ICP

Overview

Publishercognyai
Repositoryclaude-code-marketing-skills
Skill namelead-qualification
Stars
111
Forks
15
Bundled files
Instructions only
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by cognyai on GitHub. Read the source before you install it.

Installation

Install the Lead Qualification AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/cognyai/claude-code-marketing-skills/tree/main/skills/lead-qualification
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/cognyai/claude-code-marketing-skills.git /tmp/claude-code-marketing-skills
mkdir -p .claude/skills
cp -r /tmp/claude-code-marketing-skills/skills/lead-qualification .claude/skills/lead-qualification
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Lead Qualification in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Lead Qualification on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Lead Qualification is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Lead Qualification

Research a lead or list of leads to determine ICP fit, company details, and deal potential.

Usage

/lead-qualification "John Smith john@company.com" — qualify a single lead /lead-qualification — then paste a list of leads

Works with

Runs on public web research alone. If a Cogny workspace is connected, it adds first-party signals; call mcp__cogny__list_integrations once to see what's there. If it isn't, skip the connected rows and say what connecting adds.

JobPrimaryAlso answers itWhat it adds
Company, role, sizeWebSearch / WebFetch—Always available
Already in the CRM?HubSpot search_crm_objectsUpsales list_contacts / list_accounts; Pipedrive list_deals(org_id) once you know the orgExisting customer, open deal or past loss changes the next step
Engaging with our ads?Fibbler get_company_engagement—LinkedIn impressions, clicks and engagements by company

Pipedrive has no search tool here; only check it when the user gives an org id or the list is small enough to page list_organizations.

Steps

0. Pin down the ICP

Scoring needs a target. If the user hasn't given one, ask: "Who is your ideal customer (industry, company size, region, buyer role, must-have signals like 'runs paid media')?" If they'd rather not spell it out, infer a draft from their own site: WebFetch their homepage, pricing, customers/case-studies pages, and note who the copy, logos and pricing tiers address. Show the inferred ICP in 3–5 bullets and get a yes or corrections before scoring. Score every lead against that confirmed ICP and repeat it at the top of the output.

1. Parse the lead(s)

Extract name, email, and company from input. If email domain is personal (gmail, hotmail, outlook, yahoo, live), flag it — personal emails are a lower-quality B2B signal.

2. Research each lead

For each lead, WebSearch for:

  • Full name + company → LinkedIn profile, role, seniority
  • Company domain → website, size, industry
  • Company + "marketing" or "advertising" → whether they do paid media

3. Assess company fit

WebFetch the company website if found:

  • What do they sell?
  • How big are they? (team page, about page, funding)
  • Do they run ads? Check for tracking pixels with curl (WebFetch summarises the page and drops <script> tags):
    bash
    curl -sL -A "Mozilla/5.0" "https://<company-domain>/" | grep -oiE "googletagmanager\.com/gtm\.js|gtag/js\?id=(AW|G)-[A-Z0-9]+|fbevents\.js|snap\.licdn\.com|px\.ads\.linkedin\.com|analytics\.tiktok\.com|static\.ads-twitter\.com|bat\.bing\.com|redditstatic\.com/ads|hs-scripts\.com" | sort -u
    AW- IDs mean Google Ads conversion tracking; fbevents.js = Meta Pixel; snap.licdn.com = LinkedIn Insight Tag; GTM alone hides what's inside it, so say "GTM present, ad pixels unknown". Also look for ad landing pages (/lp/, utm_ links).
  • What's their likely marketing budget?

3b. Enhanced when connected: first-party signals

If Cogny isn't connected, skip this and note what connecting adds (whether the lead is already a customer, has an open or lost deal, or has been engaging with your LinkedIn ads).

  • CRM match. HubSpot: mcp__cogny__mcp__HubSpot__search_crm_objects on contacts (filter email EQ the lead's email) and on companies (filter domain EQ the email domain). Upsales: list_contacts(filters: [{"field": "email", "comparator": "eq", "value": "<email>"}]), then list_orders(filters: [{"field": "client.id", "comparator": "eq", "value": <account id>}]) for history. Pipedrive: page mcp__cogny__mcp__Pipedrive__list_organizations and match on name/domain, then list_deals with that org_id. Report: existing customer, open deal, closed-lost (with reason if present), or not found.
  • Ad engagement (Fibbler). mcp__cogny__mcp__app-fibbler-co__get_company_engagement(company_search: "<company>", time_period: "90d") shows whether the company has been seeing and engaging with LinkedIn ads; get_influenced_deals tells you if it already sits in influenced pipeline. Treat engagement as a warmth signal, not intent.

Never write to the CRM from this skill. If the user wants the lead created or updated, tell them which record to change.

4. Score each lead

ICP: [confirmed ICP, one line]
Lead: [Name] ([email])
Company: [Company] — [what they do]
Role: [Title/seniority if found]
ICP Fit: HIGH / MEDIUM / LOW / NONE

Signals:
+ [Positive signal, e.g., "Runs Google Ads"]
+ [Another positive]
+ [First-party signal, e.g., "Fibbler: 1,240 LinkedIn impressions, 9 engagements in 90d"]
- [Negative signal, e.g., "Personal email"]
- [Another negative]

Estimated deal value: [based on company size]
CRM status: [Customer / Open deal / Lost (reason) / Not in CRM / Not checked]
Next step: [specific recommendation]

5. Summary table for multiple leads

┌──────────────┬──────────────────┬──────────┬───────────────┐
│     Name     │     Company      │ ICP Fit  │   Next Step   │
├──────────────┼──────────────────┼──────────┼───────────────┤
│ [Lead 1]     │ [Company]        │ HIGH     │ Send proposal │
│ [Lead 2]     │ [Unknown]        │ LOW      │ Disqualify    │
└──────────────┴──────────────────┴──────────┴───────────────┘

Frequently asked questions

What does the Lead Qualification AI skill do?

Research and qualify business leads against your ICP

Why use Lead Qualification on TypingMind?

Because you install it once and use it with any model. Lead Qualification is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Lead Qualification in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/cognyai/claude-code-marketing-skills/tree/main/skills/lead-qualification. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Lead Qualification?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Lead Qualification?

As many as you like. As long as a model supports skills, you can use Lead Qualification with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Lead Qualification AI skill free?

It is published on GitHub by cognyai. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇