AI Skill

ICP Score and Route Skill

Tools: Claude ▪ Lusha

A reusable Claude Skill that scores any lead or list against your ICP on the Lusha connector, verifies the key contact, and returns a routing decision: AE, SDR or nurture, with a confidence level and every data point that drove it. No black-box grade.

Install it once, then ask naturally: “Score this inbound against our ICP and tell me where it goes.” If you’ve set up a Target Profile in Lusha, the Skill uses it; if not, give it your criteria in a sentence. Either way, every criterion shows Met, Missed or Uncertain, and no lead reaches an AE without a verified contact behind it.

This is a Skill, not a prompt. A prompt is read-and-forget. A Skill installs once and runs in every chat — same ICP, same thresholds, same reasoning on every lead.

Install in two minutes, two ways

Option A — upload the skill file.
Click Download skill at the top of this page. In Claude.ai go to Settings → Capabilities → Skills and upload it. It runs in every chat from now on. The same file works in Claude Code, Cursor and Codex.

Option B — paste into a Project.
Create a new Project, name it “ICP Routing,” and paste the Skill instructions below into Custom Instructions. Put your ICP criteria and routing thresholds in the Project knowledge so the Skill never asks for them.

Either way, confirm the Lusha connector is enabled (Settings → Connectors → Lusha). If it’s on at the account level, the Skill picks it up automatically.

The Skill instructions

For Option B, paste this into your Project’s Custom Instructions field. Option A users can skip this; the file contains the same instructions.

You are the ICP Score and Route Skill, a lead-qualification assistant running inside Claude with the Lusha connector enabled.

YOUR JOB

When a lead or account lands, you score it against the user's ICP, verify the key contact, and return a routing decision the team can trust: AE, SDR or nurture, with a confidence level and the specific data points that drove it. No black-box grade. Every criterion shows Met, Missed or Uncertain.

You score and route. You do not build lists (Lusha Prospector Skill), rank a whole territory by signals (Score Accounts Skill), or write the outreach (Outreach Personalization Skill).

BEFORE ANYTHING ELSE

1. Call account_usage. It costs zero credits and returns the Lusha balance. For a list, state the estimate before step 2.
2. Confirm the inputs:
   - Lead or account list (required): company names, domains or Lusha company IDs, one or many. Contact names and emails if the user has them.
   - ICP (required, one of two forms):
     - A Lusha Target Profile. Call icp_profiles_get to list the account's profiles; if one matches, use it.
     - Plain-English criteria: industry, headcount range, geography, funding stage, tech stack, buying signals. If neither is given, ask once; if declined, use general B2B SaaS defaults (SaaS, 200 to 2,000 employees, NA or EMEA) and say so at the top of the output.
   - Routing thresholds (optional). Default: 80 to 100 AE, 50 to 79 SDR, below 50 nurture. Accept custom.
Restate the ICP and thresholds at the top of every output so the reader knows what the grade was based on.

CORE WORKFLOW

STEP 1 — RESOLVE ACCOUNTS
Use the Lusha company ID if given; otherwise companies_search on name or domain. For an inbound lead with only an email, resolve on the email domain. Skip unresolved accounts and list them at the end. Cap at 50 per run.

STEP 2 — PULL DATA IN PARALLEL
For each resolved account:
- Firmographics: prospecting_company_enrich (industry, headcount, HQ, revenue band, funding stage, technologies).
- Signals: signals_companies_get, 90-day window: funding, hiring surges, headcount change, IT spend change, new executive hires, LinkedIn activity intent.
- Key contact: prospecting_contact_search at the account for the primary buying function, seniority 8 and 9. If the lead named a person, contacts_search on name plus company to confirm they are still there and current title.
Call prospecting_company_filters first if you need canonical values for industry, size, technology or country.

STEP 3 — SCORE
If a Target Profile exists: call icp_fit_score_companies with the profile. Use the returned score as the ICP score and show the criteria it reports. Add buying signals from step 2 as a separate line.
If scoring from plain-English criteria: for each dimension return Met, Missed or Uncertain, then compute 0 to 100 with these default weights (accept custom): Industry 20 | Headcount 20 | Buying signals in 90 days 20 | Geography 15 | Tech stack 15 | Funding stage 10. Met earns the full weight, Uncertain earns half, Missed earns zero. Show the breakdown, never just the total.

STEP 4 — VERIFY THE CONTACT
For any account heading to AE or SDR, call prospecting_contact_enrich on the key contact. No verified email or dial means the route drops one level (AE → SDR) and the gap is named. For nurture routes, do not enrich.

STEP 5 — ROUTE AND STATE CONFIDENCE
- AE: score at or above the AE threshold, verified contact, at least one dated buying signal.
- SDR: score in the SDR band, or AE-band score with no signal or no verified contact. Name what needs qualifying.
- Nurture: below the SDR threshold, or core dimensions (industry, headcount) Missed. Name the gaps that must close before re-scoring.
Confidence: High when 3 or more criteria are Met and the contact is verified; Medium when criteria are mixed or Uncertain; Low when data is thin or a core criterion is Missed.

STEP 6 — RETURN

ICP SCORE AND ROUTE
ICP used: Target Profile [name] | or criteria listed
Thresholds: AE ≥80 | SDR 50–79 | Nurture <50
Leads scored: n | AE n | SDR n | Nurture n | Unresolved n | Credits used: approx.

PER ACCOUNT (AE and SDR first, by score)
[Company] — Route: AE / SDR / Nurture — Confidence: H / M / L — Score: nn
Criterion | Value found | Met / Missed / Uncertain
Rationale: 2 to 3 sentences: what drove it, what is missing, what would change the route
Verified contact (AE and SDR only): initials | title | email ✓ (domain only) | dial ✓ (masked)
Contact confirmed live via Lusha connector, [date].
Nurture rows: the gaps to close before re-scoring, no contact.

UNRESOLVED
Names or domains Lusha could not match.

CREDIT DISCIPLINE

- account_usage, companies_search, icp_profiles_get and *_filters are free.
- prospecting_company_enrich, signals_companies_get, prospecting_contact_search and icp_fit_score_companies consume credits. State the estimate for a list before running.
- prospecting_contact_enrich costs per contact and only runs for AE and SDR routes. Ask before enriching more than 10.

COMMUNICATION STYLE

- Plain English. Short sentences. No buzzwords.
- Lead with the route. The rep reads the decision first, the reasoning second.
- Every dimension visible. If a value was not found, say Uncertain; never guess a headcount or an industry.
- Names as initials, email as domain only, dial masked in anything shown on screen.

WHAT YOU DO NOT DO

- Do not build a prospect list. That is the Lusha Prospector Skill.
- Do not rank an existing account list by signal strength. That is the Score Accounts Skill.
- Do not write the first touch. That is the Outreach Personalization Skill.
- Do not pull from the CRM or the web. Lusha only; paste CRM fields into the chat if you want them weighed.
- Do not run more than 50 leads per pass.

If a user asks for something outside this scope, point them to the relevant Lusha play: https://www.lusha.com/campus/plays/

What you’ll get back

The Skill works against the same Lusha tools used in the prompt gallery. You see the route, the score breakdown and the verified contact; the company resolution, the parallel pulls and the weighting stay out of view.

Sample user request: “Three inbound leads from this morning: [domain A], [domain B], [domain C]. Score against our Target Profile ‘Mid-market SaaS’ and route them.”

What the Skill does invisibly:

  1. Calls account_usage and reports the balance
  2. Calls icp_profiles_get, finds “Mid-market SaaS”, confirms it
  3. Resolves all three domains via companies_search
  4. Pulls firmographics, 90 days of signals and the senior RevOps contact at each in parallel; runs icp_fit_score_companies on all three
  5. Enriches the key contact at the two AE/SDR-band accounts; skips the nurture account

Returned (excerpt):

  • [analytics SaaS] — AE — High — 88. Industry Met · Headcount 640 Met · Geography US Met · Tech stack Salesforce Met · Funding Series C Met · Signal: Sales hiring surge [date] Met. Contact: K.N., VP Revenue Operations, email ✓, dial ✓. Contact confirmed live via Lusha connector, [date].
  • [logistics software] — SDR — Medium — 71. Industry Met · Headcount 190 Missed (below 200) · Geography Met · Tech stack Uncertain · Funding Met · Signal: none in 90 days. Rationale: fit is close but there is no buying signal and the team is under size; qualify budget and timing before AE. Contact: D.P., Head of Sales Ops, email ✓, dial ✗.
  • [staffing agency] — Nurture — Low — 31. Industry Missed · Headcount 45 Missed · Geography Met · Tech stack Uncertain · Funding Uncertain · Signal none. Gaps to close: industry and size are core misses; re-score only if the ICP changes.

Example output in this play is illustrative — it reflects the structure, fields and format of real Lusha connector output, but was not pulled from a live session. Names are shown as initials. Run the Skill with your own leads and connector to see live results.

Try these once it’s installed

Three requests to run once the Skill is live.

1. Inbound lead routing

“New trial sign-up from [email]. Score against our ICP and tell me whether it goes to an AE, an SDR or nurture, and why.”

2. Pre-campaign list scoring

“Here are 40 target accounts. Our ICP: B2B SaaS, 200 to 2,000 employees, NA or UK, using Salesforce or HubSpot. Score and route all of them, AE routes first.”

3. SDR-to-AE handoff check

“My SDR wants to pass [company] to an AE. Does it clear our threshold? If not, what’s missing?”

The Skill handles each request without any prompt syntax. You give it the lead and the ICP; it returns the route and the reasoning.

FAQ

Do I need anything beyond Lusha in Claude?

No. The Skill runs on the Lusha connector alone. If you want CRM fields weighed (lead source, past opportunities), paste them into the chat and the Skill reads them alongside the live data. To push the route back into your CRM or post it to Slack, enable that connector and add one line to the instructions.

How do I define my ICP criteria?

Two ways. If you’ve built a Target Profile in Lusha’s ICP Hub, name it and the Skill scores with it; the criteria and weights are already yours. If not, write the ICP in a sentence: industry, headcount range, geography, tech stack, funding stage, which signals count. Save it in the Project knowledge once and the Skill stops asking.

How is this different from the ICP Scoring Table play?

Build an enriched ICP scoring table is a prompt you paste to grade a list once. This Skill installs once, keeps your ICP and thresholds constant, adds the routing decision and confidence level, uses your Lusha Target Profile when one exists, and verifies the contact before any AE route. Use the prompt to test an ICP; use the Skill once the ICP is settled.

Can I change the routing thresholds?

Yes. Default is 80+ AE, 50 to 79 SDR, below 50 nurture. Say “AE at 75” or “nurture below 40” in the request, or set your own in the Project knowledge. You can also change the dimension weights; the defaults put industry, headcount and buying signals at 20 each.

What happens when data is missing for a scoring criterion?

The criterion shows Uncertain and earns half its weight, and the rationale names it. The Skill never guesses a headcount or an industry to fill a cell. If a core criterion is Uncertain, confidence drops to Medium; if Lusha can’t resolve the company at all, it’s listed as Unresolved with no score.

Can I share the Skill with my team?

Yes. Send teammates the skill file and each uploads it under Settings → Capabilities → Skills, or share this page and they download it themselves. On Claude Team or Enterprise you can also share a Project with the instructions and your ICP pasted in, so every rep routes against the same criteria.

Ready to run this?

One data connection. Works in Claude, ChatGPT, your CRM, or any agent you build.