Skip to content
Knock2

Articles

Not every page visit is intent: how we rank leads

by John DiLoreto, CEO and Founder · 4 min read

A page visit is not a unit of intent. Someone reading your pricing page and someone reading your careers page both show up as "visited the site," and a scoring model that counts them the same will hand your reps a job applicant at the top of the queue. We changed how Knock2 ranks leads so that each workspace decides which pages mean "buying" and which mean "something else," and this is how it works and why we built it that way.

The problem: every visit counted the same

Our Inbox ranks the people and accounts a rep should contact next. Behavior is a big part of that ranking: who visited, how often, how long they stayed. The first version treated page visits as roughly interchangeable, with a short list of words (pricing, demo, contact) that boosted a visit. That works until it meets a real site.

Careers pages are the clearest case. Hiring pages draw steady, engaged traffic, often from the exact companies you would love to sell to, and none of it is buying intent. A candidate reading three job descriptions for ten minutes looked like our most engaged visitor of the week. If you have ever watched a rep chase a "hot" account that turned out to be a recruiter's pipeline, you know the cost: one wasted call, and a little less trust in the whole queue.

Two lists, owned by the workspace

Every workspace now has two lists of real pages on its own site, under Settings > Intelligence > Key Pages:

  • High intent pages: pricing, customers, talk to sales, book a demo. Visits here raise a lead's rank.
  • Low intent pages: careers, jobs, investor relations. A visit here earns no visit points and no dwell-time points, and it subtracts from the score.

Rules are path prefixes by segment. Adding /products covers /products/model-apis but not /products-old, and when two rules overlap the most specific one wins. So /products can be high intent while /products/legacy is not.

Why the lists start from your own traffic

Asking a new customer to type out their site map is a good way to get an empty settings page. Instead, the first time a workspace opens Key Pages, we look at what its visitors actually read and propose both lists. Seeding is deliberately conservative, because anything we pick is shown to the customer as "we chose this for you," so it has to be obviously right.

  • We match whole URL segments, not loose substrings. /book-a-demo and /pricing-calculator qualify. A page that merely contains "book" does not, which keeps an ebook called /inference-engineering/book from being mistaken for a sales page.
  • Anything under /blog, /docs, /guides, /events and similar is skipped for the high list. A post titled "pricing strategies" is content, not a pricing page.
  • The lists are short on purpose: a handful of high intent pages and a few low intent ones. Five pages you trust beat fifty you do not.

After seeding, the rows are the whole truth. If you remove a page, it stays removed. If you add one, it does not push the seeded pages out. Until a workspace is seeded, sensible defaults apply underneath anything added by hand, so adding one page never silently turns every default off.

The detail that took longest: whole words for low intent

High intent defaults are matched as substrings, so "pricing" catches /pricing and /enterprise-pricing. We tried the same for low intent and it was wrong in both directions. A substring match on "investor" would bury a fintech customer's /for-investors page, which is where their actual buyers land. A substring match on "jobs" would catch /blog/jobs-to-be-done. So low intent defaults only match whole path segments like /careers, /jobs and /investor-relations, and they are checked first. A visit to /careers/contact is a job seeker, not a sales lead, even though "contact" sounds promising.

What I would take from this if you are scoring leads yourself

  1. Score pages, not visits. Pick the five to ten pages on your site that a buyer reads and a non-buyer does not, and weight those. Our post on the pricing page trigger framework covers how to act on the strongest one.
  2. Give negative signals a seat. Careers, investor relations and support login traffic should lower a score, not just fail to raise it.
  3. Make signals expire. A pricing visit from last quarter is not a pricing visit today. See intent signal decay vs. expiration.
  4. Let the page lists live outside the code. The people who know which pages matter are on the revenue team, not in engineering. Ours are editable settings for that reason.

If you are also deciding what deserves a Slack ping, the same logic applies to alerts. We wrote up a no-noise approach to Slack alerts for website visitors, and the page lists above are the cheapest filter in it.

FAQ

Does a low intent visit hide the lead?

No. The lead is still identified and still visible. The visit just stops adding to its rank and counts against it, so a real buying signal on another page still wins.

Can I change the lists after they are seeded?

Yes. Add or remove pages any time in Settings > Intelligence > Key Pages. Your edits are kept, and we do not re-seed over them.

What if my site has no traffic yet?

Defaults apply until there is enough traffic to propose a list, and seeding is retried the next time you open the page.

Want your inbox ranked by pages that signal buying, not just activity? See how Knock2 plans work.