Lead scoring is one of those things every growth-stage company says they want and almost none actually have working correctly. The version most teams end up with is a manually-maintained points model in their CRM that a sales manager set up 18 months ago and no one has updated since the ICP changed. There is a better version that uses actual conversion outcome data and does not require a data science team or a machine learning budget.
Why manual lead scoring consistently breaks down
A manually maintained points model assigns values like: job title matches ICP equals 20 points, company size in range equals 15 points, pricing page visited equals 25 points. These weights are guesses made by whoever configured the CRM. They are not validated against actual deal outcomes. In practice, the weights assigned rarely match what the data shows actually predicts conversion. I have reviewed lead scoring models at five companies over the past year and in every case the weights were optimised for the ICP that leadership believed in, not the ICP that actually closed. Pricing page visits were consistently underweighted because the model builder thought firmographic fit mattered more. In the actual pipeline data, pricing page visits at session two or three were the single strongest behavioural predictor of conversion in three of those five accounts. The manual model is confident and wrong in a compounding way.
The data you need before you build a model
Before any scoring model, you need clean historical data: a minimum of 200 leads, at least 40 of whom converted to customers, with consistent field population. The fields that matter for a basic model: lead source, role level, company size, which pages were visited before converting (landing page, product, pricing, case study), number of sessions before conversion, time from first visit to conversion, and whether they engaged with email sequences. If your CRM does not have behavioural data — page visits, session count — you need to connect GA4 session data to your CRM records via the GA4 client_id join. Without behavioural data you are scoring purely on firmographics, and firmographics are consistently weaker predictors than behaviour. A mid-market company that has visited the pricing page three times is a better lead than a large enterprise that submitted a demo request once and never returned.
Building the model with the tools you already have
With 200-plus leads and the fields above, I use one of two approaches. If there is a data analyst: HubSpot's AI predictive lead scoring for HubSpot customers, or a logistic regression in Python using scikit-learn trained on historical outcomes. The output is a conversion probability for each new lead, not a points total, which is both more accurate and easier to act on. If there is no analyst: Clay. Clay connects to Apollo, Clearbit, and LinkedIn to enrich lead records with company size, industry, funding stage, and tech stack. AI columns in Clay let you write prompts like 'Does this company likely have a dedicated marketing budget based on size and industry?' and evaluate every row with an LLM. The output is a score tier — High, Medium, Low — built from enriched data and the behavioural patterns identified by reviewing your last 50 closed deals. It is a structured heuristic, not a machine learning model, but it is built from actual outcome data rather than intuition.
What AI actually contributes and what it cannot do
AI in lead scoring does two specific things well. First, it identifies which features actually predict conversion in your historical data faster than any manual analysis. Claude can analyse a CSV of 200 leads with outcomes and surface which combinations of attributes correlate with conversion, often revealing that your best customers are not who you thought they were. Second, it helps you recalibrate as your ICP evolves. Running a quarterly re-analysis of the last 90 days of lead-to-close data takes an hour and tells you whether your weights need updating. What AI cannot do: it cannot infer intent from outside your own data. It cannot identify leads who are evaluating your category but have not visited your website. For that, you need intent data providers. Use what you have, build the model on your own data, and add intent signals only when you have exhausted what your existing data can tell you.