The Prompt
You are a senior B2B paid media analyst auditing lead quality from paid campaigns. You know that volume without quality destroys pipeline economics, and that lead-quality audits done well change budget decisions.
INPUTS
I will paste a lead list export below — typically from LinkedIn Ads Campaign Manager, Google Ads, or pulled from Salesforce. Each row should include at minimum: lead name (can be anonymized), title, company name, company size (or proxy field like industry/employee count), and the campaign that sourced the lead.
{PASTE_LEAD_LIST_HERE}
{PASTE_ICP_DEFINITION_HERE}
Define your ICP across three dimensions:
- Target title / seniority (e.g., "Director, VP, Head of, or C-Suite," or "Manager+," or "any decision-maker in [function]")
- Target function (e.g., "Marketing, Web, Design, Product, Growth," or "Finance/RevOps," or "IT/Security")
- Target company size (e.g., "200+ employees," or "$10M+ ARR," or "Series B–D B2B SaaS")
If you leave this blank, the prompt uses an illustrative default: Director+ in Marketing/Web/Design/Product/Growth at companies of 200+ employees. Override with your real ICP for accurate scoring.
WHAT I NEED FROM YOU
Score every lead in the list against the ICP rubric using your provided definition. Use this 4-bucket structure:
- True ICP: Title matches your seniority criteria AND function criteria AND company-size criteria. Outcome: flag for BDR priority.
- Near-Miss: Title matches seniority and function, but company size is below threshold. Targeting is calibrated correctly; the size filter needs to tighten. Outcome: review audience filters.
- Wrong Title: Company size matches threshold but title does not meet seniority or function criteria. The company is fit but this person is not the buyer. Outcome: exclude from BDR queue, refine title filters.
- Noise: Any title at a company below the size threshold, or where company/title data is missing or unreadable. Outcome: exclude entirely, review targeting exclusions.
State each lead's bucket and produce the output in this exact order:
1. Lead-by-Lead Classification
A table or list showing every lead with its assigned bucket and a one-sentence reason.
2. Aggregate Rates by Bucket
- True ICP rate (% of total)
- Near-Miss rate (% of total)
- Wrong Title rate (% of total)
- Noise rate (% of total)
State the implied "Quality Lead Rate" (True ICP + Near-Miss, the leads where targeting is at least directionally right).
3. Campaign-Level Quality Breakdown
For each campaign in the data, show the ICP rate for that specific campaign. Identify the highest-quality and lowest-quality campaigns.
4. Recommendations
3-5 specific next steps. Each should reference either a campaign or a bucket and what to do about it. Examples: "Pause Campaign X — 60% Noise rate," "Tighten company-size filter on Campaign Y — Near-Miss rate is 35%, indicating SMB leakage."
JUDGMENT RULES
- Title judgment requires nuance. A senior title in the wrong function is not a True ICP fit even though the level is high — the function matters as much as the level. Use the function criteria from the ICP definition strictly.
- Company-size data is often messy. If the column reads a non-numeric value (like an industry label), treat that as a missing field and place in Noise rather than guessing. Do not infer company size from company name alone.
- "Wrong Title" is a real bucket and a useful one. Counterintuitively, a junior IC at a large company is often worse than a senior decision-maker at a small company — the person can't make the decision, and the BDR team will burn time on them.
- Do not invent leads, titles, or company data. If a field is missing, classify as Noise and note the missing field. If the entire row is unreadable, exclude it from the count and flag as a data integrity issue.
- Be honest with me — fabricated classifications damage targeting decisions. If you can't classify a lead with the data provided, say so explicitly.
OUTPUT FORMAT
Return as {OUTPUT_FORMAT}.
If "markdown": full structure with a lead-by-lead table, aggregate rates, and campaign-level breakdown.
If "html": tabbed structure (Overview / Lead Detail / Campaign Detail / Recommendations).
Begin.
How to Use It
This is the prompt that translates "leads are bad" into "here's exactly which campaigns are generating the wrong people and why." The 4-bucket rubric (True ICP / Near-Miss / Wrong Title / Noise) is more useful than a binary good/bad classification because each bucket points to a different fix: Near-Miss means your targeting is directionally right but the size filter needs to tighten; Wrong Title means the company is the right fit but you're reaching ICs instead of decision-makers. Claude (Sonnet or Opus) handles the multi-dimensional ICP matching reliably; GPT-4 class models work but sometimes conflate the seniority and function dimensions when classifying edge cases.
The ICP definition input is the highest-leverage variable in the prompt. The more specific you are — "Director+ in Marketing, Web, Design, or Product at Series B–D B2B SaaS companies with 200–2000 employees" — the tighter the classification. If you leave it blank, the model uses a generic default that may not match your actual ICP. Write your ICP definition once, save it, and paste it into every run.
The output works best when you close the loop back to your campaign settings. After running the scoring, take the campaign-level quality breakdown and compare it against your LinkedIn Campaign Manager audience settings or your Google Ads audience exclusions. A 60% Noise rate on a specific LinkedIn campaign almost always traces to a targeting mismatch you can fix directly in-platform — usually a missing company-size exclusion or a function filter that's too broad.
Example Output
Example output coming soon — currently running this prompt against live data and will publish the redacted output once it's ready.
Common Failure Modes
Variations
Two variations of this prompt are worth knowing.
Account-Level Scoring Version
Scores accounts rather than individual leads, aggregating all leads from the same company into a single fit score. More useful for ABM programs where you're evaluating whether your target account list is working. Pairs well with the Bad Lead Pattern Detection prompt for identifying which campaigns are sourcing wrong-fit accounts.
[PROMPT GOES HERE]
Real-Time Single-Lead Version
A stripped-down version for scoring a single lead record quickly — during an SDR inbound review or before routing a lead to a BDR. Links to the Marketo Nurture Diagnostic for cases where the lead scored True ICP but isn't receiving nurture.
[PROMPT GOES HERE]
Get one new prompt every Monday.
Plus the system behind it. Free. Built for in-house demand gen managers at B2B SaaS companies.
Subscribe free →Frequently Asked Questions
Does this work with ChatGPT or only Claude?
Both work for this use case. Claude is the preferred choice because it's more precise about ambiguous cases — specifically, when a title could be classified in multiple buckets depending on how you interpret the function criteria. Claude is more likely to flag the ambiguity and explain its classification reasoning rather than confidently assigning a bucket. For lead quality work where the classifications drive targeting decisions, that extra precision matters.
How do I define my ICP if I'm not sure what it is?
Start with your closed-won customers from the last 12 months. Look at the titles, functions, and company sizes of the accounts that closed fastest and at the highest ACV — those are your True ICP. Then look at the accounts that churned or had long sales cycles despite converting — those are your Near-Miss and Wrong-fit signals. If you don't have closed-won data, use the ICP your product team has defined and plan to refine it after the first 3 scoring runs.
What lead volume is needed for reliable campaign-level scores?
At least 20 leads per campaign to draw confident conclusions. Below that, the percentages are statistically noisy — a 60% Noise rate on 5 leads is just 3 bad leads, which could be random variance rather than a targeting problem. The prompt includes a judgment rule about sample size and will flag scores as "low confidence" when a campaign produced fewer than 5 leads in the period.
Can I use this for leads from sources other than paid media?
Yes. The prompt is source-agnostic — it scores whatever lead list you paste. Use it on organic leads, webinar registrants, outbound sequences, or event attendees. The campaign-level breakdown will reflect whatever campaign identifiers exist in your data. The ICP rubric logic stays the same regardless of lead source.