Lead Scoring

Heuristic 0–10 score. File: src/enrichment/processors/scoring.ts. Not ML — additive weights based on which signals were extracted.

Source: docs/SYSTEM_OVERVIEW.md § Lead scoring.

Formula

let score = 0;
if (contacts.some(c => c.role_type === 'VD')) score += 2;   // VD found
if (contacts.some(c => c.phone))              score += 1;
if (contacts.some(c => c.email))              score += 1;
if (contacts.length >= 3)                     score += 1;
if (domain)                                   score += 1;
if (google_maps?.rating)                      score += 1;
if (market_intel?.growth_signals?.length)     score += 1;
if (email_patterns_detected?.length)          score += 0.5;
 
return Math.min(Math.round(score * 10) / 10, 10.0);

Maximum

8.5 of 10 from the listed signals. Headroom reserved for future signals (NPS, financials).

Inputs

Caveat

Note

Heuristic, not validated against revenue or conversion. Works for POC ranking, not for ML-grade qualification.

See also

EnrichV7, Crawlee Scraper, Google Places, Domain Discovery.