We'll get back to you within 24 hours.
We built a predictive lead scoring system for a B2B SaaS company — scoring 2,000+ leads monthly by intent signals, company fit, and behavioral data, so the sales team calls only the 20% most likely to convert.
Industry Context
The economics of B2B SaaS selling have changed dramatically. Understanding the structural problem behind low conversion rates is essential before designing the solution.
Industry benchmarks from OpenView Partners' SaaS benchmarking report show that the median inbound lead-to-close conversion rate for B2B SaaS is 3–5%. For every 100 leads entering the CRM, 95–97 will not buy. Yet most SaaS companies deploy their sales team against all 100 — paying enterprise-grade sales talent to call students who downloaded a whitepaper out of curiosity. The entire premise of sales-led growth collapses when rep time is distributed uniformly across a population where 97% will say no. Lead scoring is not a nice-to-have optimization; it is the foundational infrastructure of an efficient sales motion.
Research from Sales Benchmark Index shows that the average B2B sales rep spends less than 36% of their working time actually selling — the rest goes to admin, data entry, and critically, calling leads that were never going to buy. In companies without lead scoring, reps develop their own informal "gut feel" scoring — which research consistently shows is less accurate than data-driven models and introduces significant individual variation in who gets called. The company in this case study was paying 10 enterprise software sales reps ₹18L per year each — ₹1.8 Cr in annual salary for a team that was spending 60% of their time on leads that a model would have correctly flagged as low-intent.
The third-party intent data market — companies like Bombora, G2, and TechTarget that track which companies are actively researching specific software categories — has matured significantly. Intent signals (a company's employees reading 14 articles about HR software in the past 30 days; a buyer downloading 3 competitor product brochures from G2) are among the strongest predictors of near-term purchase, but they are systematically ignored by companies relying on first-party data alone. Combining intent data with product usage signals and firmographic fit data creates a lead scoring framework dramatically more accurate than any single data source. This multi-signal approach was central to the architecture we built for this client.
The Challenge
The B2B SaaS company (HR software, ₹6L ACV) generated 2,000+ leads monthly through content marketing, webinars, and paid ads. The sales team of 10 called everyone — from an enterprise CHRO to a student who downloaded a whitepaper out of curiosity. Conversion rate was 3.2% and sales reps were spending 60% of their time on leads that were never going to buy. Average cost per lead was ₹1,400; average cost per closed deal was ₹43,750 — well above the industry benchmark of ₹28,000 for a product at this ACV.
The existing CRM scoring was rule-based (e.g., "gave phone number = hot lead") — it didn't account for company size, industry fit, time-since-signup, product usage signals, or email engagement patterns. Reps trusted their gut over the CRM score, with inconsistent results. The top rep converted at 5.8%; the median rep converted at 2.4%. This 2.4x variance between reps wasn't skill — it was different informal prioritization strategies producing different outcomes. A data-driven score would collapse that variance by giving everyone the same prioritization intelligence.
The product had a free trial with 14-day access. Trial data was rich: some leads logged in once and never returned; others logged in daily, invited team members, and set up integrations. Yet this product usage data — the strongest available signal of intent — was not visible in the CRM. The sales team was calling leads without knowing whether they had ever even used the product they were supposedly selling. The fundamental problem was fragmented data: intent, firmographic, product usage, and email engagement signals existed across 4 different systems with no unified view or scoring model.
Our Solution
An ML model trained on 18 months of closed-won and closed-lost data, scoring leads in real time across 40+ behavioral and firmographic signals.
The ML model was trained on 18 months of CRM data — all closed-won and closed-lost deals with their full attribute histories from lead creation through close. We extracted 40+ features from four data sources: firmographic data (company size by employee count and revenue, industry vertical, funding stage, geography), product usage data from Mixpanel (number of logins in first 7 days, features activated, team members invited, integrations enabled), email engagement from HubSpot (email open rate, click-through rate, reply rate, time to first open), and third-party intent data from Bombora (intent score for "HR software" category, competitive research signals). The training dataset comprised 2,800 closed deals — 340 won and 2,460 lost. Class imbalance at 8.8% win rate required careful handling: we used SMOTE oversampling and class-weight adjustment in the XGBoost model to prevent the model from simply predicting "lost" for every lead. The model learns what a winning lead actually looks like, not what the team guessed it looked like — and critically, it identifies which signals are predictive versus which are merely correlated with leads that were prioritized (a common bias in historically scored datasets).
The final scoring model uses 43 features weighted by their contribution to win probability. The top 5 features by SHAP importance: (1) trial product usage score in days 1–7 (high logins + team invites + integrations = strong buy signal); (2) company employee count matching the top quartile of existing customers (50–500 employees); (3) intent data score for HR software category from Bombora; (4) CHRO or HR Director job title (vs. individual contributor); (5) pricing page visit frequency in the 7 days before scoring. Notably absent from the top predictors: phone number provided (which was the primary rule in the old scoring system), webinar attendance alone (high volume but low conversion signal), and company headquarters city — the B2B software had equal conversion across geographies. Feature importance is re-evaluated with each weekly model retrain to catch drift.
Scores sync to HubSpot CRM in real time via the HubSpot API. The sales team sees a prioritized call queue every morning — highest-score leads first, with the key reason for each score displayed as a plain-English explanation: "Visited pricing page 3x this week, CHRO title, 280-employee NBFC — strong fit." The score and explanation are updated every 4 hours as new signals come in. A lead whose score jumps from 35 to 78 overnight (because they invited two teammates and enabled the payroll integration) generates a "Hot Lead Alert" in Slack to the assigned rep — enabling same-day outreach at peak intent. The HubSpot custom property for "AI Score" integrates with HubSpot's workflow automation so that crossing certain score thresholds automatically enrolls the lead in specific email sequences, books slots in the rep's calendar for warm calls, or escalates to the enterprise team for high-value accounts.
Low-score leads (below 40) are automatically enrolled in email nurture sequences rather than going to sales — warming them with content until their score crosses the threshold for a sales call. The nurture sequences are also AI-driven: based on the lead's industry vertical and company size, they receive content specifically relevant to HR challenges in their sector. A 45-employee manufacturing company receives case studies about shop-floor attendance management; a 200-employee IT services firm receives content about leave management and compliance. This content personalization — without any sales team involvement — produces a 14% rate of low-intent leads eventually crossing the threshold into the hot bucket, adding a new revenue stream from leads that would previously have been abandoned. The segmentation between "pursue now" and "nurture until ready" is dynamic — score changes trigger sequence transitions automatically.
Implementation Timeline
From data audit to live scoring in 8 weeks — with a parallel validation period that confirmed the model's accuracy before reps changed their workflow.
The first two weeks were a data quality exercise. HubSpot CRM had 18 months of deal data, but field completeness varied significantly: company size was recorded for only 61% of closed deals; industry was free-text (producing 47 distinct values for what should have been 8 categories); and closed-lost reasons had been used inconsistently across reps. We standardized all historical data, enriched missing company fields using Clearbit's enrichment API, and mapped the 47 industry values to 8 standard SaaS verticals. Mixpanel product usage data was extracted via the Mixpanel Data Export API and joined to HubSpot contact records by email address. Bombora intent data was provisioned with a 3-month historical lookback. By the end of Week 2, we had a clean, feature-complete training dataset for 2,800 closed deals.
Feature engineering and initial model training ran in parallel over Weeks 3 and 4. XGBoost was selected over logistic regression and random forest in cross-validation for this dataset because of its strength with imbalanced classification problems and its interpretability via SHAP — critical for rep adoption. We trained models at three granularities: a primary model scored at lead creation using firmographic and intent signals; a usage model scored weekly using product trial behavior; and an engagement model scored daily using email interaction signals. The three model outputs were combined into a single composite score (0–100) using a stacking meta-learner. Offline validation on held-out test data showed 82% accuracy in predicting closed-won vs closed-lost, with 71% precision in the top-score decile (meaning 71% of leads in the top 10% score bucket actually converted — versus 3.2% in the overall population).
The scoring API was deployed on FastAPI and integrated with HubSpot via the HubSpot API v3. Real-time scoring triggers fire when: a new contact is created, a lead visits the pricing page, a Mixpanel event from the product is received, or a Bombora intent score update is ingested. Scores are written to the HubSpot contact as custom properties, making them visible in all CRM views and usable in workflow automation. A React sales dashboard was built showing the full prioritized queue with score explanations, trend sparklines, and drill-down into the signals driving each score. The Airflow pipeline for weekly model retraining was deployed and tested. Alert logic for "score jump" notifications was configured in Slack via webhook.
For 2 weeks, the AI scores ran in parallel with the old rule-based scoring — visible to management but not yet driving rep workflow. This shadow period let us validate that the model was stable, that score distributions were reasonable, and that the top-score decile was genuinely identifying high-intent leads rather than just high-company-size leads. Rep training was conducted in a 2-hour session focusing on: interpreting the score explanation text, understanding how the score changes over time, and the new workflow (call the top score bracket first, not alphabetical order). A 6-week informal A/B test — where 5 reps followed AI prioritization and 5 continued their own approach — produced the conversion data that created buy-in: the AI-prioritized group converted at 4.6% vs 2.8% for the control group. After that data was shared, no rep needed further convincing.
Results
Conversion rate jumped from 3.2% to 4.6% — by focusing calls on the 20% of leads the model identified as most likely to buy within 30 days. Across 2,000 monthly leads, this meant 28 additional policy closings per month without any increase in leads or headcount. The top-performing rep — who was already exceptional — improved from 5.8% to 7.1%, confirming that AI scoring helps both high and low performers rather than just elevating the bottom.
Calling leads at peak intent — right after they've visited pricing 3x or activated an integration — shortened average deal time from 67 to 47 days. The mechanism is simple: when a rep calls on Day 5 of a trial instead of Day 15, the prospect's enthusiasm and product familiarity are at their peak. The model's "score jump" alert specifically enables this: reps who received a Slack alert about a score jump and called within 24 hours converted at 6.9% vs the 3.8% rate for leads called without an alert trigger.
Same 10 reps, same pipeline — but each rep now handles 2.8x their previous closed revenue by spending zero time on low-intent leads. The bottom quartile of reps improved the most: freed from spending 70% of their calls on leads that would never buy, they could concentrate their energy on leads where skill and persistence actually mattered. The revenue-per-rep improvement allowed the company to postpone a planned sales team expansion — the same revenue growth target was achievable with the existing team, at no incremental headcount cost.
Leads below the threshold go into AI-driven nurture — 14% of these eventually cross the score threshold and enter the sales queue, adding a new revenue stream. The nurture channel generated 17 additional closes per month at zero incremental sales cost — essentially free revenue from leads that had previously been abandoned after one unanswered call. The payback period on the AI scoring system investment was 11 weeks, making this the fastest-payback technology investment the company had made in the previous 3 years.
ROI Breakdown
Conservative ROI analysis for a B2B SaaS company with ₹6L ACV, 2,000 monthly leads, and 10 sales reps — showing the full business impact of intelligent lead prioritization.
| Value Component | Calculation Basis | Annual Value |
|---|---|---|
| Additional Closed Revenue (Conversion Uplift) | 28 extra closes/month × ₹6L ACV × 12 months | ₹2,01,60,000 |
| Rep Productivity Value | Same 10 reps achieving 2.8x output = equiv. to 18 reps (8 reps saved × ₹18L) | ₹1,44,00,000 |
| Nurture Channel Revenue | 17 extra closes/month from nurtured leads × ₹6L ACV × 12 | ₹1,22,40,000 |
| Lead Wastage Reduction | Reduced cost-per-acquisition from ₹43,750 to ₹22,000 | ₹52,00,000 |
| System Build + Year 1 Infra Cost | ML development + HubSpot integration + Bombora data + maintenance | -₹22,00,000 |
| Net Year 1 Return | ₹4,98,00,000 | |
Tech Stack
FAQ
Related Services
Get a free analysis of your lead data. We'll model which signals predict conversion in your pipeline and show you the opportunity.
Get Free Lead Scoring Analysis