Home › Blog › Score Cold Email Leads with AI Before Sending
Every list contains rows that technically match your filters and obviously do not fit: the 'VP Marketing' who runs a two-person agency, the 'Head of Growth' at a nonprofit, the keyword-matched title that means something else entirely. An AI scoring pass with a transparent rubric, rejection reasons, and a semantic title classifier removes them before they burn sends. Here is the build.

After structural filters, run survivors through an LLM scoring pass: 4-6 rubric dimensions with per-dimension justification, summed into sequence / nurture / reject bands, every rejection carrying its reason. The highest-value dimension is the semantic title classifier: title + company size + industry against your role definition, catching the VP-of-a-two-person-company class of mismatch that keyword filters structurally cannot. Human-review the borderline band weekly; the rubric learns from the overrides.
INPUT per lead: title, company, size, industry, geo, signals (hiring/tech/funding), your role definition written as RESPONSIBILITIES SCORE 0-2 each, with one-line justification: company ICP fit (size/industry/model) title→role match (semantic, not keyword) seniority (owns budget for this?) signal strength (why now?) segment fit (geo, language, market) OUTPUT strict JSON: scores + justifications, total, band: sequence | nurture | reject, reject_reason (required if rejected), confidence BANDS: 8-10 sequence · 5-7 human review / nurture · <5 reject with reason logged
The rubric earns autonomy the same way the reply classifier does: weekly samples scored by a human for the first month, override-rate tracked per dimension, and prompt updates whenever overrides cluster. Then close the loop with outcomes: reply and meeting rates by score band should separate cleanly (band 8-10 meaningfully outperforming 5-7), and if they do not, the rubric is measuring something other than fit and needs its dimensions rethought. A scoring system nobody validates against results is a vibe with a JSON schema.
Build a transparent rubric, not a vibes model: define 4-6 scored dimensions (ICP fit of the company, title-to-role match, seniority, signal strength like hiring or tech stack, geography/segment fit), have an LLM score each dimension per lead with a one-line justification, and sum to a total with clear bands: sequence now, nurture, reject. The two non-negotiables: every rejection carries a stated reason (auditable, and it debugs your data sources), and a human samples the borderline band weekly so the rubric keeps learning. Rows and context in, JSON out, same engineering as the reply classifier.
Keyword filters match strings, not meaning: 'VP Marketing' at a 3-person company is the founder doing everything; 'Head of Growth' can mean paid ads, product, or sales depending on the org; regional titles ('Director' in banking vs tech) shift seniority wildly; and creative titles ('Revenue Wizard', 'Chief Hustle Officer') defeat keywords entirely while often being exactly your buyer. A semantic classifier reads title + company size + industry together and answers the actual question: does this human do the job my offer serves?
One LLM call per lead with a tight contract: input title, company size, industry, and your definition of the target role (written as responsibilities, not example titles); output a fit label (strong / partial / wrong role), a confidence score, and the inferred actual function. Few-shot it with your known edge cases, the founder-wearing-VP-title, the agency-owner, the regional seniority traps. Cheap fast models handle this well at a fraction of a cent per lead, which at list scale is the best money in targeting.
No, it runs after them, cost order again: free structural filters (size, geo, industry) remove the obvious misses for nothing, then AI scores only the survivors, where the judgment calls actually live. Scoring 10,000 raw rows wastes model calls on rows a filter would have killed; scoring the filtered 3,000 catches the mismatches filters cannot see. Same layering logic as the verification waterfall, cheapest instrument first, judgment last.
Three effects compound: reply quality rises because more recipients actually own the problem; spam complaints fall because fewer people get pitched something irrelevant to their job (complaints concentrate in mismatched sends); and sequencing capacity is spent on the band that converts, which matters when your fleet's safe daily volume is the binding constraint. Operators usually find 10-25% of a filtered list scores out, and that slice was contributing bounces, complaints, and silence, never meetings.
Prewarmed Inboxes So You Can Send Cold Emails Today
Get Prewarmed & Fresh InboxesGoogle, Microsoft 365 and Azure inboxes with free prewarmed domains and DNS configured before you log in. Prewarmed inboxes send the day they land; every order is delivered within 48 to 72 hours.
Get Prewarmed & Fresh Inboxes