skills/sales-lead-score/SKILL.md
Designs, weight, and tune a lead scoring model for your sales funnel. Use when scores don't predict conversion, MQL/SQL threshold feels arbitrary, reps ignoring lead scores because they're inaccurate, too many unqualified leads passing to sales, or not sure which signals actually matter. Do NOT use for reading existing buying signals (use /sales-intent), building prospect lists (use /sales-prospect-list), or marketing-to-sales handoff process design (use /revops).
npx skillsauth add sales-skills/sales sales-lead-scoreInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Help the user design, weight, and tune a lead scoring model — from defining scoring dimensions and assigning point values through setting MQL/SQL thresholds and implementing in their tools. This skill is tool-agnostic and applies to any CRM (Salesforce, HubSpot), MAP (Marketo, Pardot), or enrichment provider (Apollo, ZoomInfo, Clearbit).
If references/learnings.md exists, read it first for accumulated knowledge.
Ask the user:
What do you sell?
What's your sales motion?
What tools do you use?
Current scoring situation?
What does your funnel look like today?
If the user's request already provides most of this context, skip directly to the relevant step. Lead with your best-effort answer using reasonable assumptions (stated explicitly), then ask only the most critical 1-2 clarifying questions at the end — don't gate your response behind gathering complete context.
Build a scoring model across four dimensions. Default weights are a starting point — tune based on your sales motion.
Score how well the individual matches your buyer persona.
| Attribute | High score | Medium score | Low/negative score | |---|---|---|---| | Job title | Exact ICP title match (e.g., VP Engineering) | Adjacent title (Director of Engineering, Head of Platform) | Unrelated title (HR Manager when selling to Engineering) | | Seniority | Decision-maker level for your product | Influencer level | Too junior to buy or influence | | Department | Primary buying department | Adjacent department | Unrelated department | | Job function | Direct match to problem you solve | Related function | No relevance |
Example point values (25 points max):
Score how well the company matches your ICP.
| Attribute | High score | Medium score | Low/negative score | |---|---|---|---| | Company size | Sweet spot (e.g., 100-500 employees) | Adjacent range (50-100 or 500-1000) | Way outside range | | Industry | Primary target industry | Adjacent industry | Industry you don't serve | | Revenue | Revenue range that matches your pricing | Adjacent range | Can't afford your product | | Geography | Primary market | Serviceable market | Unsupported region | | Tech stack | Uses complementary technology | Neutral tech stack | Uses competing product (could be positive for displacement) |
Example point values (25 points max):
Score what the lead is doing — this is the most predictive dimension for most teams.
| Signal | Points | Decay | |---|---|---| | Requested demo/trial | 15 pts | None — this is a hard conversion event | | Pricing page visit | 10 pts | Decays to 5 after 14 days | | Multiple website visits (3+ in 7 days) | 8 pts | Decays to 4 after 14 days | | Content download (ebook, whitepaper) | 5 pts | Decays to 2 after 30 days | | Email engagement (open + click) | 3 pts per engagement | Decays to 0 after 30 days | | Webinar/event attendance | 8 pts | Decays to 4 after 30 days | | Intent data — researching your category | 10 pts | Decays to 5 after 14 days (intent is perishable) | | G2/review site comparison views | 8 pts | Decays to 4 after 14 days |
For PLG/product-led motions, add product usage signals:
| Signal | Points | Decay | |---|---|---| | Signed up for free tier/trial | 10 pts | None | | Completed onboarding | 8 pts | None | | Hit usage threshold (e.g., 100 API calls, 5 team members) | 15 pts | None | | Invited team members | 10 pts | None | | Used premium feature (paywall hit) | 12 pts | Decays to 6 after 30 days | | Daily active usage (5+ days in last 14) | 10 pts | Rolling — recalculated weekly |
Score recency and urgency signals.
| Signal | Points | Decay | |---|---|---| | New in role (<90 days) | 10 pts | Decays to 5 after 90 days, 0 after 180 | | Recent funding | 8 pts | Decays to 4 after 90 days | | Hiring for roles your product supports | 6 pts | Decays to 3 after 30 days (job postings are time-sensitive) | | Company growth (20%+ headcount in 6 months) | 5 pts | Decays to 2 after 90 days | | Competitor contract renewal window | 10 pts | Decays to 0 after the window passes |
| Motion | Demographic | Firmographic | Behavioral | Timing | |---|---|---|---|---| | Inbound-led | 20% | 20% | 40% | 20% | | Outbound-led | 25% | 30% | 20% | 25% | | PLG | 15% | 15% | 50% | 20% | | Enterprise/ABM | 25% | 25% | 25% | 25% |
Start with these defaults, then tune based on conversion data:
| Threshold | Default | What it triggers | |---|---|---| | MQL (Marketing Qualified Lead) | Top 20% of scored leads | Marketing nurture intensifies, SDR notification | | SQL (Sales Qualified Lead) | Top 5% of scored leads | SDR outreach, AE handoff, or sales follow-up | | PQL (Product Qualified Lead, PLG only) | Usage threshold + firmographic fit | Sales outreach to active free users |
How to set initial thresholds:
Behavioral signals lose relevance over time. Implement decay to prevent score inflation:
Subtract points for disqualifying signals:
| Signal | Points | |---|---| | Unsubscribed from emails | -20 pts | | Competitor employee | -50 pts (or auto-disqualify) | | Student/educational email (.edu) | -30 pts | | Personal email (gmail, yahoo) for B2B product | -10 pts | | Job title contains "intern" or "student" | -20 pts | | Company size way below minimum | -15 pts | | Bounced email | -10 pts | | Marked as "do not contact" | Auto-disqualify |
For platform-specific scoring setup (GetResponse, Kit, Clearbit, Clay, RB2B, 6sense), see references/platforms.md.
Before going live:
Every month, review:
| Symptom | Cause | Fix | |---|---|---| | Too many MQLs, sales ignores them | MQL threshold too low | Raise threshold, add more behavioral weight | | Too few MQLs, pipeline starving | Threshold too high or scoring too restrictive | Lower threshold, check if firmographic filters are too narrow | | High-score leads don't convert | Demographic fit overweighted, behavioral underweighted | Increase behavioral weight, add decay to stale signals | | Score inflation over time | No decay rules, points only go up | Implement decay on all behavioral signals | | Model works for inbound, not outbound | Model only has behavioral signals | Add firmographic and timing dimensions | | Sales and marketing disagree on MQL definition | Model built without sales input | Co-create thresholds with sales leadership, review monthly |
Every quarter:
Don't weight demographics too heavily. Claude defaults to giving 50%+ weight to title/seniority because it's easy to match. But behavioral signals (what they're doing) are more predictive than demographics (who they are). Start with at least 30% behavioral weight.
Don't skip negative scoring. A lead can have a perfect title at a perfect company but be a student, a competitor, or already unsubscribed. Negative scores prevent false positives that waste sales time and damage your credibility with the sales team.
Don't set static thresholds and forget them. Scoring models drift as your ICP evolves and market conditions change. A model that was calibrated 6 months ago may be surfacing the wrong leads today. Review and recalibrate quarterly using actual conversion data.
Don't build the model in isolation. Sales and marketing must agree on MQL/SQL definitions. A scoring model that marketing builds without sales input leads to "bad MQLs" complaints and erodes trust. Co-create with sales leadership and review together monthly.
Self-improving: If you discover something not covered here, append it to references/learnings.md with today's date.
This skill covers a strategy domain across many platforms. Before pointing the user to any specific platform skill (any /sales-{platform} listed in ## Related skills, e.g., /sales-mailshake, /sales-klaviyo, /sales-apollo), read that platform skill's actual SKILL.md first. The 1-line description in ## Related skills is enough to identify a candidate — it's not enough to commit to it or to write a prompt that invokes it well.
How to read it:
~/.claude/skills/{skill-name}/SKILL.md exists locally, Read it.sales-* skills, WebFetch directly from this repo: https://raw.githubusercontent.com/sales-skills/sales/main/skills/{skill-name}/SKILL.md — e.g., for sales-mailshake: https://raw.githubusercontent.com/sales-skills/sales/main/skills/sales-mailshake/SKILL.md.sales-* skills (third-party), look up {org}/{repo} in ~/.claude/skills/sales-do/references/skill-sources.md if installed and fetch the same skills/{skill-name}/SKILL.md path under that repo.After reading, ground your recommendation in something concrete from the SKILL.md (its scope, a sub-flow, its argument-hint shape, or a "Do NOT use for..." negative trigger). Align any generated invocation with the platform skill's argument-hint. If the platform skill turns out not to fit the user's situation, swap to another or handle the question here directly rather than recommending a poor fit.
/sales-intent — Read buying signals that feed into your scoring model/sales-prospect-list — Build prospect lists to score/sales-enrich — Enrich leads with the demographic/firmographic data you need to score/revops — Design the broader marketing-to-sales handoff process around your scoring model/sales-apollo — Set up Apollo's native scoring features/sales-activecampaign — ActiveCampaign platform help (contact scoring, deal scoring, automation-based scoring with threshold triggers)/sales-clearbit — Clearbit platform help (enrichment for scoring, Reveal for behavioral signals, Breeze Intelligence in HubSpot)/sales-rb2b — RB2B platform help (person-level visitor identification for scoring triggers, Hot Pages, real-time CRM integration)/sales-6sense — 6sense platform help (AI-driven predictive scoring, 6QA qualification, Signalverse intent for behavioral scoring)/sales-getresponse — GetResponse platform help (contact scoring, automation-triggered scoring, engagement-based scoring)/sales-clay — Clay platform help (enrichment waterfall for scoring, Claygent for custom signals, Sculptor for scoring logic)/sales-do — Not sure which skill to use? The router matches any sales objective to the right skill. Install: npx skills add sales-skills/sales --skill sales-doUser says: "Help me build a lead scoring model for our B2B SaaS product. We're inbound-heavy, $50K ACV." Skill does:
User says: "Our MQL-to-SQL conversion rate is 8%. Our scoring model isn't working." Skill does:
User says: "We're a PLG company. How should product usage signals factor into lead scoring?" Skill does:
Cause: MQL threshold is too low, or the model overweights demographic fit without behavioral validation Solution: Review the last 50 MQLs that sales rejected. Look for patterns — are they the wrong persona? Right persona but not engaged? Adjust the dimension that's causing false positives. Often the fix is adding a minimum behavioral score requirement on top of the overall threshold.
Cause: No decay rules, points only accumulate, never decrease Solution: Implement decay on all behavioral signals (14-day for intent, 30-day for content, 90-day for timing). Run a one-time score recalculation after implementing decay.
Cause: One-size-fits-all model doesn't account for segment-specific buying patterns Solution: Consider separate scoring models for distinct segments (enterprise vs SMB, inbound vs outbound). At minimum, adjust firmographic fit scoring to not penalize enterprise leads for different engagement patterns (they visit fewer pages but have higher deal sizes).
tools
UpViral platform help — viral referral marketing and list-building platform (by Emarky) for viral sweepstakes, giveaway/reward campaigns, pre-launch waiting lists, and milestone referral programs, with REST API (app.upviral.com/api/v1/), callback-URL webhooks, PHP SDK, fraud detection (IP-based suspicious-referral flagging), A/B testing, smart leaderboards, unlockable incentives, and 30+ native ESP/CRM integrations (Mailchimp, ActiveCampaign, ConvertKit, AWeber, HubSpot, Klaviyo, Intercom) plus Zapier/Make/Pipedream/Integrately/Pabbly. Use when UpViral campaigns aren't tracking referral points correctly, deciding between Starter $79/mo annual (10K leads, 1 brand, NO API) vs Business $119/mo (25K, 2 brands, API + webhooks unlocked) vs Premium $319/mo (100K, 5 brands, dedicated account manager), the API returns errors because you're on the Starter tier where API/webhooks are gated, building an UpViral→CRM or UpViral→data-warehouse pipeline with add_contact / get_leads / get_leads_points / add_points / get_custom_fields / lists methods (uvapikey + uvmethod form-encoded POST), interpreting fraud flags where same-IP referrals get marked suspicious and you must manually activate/delete/blacklist, setting up the Callback URL (webhook) to fire on reward-unlock events, Zapier New Lead / New Reward Unlocked triggers not firing, ClickFunnels/Shopify/funnel-builder integration breaking, the drag-and-drop page builder showing broken widgets or limited customization, the setup feeling long and complicated for your first campaign, or picking UpViral over Viral Loops / KickoffLabs / Vyper / Prefinery / Gleam / KingSumo / ShortStack for a viral campaign. Do NOT use for general newsletter audience growth strategy across all platforms (use /sales-audience-growth), newsletter monetization (use /sales-newsletter), KickoffLabs-specific help (use /sales-kickofflabs), no-code merge-tag newsletter referrals (use /sales-referralkit), SparkLoop paid recommendations (use /sales-sparkloop), or full-stack multi-level Level-1/2/3 referral/affiliate tracking (use /sales-referralhero).
development
ReferralHero platform help — full-stack referral, affiliate, waitlist, contest, and NPS platform with subscriber API, webhooks, Zapier, Mailchimp/Kit/AWeber/Klaviyo/ActiveCampaign/SendLane connectors, coupon codes, multi-level referral tracking (Level 1/2/3), anti-fraud, and 5,000 calls/hour rate limit. Use when ReferralHero campaigns aren't tracking referrals correctly, deciding between PRO $199/mo (10K members, includes API + webhooks) and PREMIUM $399/mo (50K members, adds ReCaptcha + SMS verification), authentication is failing with no_token or X-API-Key header is being ignored, multi-level referral counts (Level 2/3) aren't appearing for downline subscribers, coupon group endpoints return 404 or coupon arrays max out, hitting the 5,000 calls/hour soft limit and getting too_many_calls 429s, the Mailchimp/Kit native integration is double-adding subscribers, webhook payloads aren't firing on confirmation events, importing Stripe customer IDs through transaction tracking, generating reward fulfillment when subscribers cross milestone thresholds (promote/unlock_promoted_reward), comparing ReferralHero against SparkLoop/ReferralKit/Viral Loops/GrowSurf/KickoffLabs for referral marketing, or routing referral data via add_bulk_transactions (500-transaction batch limit). Do NOT use for general newsletter audience growth strategy (use /sales-audience-growth), general newsletter monetization (use /sales-newsletter), no-code newsletter-only referral with merge-tag insertion (use /sales-referralkit), SparkLoop's paid recommendations or partner network (use /sales-sparkloop), or affiliate program strategy across many platforms (use /sales-affiliate-program).
tools
KickoffLabs platform help — viral marketing platform for pre-launch waitlists, bonus-entry giveaways, milestone-reward referral programs, leaderboard giveaways, and email opt-in bribes with REST API v1 + v2, server-side webhooks (in/out), KOL.js JavaScript library, AnyForm script for custom pages, fraud detection (duplicate_ip / bounced / duplidate_email flags), SMS verification add-on, native ESP integrations (Klaviyo, Mailchimp, ActiveCampaign, Brevo), website builders (Webflow, Wix, Squarespace, Weebly), Shopify, Facebook Audiences, Slack, Zapier. Use when KickoffLabs viral campaigns aren't tracking referrals correctly, deciding between Hobby $13/mo annual (500 leads/mo no A/B no reward emails) vs Premium $48/mo (2.5K + A/B + reward emails + tracking pixels) vs Business $99/mo (10K + custom email templates + custom domains + advanced reporting + 3 team) vs Enterprise $202/mo (25K + 5 team + SMS included), API key getting rejected because you embedded it in client-side JavaScript instead of server-side, can't decide whether to use v1 /subscribe vs v2 /tags/:TAG_ID/lead for lead creation, webhook payloads firing with `__fraudulent` flag and you need to interpret the duplicate_ip/bounced/duplidate_email reason codes (yes, duplidate is spelled that way in their docs), AnyForm script not posting to KickoffLabs vs native API endpoint, leaderboard endpoint returning more than 50 leads is not allowed, social_id (kid in share URLs) attribution chain breaking between v1 and v2, contest score vs lead count metrics in the webhook payload are confusing, SMS Verification only available on Premium+ as $50/mo add-on (Enterprise includes), per-month lead cap auto-upgrades at $8 per 1000 overage leads, picking between KickoffLabs and Viral Loops / UpViral / Prefinery / ReferralCandy / Voucherify for viral campaign type fit, or rate limit per tier (10-100 calls/minute) is hitting on bulk imports. Do NOT use for general newsletter audience growth strategy (use /sales-audience-growth), general newsletter monetization (use /sales-newsletter), no-code merge-tag-only newsletter referrals (use /sales-referralkit), SparkLoop paid recommendations + partner network (use /sales-sparkloop), or full-stack referral/affiliate with multi-level Level-1/2/3 tracking (use /sales-referralhero).
development
Routes any sales, marketing, ad, or GTM objective to the right specialized skill and outputs the install command for that skill plus a ready-to-paste prompt packed with the user's context. Asks clarifying questions when the objective is ambiguous, then hands back a copy-paste-runnable next step. Covers prospecting, outbound cadences, deals, proposals, forecasting, deliverability, enrichment, intent, content, coaching, CRO, SEO, launch directories, newsletters, email/SMS/push marketing, chatbots, influencer marketing, social media, employee advocacy, media relations, reviews, data hygiene, B2B advertising, retargeting, affiliate, loyalty, digital products, memberships, webinars, checkout, and platform-specific help. Use when the user has a sales or marketing question and isn't sure which skill to use, or wants a multi-skill sequence with a batch install command. Do NOT use to solve problems directly — this skill only routes.