Skip to main content

Playbook

ICP Filtering for Deanonymized Visitors: A Practical Guide

Quick answer
Filter deanonymized visitors in four layers, in order: strip the noise (bots, your own team, ISPs, job seekers), apply a firmographic fit floor, exclude customers, open deals and competitors, then require a high-intent page view before anything reaches a rep. Pick the tool first from the best visitor identification tools.

Why do deanonymized visitors need an ICP filter?

Because identification is indiscriminate and reps are not. A visitor identification tool names every company and person it can match, including students, job seekers, vendors, competitors and your own customers, and it has no idea which of them you sell to. The filter is what turns that list into a queue a rep will actually work.

The cost of skipping it is not only wasted time. An alert channel that is mostly noise trains reps to stop reading it, and then the one pricing-page visit from a perfect-fit account sits unread with the rest. Harvard Business Review (Oldroyd, McElheran and Elkington, March 2011) reported an average first response to a web lead of around 42 hours; a filtered stream is how an identified visit gets answered in minutes instead. The routing behind that is in what to do with a deanonymized visitor.

Cite this

An ICP filter on identified visitors should require every fit criterion to match, not one of several. RB2B's own guidance is that a Hot Leads tag requiring only one of four criteria lets too many visitors through, and that non-ICP leads still reaching your tools mean the matching threshold needs to require more criteria.

RB2B Help Center, Quieting the Noise: How to Filter for Relevant Leads in RB2B (May 2026)

What are the four layers of an ICP filter?

Noise, fit, relationship and intent, applied in that order so each layer works on a smaller, cleaner set than the one before it.

LayerWhat it removesWhere it runsWhat happens to a fail
1. NoiseBots, your own team, ISP and hosting matches, universities, job seekersIdentification toolDiscarded
2. Fit floorCompanies outside your industry, size, region and revenue bandsIdentification toolLogged for reporting
3. RelationshipCustomers, open opportunities, competitors, partnersCRM status, read by the toolRouted to the owner or suppressed
4. IntentFit accounts that only read the blog or bouncedIdentification toolNurture, promoted on the next high-intent visit

How do you build each filter layer?

Layer 1: Strip the noise

Remove the traffic that is not a buyer at all before you spend any thought on fit. Start with bots. Google Analytics excludes known bots and spiders automatically using Google research and the IAB International Spiders and Bots List, per its known bot-traffic exclusion note, so a gap between your analytics traffic and your identification tool's volume is a hint that the tool is counting visits analytics already threw away. Then exclude:

  • Your own domain, plus agencies and contractors who work on your site.
  • ISP, hosting and VPN matches. A company-level match that resolves to a telecom, a cloud provider or a coworking operator is the network, not the buyer.
  • Universities and government, unless you sell to them. Warmly's setup guide lists excluding universities or government traffic among its common segment criteria.
  • Job seekers and students, identified by behavior: a session that is only careers pages. Warmly's segments guide names filtering out job seekers and students based on page views as a standard first-party segment.

Layer 2: Apply a firmographic fit floor

Set the floor from your closed-won deals, not from the persona deck: the industries, employee bands, HQ regions and revenue bands that actually bought. The method is in validating your ICP with closed-won data. Require every criterion. In RB2B that means setting the Hot Leads tag to require all conditions, per its filtering guide; in Warmly it means a Target Customer Profile segment built on industry, company size, location and revenue, with separate segments for each internal tier (enterprise, mid-market, SMB) if your reps are split that way. Affiliate links.

A firmographic floor is necessary, not sufficient. It tells you a company could buy, not that it has the problem you solve. Treat it as a gate, then let pain-first ICP scoring rank what clears it. Why fit alone caps conversion is covered in firmographic vs pain-based ICP.

Layer 3: Exclude existing relationships

A customer reading your docs or an open opportunity revisiting pricing is real intent, but it is not a net-new lead, and a cold sequence to either does damage. Read relationship status from the CRM, which is the source of truth for it. Warmly's CRM Company segments filter on account status, ownership and lifecycle stage, including a "no customers or active/open deals" segment built with an "is none of" condition, per its segments guide. Exclude:

  • Customers, routed to the account owner as an expansion or risk signal, never alerted as new.
  • Open opportunities, routed to the deal owner, who wants to know the buying committee is back on pricing.
  • Competitors and partners, suppressed entirely.

Closed-lost accounts are the exception: keep them in, flagged, because a lost deal returning to your site is one of the clearest re-engagement signals you get. The scoring version of these exclusions is in negative keywords and disqualifiers in your ICP.

Layer 4: Gate on intent

Fit tells you who; intent tells you when. Only a fit account that viewed a high-intent page should reach a rep in real time: pricing, demo or contact, integrations, head-to-head comparisons, or a form page abandoned without submitting. Warmly lists high-intent page visits, a no-form-fill segment and a minimum session time as common first-party segments. Blog-only sessions from fit accounts go to nurture and are promoted the next time they hit one of those pages. The tiering and enrollment rules that follow the gate are in deanonymized visitor outreach automation.

Should you filter in the identification tool or in the CRM?

Both, for different jobs: filter noise, fit and intent in the tool where alerts fire, and read relationship status from the CRM. The rule that keeps this clean is one-way: only what clears all four layers is written back to the CRM as a new record. RB2B's guide makes the same point from the tool side, recommending you send only Hot Leads to your CRM, email platform and Slack rather than every identified visitor. A CRM filled with unfiltered visitor records is a CRM data quality problem you created on purpose.

Does the filter change for person-level identification?

Yes: person-level matches add a persona layer and a region rule. With a named person you can also filter on title, department and seniority, so a fit account whose visitor is an intern does not page a rep; Warmly applies Buyer Persona segments to its visitor list and Slack channels for exactly this. Region matters more too: the site default is US traffic opt-out, rest of world opt-in, and EEA, UK and Swiss traffic kept company-level only. The trade-offs are in person-level vs company-level identification. Nothing here is legal advice; confirm the posture with counsel.

How do you know the ICP filter is working?

Ask the reps, then check the numbers. Review what the filter let through every week for the first month, then quarterly. Four measures cover it:

  • Pass rate by layer: the share of identified visits each layer removes. A layer that removes nothing is probably misconfigured.
  • Rep rejection rate: the share of alerts a rep marks as not a fit. Every rejection names a missing exclusion.
  • Meetings from the filtered stream: the outcome the whole filter exists for.
  • Fail-log review: what the fit floor is rejecting. A new segment appearing there repeatedly is a candidate for the ICP, not more noise.

What are the most common ICP filtering mistakes?

MistakeWhat it costs youThe fix
OR logic across fit criteriaMost visitors qualify and the channel floodsRequire every criterion; use OR only inside one criterion
ICP written from the persona deckThe filter passes companies that never buyBuild the floor from closed-won deals
No CRM status checkCustomers and open deals get cold sequencesExclude on lifecycle stage and open opportunities
Fit with no intent gateReps chase blog readersRequire a high-intent page for real-time alerts
Deleting what failsNo way to spot a new segmentLog fit failures and review them quarterly

Where Artemis GTM fits

Artemis GTM is an AI GTM engineering firm that builds GTM systems; it is not a data vendor. In an engagement it writes the fit floor from your closed-won data, builds the noise and relationship exclusions, sets the intent gate, wires the filtered stream into Slack and your CRM, and reviews what gets through until reps trust the channel. Everything stays in your own identification tool, CRM and Slack; Artemis GTM holds no visitor data and resells none.

Frequently asked questions

How do you filter deanonymized visitors to your ICP?

Run four layers in a fixed order. First strip the noise: bots, your own domain, ISP and hosting matches, universities and job seekers. Second, apply a firmographic fit floor built from closed-won deals, with every criterion required. Third, exclude relationships that should never get a net-new alert: customers, open opportunities, competitors and partners. Fourth, gate on intent, so only a pricing, demo, contact, integrations or comparison visit reaches a rep and the rest goes to nurture.

Should ICP criteria use AND or OR logic?

AND, for the fit floor. RB2B's own guidance is that a Hot Leads tag requiring only one of several criteria lets too many visitors qualify, and it recommends requiring all conditions. Use OR only inside a single criterion, such as a list of target industries or a set of size bands, never across criteria.

Should you filter in the identification tool or in the CRM?

Both, for different jobs. Filter noise, fit and intent in the identification tool, because that is where alerts fire and an unfiltered alert is the one that trains reps to ignore the channel. Read relationship status (customer, open deal, owner) from the CRM, because the CRM is the source of truth for it; Warmly, for example, segments on CRM lifecycle stage and open deals directly. Write back to the CRM only what has cleared all four layers.

What should happen to visitors who fail the ICP filter?

Log them, do not delete them. A fit account with light intent goes to a nurture list and is promoted on its next high-intent visit. A visitor who fails the fit floor is kept for reporting, so you can see whether a new segment is showing up on your site before you add it to the ICP. Only noise (bots, your own team, ISPs) is discarded outright.

What does Artemis GTM set up for ICP filtering?

It writes the fit floor from your closed-won data, builds the noise and relationship exclusion lists, sets the intent gate on your highest-intent pages, wires the filtered stream into Slack and your CRM, and reviews what the filter lets through until reps trust it. All of it is built inside your own identification tool, CRM and Slack during an engagement; Artemis GTM holds no visitor data and resells none. The scope comes from an evaluation call, and prices are published at artemisgtm.ai/pricing/.

Sources & References

Not ready for an engagement?

If identified visitors that never get filtered down to buyers is the gap, the free guides let you price it in your own numbers before anyone builds anything. Start with the seven revenue leaks, then read The Engine Room to watch the systems getting built.

Done for you

Want this built inside your stack?

Artemis GTM is an AI GTM engineering firm that builds and runs outbound and inbound GTM systems for seed to Series C B2B startups, hands-on, in three to six months, with its own agent architecture, then hands the systems over. One evaluation call and a written scoping note. Prices for both options are published on the pricing page.

Book an evaluation

Not ready for an engagement? Read The Engine Room, the build notes from inside the firm.

Your go-to-market needs real systems.

Artemis GTM builds and runs outbound and inbound GTM systems inside your stack with its own agent architecture. Start with one evaluation call: a written scoping note follows, and prices for both options are on the pricing page.

Or read the guides first