The Problem
Sales teams typically spend 60–70% of their time on leads that will never convert. Manual qualification is slow, inconsistent, and doesn't scale with growth. When every salesperson applies different criteria, pipeline health becomes unmeasurable — and revenue forecasts become guesswork.
Our client, a B2B SaaS company in Austin, was generating 800+ inbound leads per month from their marketing campaigns. Their 6-person sales team couldn't keep up. The leads sat in the CRM for days before anyone called them, and by then the prospect had already chosen a competitor.
The core challenge: not all leads are equal, but the company had no systematic way to know which ones to call first.
The Solution
We built a real-time lead scoring engine that integrates directly with their CRM (HubSpot) and scores every lead the moment it's created — before a human ever sees it.
The system analyzes 60+ signals across three categories:
- Behavioral signals: pages visited, time on site, content downloads, email opens, webinar attendance, product demo requests
- Firmographic signals: company size, industry, location, technology stack (via Clearbit enrichment), funding stage
- Intent signals: search keywords that triggered the ad, form responses, competitor comparison page visits
[HubSpot Webhook] → [FastAPI Ingestion Layer]
↓
[Clearbit Enrichment API] → [Feature Engineering]
↓
[Scikit-learn Scoring Model] → [Score 0-100]
↓
[HubSpot CRM Update] → [Slack Alert if Score > 80]
↓
[PostgreSQL] → [Analytics Dashboard]
How It Works
Data Pipeline
When a lead submits a form, a HubSpot webhook fires to our FastAPI endpoint. We enrich the contact with company data from Clearbit (employee count, industry, tech stack, funding) and pull behavioral history from HubSpot's contact timeline.
Feature Engineering
Raw data becomes 60+ features: normalized company size score, industry-fit score, engagement velocity (how quickly they moved through the funnel), content affinity signals, and recency-weighted activity scores.
Model Training
We trained an XGBoost gradient boosting model on 18 months of historical leads with known outcomes (converted vs. churned). The model learns your specific conversion patterns — not generic B2B benchmarks.
Score Decay
Leads that go cold get automatic score reduction. A lead who visited your site 30 days ago and hasn't returned isn't as valuable as a fresh signal. The decay function is tunable per client.
Routing Rules
Score > 80 triggers immediate Slack notification to the assigned rep. Score 60–80 goes into the "warm" queue. Below 60 goes to a nurture sequence. Fully configurable.
Results
Three months post-launch:
The sales team now starts each morning with a prioritized list. The highest-score leads get called within the hour of submission. The team reports spending 80% of their time on high-quality conversations instead of cold outreach.
Timeline & Investment
Timeline: 10–14 weeks from kickoff to production deployment
Investment: $35,000 – $60,000 depending on CRM integrations and model complexity
What's included: discovery and data audit, model training on your historical data, CRM integration, scoring dashboard, rep training, and 60-day post-launch monitoring.
Ready to Stop Guessing Which Leads to Call?
We'll analyze your current lead data and show you what a scoring model would look like for your business. Free discovery session, no commitment.
Book Free Discovery Session →