Most posts about AI lead engines are abstract. This one isn't. What follows is a real engine running in production for a Fidelis client — sanitized so the client and the dataset stay anonymous, but accurate enough that a capable team could rebuild it.
The client: a $10M-ish founder-led services firm. The brief: surface in-market accounts the team would otherwise miss, with enough context to act on them inside 24 hours. The system has been running for several months and now sources roughly a third of new pipeline.
The four layers
Every working lead engine has the same four layers:
- Signal layer — what we watch
- Scoring layer — what we keep
- Enrichment layer — what we add
- Delivery layer — where it lands
The mistake most teams make is starting with the delivery layer (“we want a Slack channel of leads”) and working backward. That puts the cart in front of the horse. The signal layer is the one that determines whether the engine is worth running at all.
Layer 1 — Signal
For this client, six signal sources, weighted unequally:
- Recent funding events — capital raised in the last 60 days. Source: Crunchbase + press release scrape. Highest weight. Capital + a 60-day window is the strongest in-market signal we have for this ICP.
- New senior hires in target roles — VP-level or above, sales/ops/marketing functions, started within 90 days. Source: LinkedIn change tracking. High weight.New leaders re-evaluate stack. The 90-day window matters.
- Competitive customer churn signal — companies dropping a known competitor. Source: BuiltWith + Wappalyzer delta detection. High weight.
- Founder content publishing — founders personally publishing about a problem we solve. Source: LinkedIn + podcast transcript scrape. Medium weight.Strong intent proxy, but requires more validation downstream.
- Hiring of specific roles — companies opening reqs that imply the problem we solve. Source: job board scrapers. Medium weight.
- Industry-specific regulatory or market triggers — niche to the client. Variable weight, set per quarter.
What we deliberately don't use: generic firmographic filters as the primary signal. They go in scoring, not signal. A lead engine that starts from firmographics is just Apollo with extra steps — the long version of why is worth the read.
Layer 2 — Scoring
Every surfaced account gets scored across three vectors, normalized to 100:
- ICP fit (40 pts).Firmographic match against the client's closed-won pattern: company size, industry, revenue band, geography, business owner status.
- Signal density (40 pts). How many of the six signal sources fired in the same 90-day window. Multiple-signal accounts score disproportionately — overlap is what separates a hot account from an interesting one.
- Intent proxy (20 pts). Are the right people inside the company publicly engaging with the problem? Do they cite vendors? Are they in a buying conversation in public?
Anything below 55 is dropped. Anything 55–74 gets queued for human review weekly. Anything 75+ gets full enrichment and same-day delivery.
The honest read on scoring:the rubric was wrong on the first pass. Specifically, we under-weighted signal density and over-weighted firmographic fit, which led to the system surfacing a lot of “perfect on paper, not actually buying” accounts. We re-weighted at week three based on the team's actual reach-out outcomes. That feedback loop is the real product.
Layer 3 — Enrichment
Once an account scores 75+, an enrichment job runs that pulls the context the team needs to reach out intelligently:
- Top three decision-makers — name, title, LinkedIn URL, tenure, recent activity
- Verified work email for the primary decision-maker (Hunter / Apollo / Clearbit cascade, lowest-cost first)
- The specific signal that triggered the surface, with source link and date
- Up to three relevant pieces of recent content from the company or its leaders
- Mutual connections through the client's LinkedIn graph, if any
- A one-paragraph “why now” summary written by an LLM against the assembled context
The enrichment layer is the one most teams underbuild. The difference between “here's a name and an email” and “here's a name, an email, the specific reason this account is in market today, and three ways you're already connected” is the entire engine's value.
Layer 4 — Delivery
Three surfaces, in priority order:
- Daily Slack digest. Top 5 accounts per day, fully enriched, posted to a dedicated channel at 8am local. One-line per account, expand-on-click for the full context.
- CRM sync.Every 75+ account is created in the client's CRM with the full enrichment payload attached. The team works inside the CRM, not the digest — the digest is just the alert.
- Weekly leadership recap. A Friday email summarizing the week: accounts surfaced, accounts actioned, accounts that closed, signals that performed best. The recap is what makes the engine governable.
What we got wrong (and fixed)
Three things, on the record:
- The scoring rubric, week one. Already covered above. Fix: tighter feedback loop with the sales team in the first 30 days.
- Too many signals, too little weight. The first version of the engine watched ten signal sources. Most fired noise. We dropped to six — and the quality of surfacing went up, not down.
- Enrichment lag.Original version ran enrichment on a 4-hour delay. By the time a hot account hit Slack, the team was already past it for the day. Moved to real-time enrichment for 75+ accounts; the weekly volume cost is trivial because there aren't that many.
What it's producing
Sanitized numbers, rounded to whole figures, accurate direction:
- ~30 accounts surfaced per week at 75+ score
- ~12 of those actioned by the team in the same week
- ~3 of those convert into a first conversation
- About a third of new pipeline now originates here
Conversion rates aren't magical. The engine isn't a vending machine. The reason it works is that the team consistently reaches the right person in the right week instead of the right person three months too late.
What you can take from this
If you're considering building one of these:
- Start with two or three signals you can defend, not ten. Add more only after the first three are clearly working.
- Score weight should match closed-won pattern, not gut. Build the feedback loop into week one, not month three.
- Spend more on enrichment than you think. Thin enrichment is the most common reason these systems fail in practice.
- Slack first, dashboard never. The team works where they already work, not in a new tab.
And the honest meta-point: we're currently building one of these for Fidelis itself. The post-mortem on that build will land here too. If you want to be on the list when it does, the soft path is the Growth Audit checklist — same email goes on the teardown notification list.
Not ready to talk? Grab the free 4D Growth Audit — 24 questions, one page, no call required.