The 10 best Claude prompts for B2B marketing — inbound qualification, ABM intelligence, campaign timing, list hygiene. Copy, paste, run with Lusha.

The 10 prompts below are the ones B2B marketers actually run in 2026 — the workflows where AI meets verified data and produces something usable, not just plausible. Each one runs inside Claude with the Lusha connector enabled, which means inbound leads come back with current titles and validated emails, ABM accounts come back with named buying groups and time-stamped signals, and campaign lists come back with deliverability confidence grades attached.

Organized by workflow so you can find what you need fast — inbound qualification and ICP work, account intelligence for ABM, campaign timing and list hygiene. Copy the green/black block, paste it into Claude, replace the bracketed values with your specifics, and run.

Connect Lusha to Claude in two minutes →

Inbound qualification and ICP work (Prompts 1–4)

The marketer’s biggest workflow gap. Lead form fills come in, webinar signups stack up, paid lead lists arrive. Most of them aren’t ICP. The four prompts below qualify, score, and validate at the moment the lead lands.


Prompt 1 — Qualify inbound webinar or event signups against your ICP

You have 100 webinar signups. Maybe 20 are ICP. This prompt sorts them in 60 seconds.

<context>
I have a list of inbound webinar/event signups — emails with names but limited firmographic detail. I want to qualify them against my ICP before sales follow-up.

My ICP:
- Target titles: [TITLES — e.g., Director+, RevOps and Sales Ops]
- Industry: [INDUSTRY — e.g., B2B SaaS]
- Headcount: [RANGE — e.g., 500-5,000]
- Geography: [REGION — e.g., North America]

The signups (paste below):
[PASTE — name, email, optional company]
</context>

<task>
Use Lusha to look up each signup. For each contact:
- Verify current title and company
- Flag whether they match my ICP (YES / NO / PARTIAL)
- For NO matches, surface why (wrong title, wrong industry, wrong size, individual contributor)
- For YES matches, return validated work email and direct dial

Output a sorted table:
ICP match status | Name | Title | Company | Industry | Validated email | Direct dial | Reason
</task>

<constraints>
- Sort by ICP match: YES first, PARTIAL second, NO last
- For free email domains (gmail, outlook, yahoo), still attempt the reverse lookup — many real buyers register events with personal email
- If a signup can't be resolved at all, surface that as "unresolvable" rather than dropping the row
</constraints>

See the full workflow with a live demo →


Prompt 2 — Reverse-lookup unknown email addresses to identify contacts

Paid lead lists, gated content downloads, contact forms with only email. Turn anonymous addresses into named buyers with current roles.

<context>
I have a list of email addresses with no other context — names, titles, and companies are missing. I want to identify each person and pull current firmographic data.

The emails:
[PASTE — one email per line]
</context>

<task>
For each email, use Lusha to:
- Look up the person by email
- Return their current name, title, and company
- Surface job start date so I can see how recent the role is
- Flag any contact whose individual record shows they moved to a different company than the email domain suggests (catches stale email lists)
- Surface their previous job for trajectory context

Output:
Email | Name | Current title | Current company | Job start date | Previous job | Notes
</task>

<constraints>
- If the email's domain doesn't match the contact's current employer, flag this clearly — the contact has likely changed companies and the email may be stale
- For contacts that can't be resolved by reverse lookup, surface that result rather than guessing
</constraints>

See the full workflow with a live demo →


Prompt 3 — Build an enriched ICP scoring table for inbound leads

For when you need to score, not just qualify. Defines a transparent ICP scoring model with verified data underneath, so sales gets leads with both a score and the reasoning.

<context>
I want to build a scored ICP table from my inbound leads — not just YES/NO qualification but a transparent score I can hand to sales with reasoning attached.

My ICP scoring model:
- Title fit (0-30 points): [DEFINE — e.g., 30 for VP+, 20 for Director, 10 for Manager, 0 for IC]
- Industry fit (0-25 points): [DEFINE — e.g., 25 for core ICP industries, 15 for adjacent, 0 for off-ICP]
- Company size fit (0-20 points): [DEFINE — e.g., 20 for sweet-spot range, 10 for adjacent, 0 for off]
- Geography fit (0-15 points): [DEFINE — e.g., 15 for core regions, 0 for off]
- Signal bonus (0-10 points): [DEFINE — e.g., 10 if company has fired a buying signal in the last 90 days]

The leads:
[PASTE — name, email, company, optional title]
</context>

<task>
For each lead, use Lusha to enrich the row, then apply the scoring model:

1. Pull current title, company, industry, headcount, geography
2. Check the signals layer for buying signals in the last 90 days
3. Calculate the score by component
4. Sum to a total (0-100)
5. Apply a routing tier: HOT (80+), WARM (50-79), COOL (20-49), COLD (under 20)

Return a sorted table:
Tier | Total score | Name | Title | Company | Industry | Component breakdown | Reasoning
</task>

<constraints>
- Score components must be transparent — sales should see why each lead scored where it did
- Include the signal bonus reasoning when applied (which signal, when it fired)
- Sort by total score descending so HOT leads surface first
</constraints>

See the full workflow with a live demo →


Prompt 4 — Validate email list deliverability before campaign launch

The pre-flight check. Marketing automation platforms don’t validate at the moment of send. This prompt catches the bounces before the sender reputation hits take effect.

<context>
I'm about to launch a marketing campaign to a list. I want to validate the email deliverability before send so I don't take a hit on sender reputation.

The list:
[PASTE — one row per contact, with name, email, company]
</context>

<task>
For each row, use Lusha to validate:
1. Is the contact still at the listed company?
2. Is the email address current (does Lusha's record match)?
3. What's the email confidence grade — A+, A, B, C, or D?
4. Has the contact recently changed roles or companies (in which case the email may be dead)?

Output a triage table:
Send status | Name | Email | Confidence grade | Company match | Notes

Use three send-status categories:
- SAFE TO SEND — A+ or A confidence, contact still at company, no recent role change
- HOLD — confidence dropped to B or C, OR contact's company match is uncertain
- DO NOT SEND — D confidence, contact departed, or email otherwise invalid

At the bottom, summarize the volume in each tier so I can quickly judge the campaign's deliverability before launch.
</task>

<constraints>
- Be strict on the HOLD tier — when in doubt, hold rather than send
- Flag any contact whose individual record shows they moved companies — that email is likely already dead at the original domain
</constraints>

See the full workflow with a live demo →


Account intelligence for ABM (Prompts 5–7)

For ABM marketers running named-account campaigns. Build buying groups, surface fresh triggers, time the campaign touches around real events.


Prompt 5 — Find buying signals on your target ABM account list

The weekly signal scan against your tier-1 account list. Funding, leadership, M&A, hiring surges — sorted by intensity, ranked for outreach priority.

<context>
I want to scan my ABM target account list for fresh buying signals in the last [WINDOW — e.g., 90 days] and rank the accounts by signal intensity.

My target accounts:
[PASTE — domains or company names, one per line]
</context>

<task>
For each account, use Lusha's signals layer to retrieve activity in the window:
- Financial events (funding rounds, IPO, M&A, strategic investments)
- Leadership events (executive hires, promotions, departures)
- Hiring surges by department (especially in functions we sell into)
- Product launches and partnerships
- Headcount growth and web traffic shifts

For each account, return:
Account | Signal types fired | Specific signals (dates and details) | Signal intensity score | Recommended action

Apply intensity scoring:
- HOT — 3+ signal types fired, including at least one STRONG signal (leadership, funding, M&A)
- WARM — 1-2 signal types fired
- QUIET — no signals in window

Sort by intensity (HOT first), surface the HOT accounts for priority campaign timing this week.
</task>

<constraints>
- Score the account based on signal density (breadth of types) plus signal recency (last 30 days carries more weight)
- A QUIET account isn't failure — surface it so I can de-prioritize this week and re-check next month
</constraints>

See the full workflow with a live demo →


Prompt 6 — Build the verified buying group at a target ABM account

For multi-touch ABM campaigns. Who actually buys at this account? Pull the verified buying group with email and direct dial for the full multi-stakeholder play.

<context>
I'm building a multi-touch ABM campaign for [TARGET ACCOUNT]. I need the verified buying group, not just the obvious executive contact.

My account and campaign context:
- Account name / domain: [ACCOUNT]
- Product / solution I'm marketing: [PRODUCT]
- Function the buying decision sits in: [Sales / Marketing / Engineering / etc.]
</context>

<task>
Use Lusha to find the verified buying group at the account. Organize by role family:

- ECONOMIC BUYER (CFO or C-suite owner of the function)
- TECHNICAL EVALUATOR (CTO, VP Engineering, or product/data leadership)
- END USER (the function head — VP Sales, VP Marketing, VP RevOps)
- INFLUENCER (RevOps, IT, procurement — operators who shape decisions)
- EXECUTIVE SPONSOR (the C-suite owner of the broader business unit)

For each contact, return:
Name | Title | Role family | Validated email | Direct dial | Job start date | Why this person matters (one sentence)

Flag anyone in their first 90 days in role — fresh mandate windows worth referencing in campaign messaging.
</task>

<constraints>
- Only include contacts with validated email
- Group output by role family, not seniority
- Surface structural gaps — if a role family has no clean match, flag it
</constraints>

See the full workflow with a live demo →


Prompt 7 — Surface fresh trigger events at ABM accounts for campaign timing

The “when should we send the next touch” prompt. Time campaign waves around real buyer-side events instead of fixed weekly cadences.

<context>
I want to time my ABM campaign touches around real trigger events at the target accounts — not fixed weekly cadences. Surface the recent triggers and map each to a campaign timing recommendation.

My target accounts and the campaign I'm running:
- Accounts: [PASTE — one per line]
- Campaign focus: [WHAT THE MESSAGING IS ABOUT]
</context>

<task>
For each account, scan for trigger events fired in the last 30 days:
- New executive hires in the buying group
- Fresh funding rounds
- M&A activity
- Major product launches
- Hiring surges in the function we target

For each trigger fired, return:
Account | Trigger event | Date | Campaign timing recommendation | Suggested messaging angle

Apply timing logic:
- THIS WEEK — strong trigger fired in the last 14 days, send the next touch now while the event is fresh
- NEXT 30 DAYS — trigger fired 14-30 days ago, still relevant but lower urgency
- HOLD — no fresh trigger, wait for the next signal scan

For each "THIS WEEK" recommendation, surface a one-line messaging angle tying the campaign to the trigger.
</task>

<constraints>
- The trigger must be public and time-stamped — manufactured urgency isn't acceptable here
- If an account has no fresh trigger, surface that as HOLD honestly rather than forcing a recommendation
</constraints>

See the full workflow with a live demo →


Campaign timing and list hygiene (Prompts 8–10)

For the lifecycle and demand gen work that keeps the marketing engine running. List hygiene, lookalike discovery, signal-stacking for the high-priority sends.


Prompt 8 — Re-enrich a stale marketing database

Marketing automation databases decay at the same 30% per year as CRM. This prompt surfaces who moved, who got promoted, who left — and which rows still hold up.

<context>
I have a marketing database list that hasn't been touched in [WINDOW — e.g., 12 months]. Re-enrich it and tell me which rows are still current vs which need action.

The list:
[PASTE — contact rows]
</context>

<task>
For each contact, use Lusha to compare the stored data against the current record. Classify each row into one of four states:

- STABLE — same title, same company, validated email still A+ or A. Keep in segments as-is.
- PROMOTED — same company, new title with later job start date. Update the title and re-evaluate segmentation.
- MOVED — different company than the stored record. Update the company and email, re-evaluate ICP fit.
- DEPARTED — no current employer match, contact may have left the workforce. Suppress from active segments.

Return a sorted table:
State | Name | Stored data | Current data | Action

At the bottom, summarize counts per state so I can size the cleanup work.
</task>

<constraints>
- For PROMOTED and MOVED rows, surface both the old and new data side by side
- A DEPARTED row is data, not failure — flag and suppress, don't drop silently
</constraints>

See the full workflow with a live demo →


Prompt 9 — Find lookalike companies to your closed-won accounts

Pipeline expansion for demand gen. Take your best-fit customers, find 20-50 similar companies, hand the list to sales for outbound.

<context>
I want to find companies that look like my best closed-won customers — for demand gen outbound and ABM list-building.

My seed customers (5-15 best-fit closed-wons):
[PASTE — company domains or names, one per line]

Additional filters to apply:
- Geography: [REGION]
- Headcount range: [RANGE]
- Exclude: [LIST OF EXISTING CUSTOMERS OR ACCOUNTS TO SKIP]
</context>

<task>
Use Lusha's lookalike engine to find similar companies. For each result, return:
Company | Domain | Headcount | Industry | Location | Similarity factor

Apply the filters strictly — don't return companies in the excluded list, and respect the geography and headcount constraints.

At the bottom, suggest which 5-10 are the strongest match for sales outbound prioritization based on the similarity signals.
</task>

<constraints>
- The lookalike model returns broad candidates — apply the filters as a sharpening pass, not as a filter on the model itself
- If a result clearly doesn't fit the filters, drop it rather than returning a weak match
</constraints>

See the full workflow with a live demo →


Prompt 10 — Identify accounts with stacked signals for high-priority outreach

The “drop everything” prompt. Find the accounts firing 3+ different signal types at once — the highest-conviction outreach targets for the week.

<context>
I want to find the accounts in my list with the highest concentration of buying signals — multiple signal types firing in the same window. These are the highest-conviction targets this week.

My account list:
[PASTE — one company per line]

Window: last [WINDOW — e.g., 90 days]
</context>

<task>
For each account, retrieve activity in the window across multiple signal types:
- Financial events (funding, IPO, M&A, strategic investments)
- Leadership events (hires, promotions, departures)
- Hiring surges by department
- Product launches and partnerships
- Headcount growth
- Web traffic shifts

Count distinct signal types per account. A stacked-signal account has 3+ different types firing.

Output a ranked table:
Account | Signal types fired (count) | Specific signals | Stack tier | Recommended action

Tier definitions:
- TIER 1 — 4+ distinct signal types (drop-everything outreach this week)
- TIER 2 — 3 distinct signal types (call this week)
- TIER 3 — 2 distinct signal types (monitor, reach out next week)
- SINGLE — 1 signal type only (worth tracking, not stacking)
- QUIET — no signals in window
</task>

<constraints>
- Stack density (breadth of signal types) is the metric, not absolute signal count
- A QUIET account is intelligence too — surface the count so I know the scan covered the full list
</constraints>

The pattern across all 10 prompts

The 10 prompts above span three different marketing workflows — inbound qualification, ABM account intelligence, campaign timing and hygiene — but share one structural pattern: the verified data layer is what makes the prompt usable. Generic Claude prompts ask the model to guess what an inbound lead’s title might be, or which accounts to target. These prompts retrieve verified contacts and named signals from Lusha — with email confidence grades, current titles, jobStartDate signals, and time-stamped buying events — so the marketer can act on what the data actually says, not on what the model invents.

The difference shows up in the bounce rate on campaign sends, the precision of inbound scoring, the timing of ABM touches, and the conversion rate of demand gen lookalike outreach. Verified data isn’t a nicety. It’s the unlock.

See the full Claude prompts gallery — 41 prompts across prospecting, enrichment, signals, expansion, and pipeline acceleration →

More in this series:

The 12 best Claude prompts for sales in 2026

Stay up-to-data on the latest in sales & marketing with our newsletter.

    Thank you for subscribing