Every list you have ever built was made by a filter. Seniority director or above, headcount 50 to 500, industry software, geography DACH — run it and you get rows. What the filter never tells you is which row deserves a hand-written message on Tuesday morning and which should get a profile view instead. ICP scoring answers that second question.
The distinction is mechanical. A filter is boolean and runs before the list exists: it decides who is in. A score is graded, runs per lead, and decides who goes first and who gets the expensive personal touch. One produces a set, the other an order. Most LinkedIn tools only ever built the first, which is why teams still rank by hand — an export, a highlighter, one rep's memory of which logos matter.
The gap shows up in the software. Nearly every LinkedIn sender can branch a sequence on whether a prospect is connected; almost none can branch on how well that prospect fits your ideal customer profile. One cause explains both: a sender reacts to events it caused, and grading a person needs data it never held.
A Filter Decides Who Is In. A Score Decides Who Goes First.
Filters are useful because they are blunt: a boolean matches or it does not. It is also lossy. Write headcount 50 to 500 and the 51-person company and the 480-person company become the same company, while the 520-person company that would have been your best customer disappears without a trace.
What a filter can express
Membership, and nothing else. A filter cannot express degree, and it cannot express a trade-off: wrong industry, perfect role, commented on your post last week. It cannot express confidence either, so a data provider's guessed headcount and a title read off the profile count as equally true. And because it runs before the list exists, the near-misses are invisible: a filter does not produce any.
Lead filters vs lead scoring, side by side
The lead filters vs lead scoring argument settles quickly when the two are laid out by property rather than feature name.
| Property | Lead filter | ICP score (0-100) |
|---|---|---|
| What it outputs | A set — in or out | A number on every lead in the set |
| When it runs | Before the list exists | After, once per lead |
| Handles badly | Degree, trade-offs, uneven data | Hard exclusions and do-not-contact rules |
| Typical failure | Silent rejections you never see | A number nobody acts on |
| Decides | Who you may contact | Who goes first, and with how much effort |
They are complements, not rivals. Hard rules belong in the filter, where a boolean is exactly right: current customers, open opportunities, countries you cannot sell into, competitors. What survives is a matter of degree, and degree is what a score is for.
Sales Navigator Filters Are the Canonical Filter Surface
Sales Navigator filters are the reference implementation, and most of the industry's mental model of targeting came from them: dozens of facets, boolean search, saved searches, CRM exclusions. The Sales Navigator lead generation playbook covers the syntax and the alerts worth setting; this post starts where the filter returns.
What returns is a set, ordered by LinkedIn's notion of relevance rather than yours. Two thousand matches arrive as equals, a rep works them from the top, and the best account gets the same connection note as the worst.
Where the filter surface runs out
- Degree is missing. Everyone who matched, matched. There is no facet for "closer to our three best customers than the rest."
- Your own evidence is missing. The filters do not know who commented on your post last week or which account your founder met in March.
- Fields are uneven. Headcount and industry are solid for some companies and inferred for others; a filter treats an inference and a fact identically.
- The negative work is the good part. Removing current customers, live deals and accounts another rep owns is the highest-value filtering you will do, and the job you should never hand to a score.
None of that makes filters wrong. It makes them the first of two steps, and most teams stop there.
Why Most LinkedIn Tools Cannot Rank a List
Open almost any LinkedIn automation tool and the sequence builder offers conditions. On our comparison matrix, conditional sequences are ticked for nine of the ten products tracked, and "if connected" for exactly the same nine. The sub-row for a 0-100 ICP score condition is ticked once.
That is a data boundary rather than a roadmap accident. "If connected" describes an event the sender produced: it sent the invitation, saw the acceptance, wrote the state down. Branching on that is bookkeeping. Grading a person is not — it needs the whole LinkedIn profile read and weighed, title through activity, and a sender that only ever stored a name, a profile URL and a sequence state has nothing to grade with.
Branching on an event is not grading a person
None of that is a criticism of the products, which are good at what they sell — volume across accounts, simplicity, control of the sending, message quality, breadth of channel. It is a criticism of what the whole category decided was in scope. Set three of them beside each other and the pattern is visible in a single row: Expandi, HeyReach and Dripify all branch a sequence, and all three branch it on the same condition.
Two of the ten columns — Lemlist and Reply.io — also list a native lead database, the closest thing in the category to the raw material a score needs; HeyReach enriches the leads you import but has no built-in database to draw from. Holding data and ranking with it remain different jobs. Across every competitor column the shape repeats: no graded ICP score to branch on, whatever else the sequence builder can condition.
What the matrix records is what vendors published as of our September 2026 check — claims, not experiments we ran. Their value is in the shape rather than any single cell: the ten columns laid out together show which rows sit empty across an entire category, which is a more durable fact than one vendor's roadmap.
What an ICP Scoring Model Is Actually Built From
A 0-100 score is not a mystery number. It is a written ICP held against the whole LinkedIn profile, with weights attached. Sendpilot computes its score from the full profile — title, seniority, industry, company size, skills, endorsements, network, experience and activity — rather than from a handful of company fields, and that is also the material any honest model needs. Keep the weights explainable and you can account for any lead's score to a skeptical rep in one sentence.
The three inputs, all read from the profile
- Company fit — is this the right company? Industry, company size and geography, read from the current employer on the profile. Build the target from closed-won accounts rather than ambition; if nothing is written down, define the ICP first.
- Person fit — is this the right person inside it? Title, seniority and function first, then the parts of the profile no company-level filter reads: the skills listed and who endorsed them, the experience section that shows whether they have lived in your category or passed through it, and the shape of their network. Two contacts at one perfect-fit account can sit forty points apart on these alone.
- Activity — is this person reachable? How recently and how often the profile posts, comments and reacts anywhere on LinkedIn — general activity, not engagement with your own posts, which stays on the intent axis. An active profile answers invitations; a dormant one absorbs them. Activity belongs in the fit score because it predicts whether the conversation can happen at all.
Intent is the axis that is deliberately not in the score. A comment on your post, a reaction to it, a reply that lands in your Unibox: that is behaviour. Sendpilot's inbound campaigns watch the post directly — point one at a post, set the Action Word a comment has to carry, and everyone who engages with that post is captured as a lead and scored against the ICP like any other. The engagement tells you they are interested; the score tells you whether they resemble your best customers. That is why capturing engagement automatically and scoring are the same project, and why treating fit and intent as separate axes keeps a grade from being read as interest.
The automation underneath is narrower than the capture, and worth knowing before you design bands around it. The trigger is the comment: when one carries your action word, Sendpilot replies to that comment in public, then sends the DM to the commenters you are already connected to. Anyone who is not a connection gets the other reply template instead, the one asking them to connect with you first, and the DM follows once they send a request and you accept it. That gate is doing useful work rather than getting in the way: the commenters who do send a request and get accepted arrive already scored, and the ones who never connect never cost you a message. A reaction is a weaker signal you can see and can score; it does not start any of this.
All of it needs fields that exist on every row. A model leaning on an attribute blank for much of your list is a coin flip with extra steps, so filling the gaps in a B2B list is the prerequisite work. In Sendpilot, enrichment runs on leads that come from its Lead Database, its Lead Extractor and its inbound campaigns — not on a CSV you upload — and scores update as new data arrives.
Weighting without fooling yourself
- Set the weights before you look at the output. Decide what company fit, person fit and activity are worth, then run the model. Tuning weights until the accounts you already liked float to the top teaches you nothing.
- Score only on attributes present for every lead. A signal that exists only for researched accounts smuggles familiarity into the score and calls it fit.
- Give something negative weight. A model that can only add points rates everything as mildly promising. Competitors, students, and titles that never hold budget should push a score down.
- Reconcile the top band monthly. Pull the highest-scoring leads and the deals that closed and see whether they overlap. When they stop overlapping, the model is stale.
The Two Ways ICP Scoring Fails
Two failure modes account for most abandoned scoring projects, and neither announces itself.
Failure one: the score is really company size
Weight headcount heavily enough and the score becomes a proxy for it. Everything else gets rounded away, and the ranking reps see is the one they would have produced by sorting the export by employee count. The tell is a top band of large logos with the wrong people inside them. The fix is a cap on how much any single attribute may contribute, not a cleverer formula — and a model that only ever saw company fields has nothing else to weigh, which is the practical argument for scoring from the whole profile.
Failure two: nobody acts on the score
The second failure is quieter and more common. The score gets computed, synced to the CRM — and every prospect still receives the same three-step sequence. A number that changes nothing downstream is decoration. Which is why scoring belongs inside the tool that sends: if it cannot be a condition on a sequence step, acting on it is manual, and manual work stops after fifty leads.
What Changes Once Sequences Branch on the Score
When the score is a condition rather than a column, the campaign changes shape. You stop running one sequence with personalization tokens and start running one campaign with a different first touch per band. The scarce resource becomes human attention, not license capacity.
| Score band | Reading | First touch | Human involvement |
|---|---|---|---|
| 80-100 | Mirrors your best customers on company, role and career | Researched connection note, then a voice note from a rep once they accept | A rep writes it |
| 60-79 | Right company, adjacent role or a thinner profile | Templated invitation with one true specific, then a value message | Reviewed, not written |
| 40-59 | Plausible on one or two dimensions | Profile view and a like on a recent post | None |
| Below 40 | Wrong shape, or excluded on purpose | Nothing, or a content-only nurture list | None |
What matters is that each band earns a different first touch and a different amount of someone's day. In Sendpilot this is a literal step type: every lead carries an AI ICP score from 0 to 100, computed from the whole profile, and a conditional step branches on it, so the top band routes to a rep-written touch and the tail to profile views and post likes. Engagement rides alongside as its own signal: a lead that came in through an inbound campaign arrives from a specific post, so a rep writing the 80-100 touch has something concrete to reference. Read how the 0-100 scoring works before designing bands; the inputs constrain the model.
A defensible reason not to message the bottom
The strongest argument for scoring is not efficiency. Every account has a sending budget — Sendpilot enforces about 25 connection requests a day per account, roughly 175 a week — and that per-account ceiling turns your list into a queue whether you manage it as one or not. Every invitation spent on a bottom-band lead is one the top band did not get that week. "We do not message below 40" is a sentence you can defend to a sales leader. "We ran out of week" is not.
The Bottom Line
Keep the filter and add the score — they do different jobs and neither substitutes for the other. Hard rules go in the filter where booleans belong: current customers, open opportunities, unsellable geographies, competitors. Whatever survives gets graded on the whole profile — company, person, network and activity — with engagement kept on its own axis so a grade is never mistaken for interest. Cap any single attribute so the score cannot collapse into headcount, and make sure a band changes the first touch. If the tool you send from cannot read the number, you have bought a report instead of a system: on our matrix, conditional sequences are near-universal and a 0-100 score condition is not, and Sendpilot's ICP Scoring is where that condition exists as a step. Then take last month's outreach and count the hand-written messages that went to leads nobody would have prioritized if the list had ever been ranked.
Where Sendpilot Fits
If the argument above describes your list, the pieces are already in one place. ICP Scoring reads the whole LinkedIn profile and returns a 0-100 fit score on every lead, whether it came from the Lead Database, the Lead Extractor or an inbound campaign watching one of your posts for comments carrying your action word. Outbound sequences branch on the score as a step, so the bands in the table above are a campaign rather than a spreadsheet, and Data Enrichment fills the blanks on Sendpilot-sourced leads so the model has something to read. Scoring is included on every plan and spends from the same monthly credit balance as enrichment, the Lead Database and the Lead Extractor — 800 credits per connected LinkedIn account per month, which is 800 on Launch, 4,000 on Growth and 20,000 on Agency — rather than a separate scoring quota. Pricing is per LinkedIn account — never per user: a solo operator starts on Launch, a small team on Growth, an agency on Agency. Start a free trial, or see /pricing for what each plan includes.
Frequently Asked Questions
What is ICP scoring and how does it differ from lead filters?
ICP scoring gives every lead a graded number, commonly 0 to 100, describing how closely it matches your ideal customer profile. In Sendpilot that number is read from the whole LinkedIn profile — title, seniority, industry, company size, skills, endorsements, network, experience and activity. A lead filter is boolean and runs earlier: it decides who is in the list at all. A filter tells you who you are allowed to contact; a score tells you who to contact first and how much human effort each lead has earned. Hard exclusions belong to the filter, every matter of degree to the score.
Do Sales Navigator filters rank leads?
No. Sales Navigator filters build a set and return it in LinkedIn's own relevance order, which bears no relationship to your revenue. Everyone who cleared your facets arrives as an equal, and nothing separates the account that mirrors your best customers from one that barely made the headcount band. Saved searches and alerts keep the set fresh, but freshness is not priority. Ranking happens after the filter returns, using data the filter never saw.
How do you score a LinkedIn lead from 0 to 100?
Read the whole profile against a written ICP, with explicit weights. Company fit asks whether this is the right company: industry, company size and geography, taken from the current employer. Person fit asks whether this is the right person inside it: title, seniority and function, then skills, endorsements, experience and network, which is where two contacts at one perfect account come apart. Activity asks whether the person is reachable at all. That is how Sendpilot computes its score, and the same inputs are what a manual model should be weighing.
Then discipline it: set weights before you see results, allow negative points for exclusions, cap what any single attribute contributes so the score cannot quietly become company size, and keep engagement — who commented or reacted on which post — as a separate signal rather than folding it into the grade.
Which LinkedIn automation tools have ICP scoring?
One column of the ten on our comparison matrix. ICP scoring and a 0-100 score condition inside a conditional sequence are ticked for Sendpilot alone; HeyReach's own guides have scoring done in a spreadsheet or GPT and pushed in afterwards, and none of Aimfox, Lemlist, Dripify, Prosp, Waalaxy, Reply.io, Expandi or Linked Helper lists a native fit score on the pages we checked — check their current feature lists before you decide. Conditional sequences themselves are near-universal, which is the point: branching on an event the sender caused is bookkeeping, while grading a person needs the whole profile read and weighed, which most senders never collect. That was the state of the rows at our September 2026 check, and it is the kind of gap a vendor can close.
Is lead scoring worth it for a small outbound team?
It is worth more to a small team than a large one, because a small team's constraint is attention rather than headcount. One operator with about 175 invitations a week to spend is running a queue, and the score sets its order. Keep it small: three inputs, explicit weights, three or four bands, one rule about what each band earns. Skip it only when the list is short enough to rank by reading; past a few hundred rows the ranking happens anyway, in whatever order the export came out.


