Guide

Lead Scoring with Signal Data: Build Scores That Actually Predict

Your lead scoring model is lying to you. Most teams build scores on form fills and email opens, then wonder why 87% of MQLs never convert. A lead scoring API powered by real business signals (funding rounds, executive hires, tech migrations) predicts pipeline 2-4x better than behavioral scoring ever could.

Traditional Lead Scoring Is Broken

Every CRM ships with lead scoring. HubSpot, Salesforce, Marketo. The setup looks reasonable: assign points for email opens (+5), form fills (+10), webinar attendance (+15), pricing page visit (+20). When a lead crosses 50 points, it becomes an MQL. Sales gets notified. Pipeline is supposed to follow.

It doesn't. Industry data from Forrester shows MQL → SQL conversion rates average 13%. SiriusDecisions pegged it at 14.7%. Either way, roughly 87% of "qualified" leads never become pipeline. That's not a scoring model. That's a random number generator with extra steps.

The root cause: behavioral engagement metrics measure interest in content, not purchasing readiness. A VP of Sales who downloads your whitepaper, opens 3 emails, and attends your webinar scores 45 points. A graduate student writing their thesis on sales technology does the exact same things. Your scoring model cannot distinguish between them because it doesn't know anything about the company's actual situation.

Meanwhile, a company that just raised $45M Series B, hired a new CRO, and posted 8 SDR roles sits at zero points in your CRM because nobody from that company has touched your content yet. That company is 10x more likely to buy than your 45-point MQL. Your scoring model is blind to it.

The fix is not better behavioral scoring. The fix is different inputs entirely. You need to score on business events that create buying windows, not content engagement that creates the illusion of demand. This is where signal data replaces the traditional lead scoring paradigm.

Signal-Based Scoring: Weight Real Buying Events

AI lead scoring built on signal data weights verifiable business events that correlate with closed-won revenue. Each signal type gets a weight based on historical conversion data, not gut feel.

SignalCategoryWeightRationale
Competitive DisplacementCompany & Market+35Competitor outage, acquisition by rival, or public dissatisfaction creates immediate switching urgency. Highest conversion rate of any signal type.
Series A/B/C FundingFinancial & Funding+30Post-funding companies spend 3-5x more on tools in the following 6 months. Budget is confirmed, not speculative.
New CRO AppointmentLeadership & People+25New CROs evaluate and replace GTM tools at 4x the baseline rate within their first 90 days. Decision-maker is active.
SDR/BDR Team ExpansionHiring & Growth+20Companies posting 5+ SDR roles are building outbound engines. They need tools to support that motion within weeks.
CRM Implementation or SwitchTechnology & Product+20CRM migrations trigger cascading tool purchases across the entire revenue stack. Active evaluation window.
Pricing Page VisitsIntent & Engagement+15Direct evaluation signal. Multiple contacts from the same account visiting pricing indicates buying committee activity.
Hiring Velocity Change (+50% MoM)Hiring & Growth+15Rapid acceleration correlates with budget deployment. Company is in growth mode and making purchasing decisions.
VP Marketing HireLeadership & People+15New marketing leaders audit and replace martech within their first quarter. Evaluation window is narrow and predictable.

Notice the difference. Traditional scoring asks "did they engage with our content?" Signal-based scoring asks "did something happen at their company that creates a buying window?" The first measures marketing's reach. The second measures the prospect's readiness to buy.

The weights above come from analyzing conversion patterns across 100K+ signaling events in the Autobound Signal API. Competitive displacement (+35) converts highest because urgency is immediate and the prospect already has budget allocated for the category. Funding rounds (+30) convert next because budget just materialized. New CRO hires (+25) convert because a decision-maker with a mandate to change is actively evaluating.

The compound effect matters here too. An account showing a single signal scores its base weight. An account showing 3+ signals across different categories gets a 1.5x compound multiplier. Our data shows these compound-signal accounts convert to meetings at 3-5x the rate of single-signal accounts.

Architecture: Signal API → Scoring Engine → Priority Queue

Building a signal-based lead scoring system requires three components: a signal source (the API), a scoring engine (your logic), and a priority output (CRM field, Slack alert, or rep queue). Here's how they connect:

Data Flow

1CRM exports target account list (domains) → daily cron job
2Scoring engine calls Autobound Signal API for each domain
3API returns all active signals (category, type, timestamp, confidence)
4Engine applies weights + time decay + compound multiplier → total score
5Score writes back to CRM custom field + triggers routing rules
6Accounts scoring 70+ route to tier-1 reps. 40-69 → sequences. Below 40 → nurture.

The lead scoring API call costs 2 credits per company enriched. For a team scoring 5,000 accounts daily, that's 10,000 credits/day → ~300K credits/month → the Business plan at $1,299/month ($0.0045/credit). Zero-result queries (companies with no active signals) are free, so you only pay for accounts that actually have scoring data. Full pricing details here.

For teams that prefer not to build the scoring engine themselves, the API's compound_score field provides a pre-calculated buying window probability based on all active signals. Use it directly as your lead score, or combine it with your own weighting logic for a hybrid approach.

Code: Build a Signal-Based Scoring Function

Here's a complete implementation. This function calls the Autobound Signal API, applies category weights with time decay, detects compound signals, and returns a final score with reasoning.

scoring_engine.py

import requests
from datetime import datetime, timezone
from typing import Dict, List

SIGNAL_WEIGHTS = {
    "Competitive Displacement": 35,
    "Series A/B/C Funding": 30,
    "Government Contract Award": 28,
    "New CRO Appointment": 25,
    "M&A Activity (Acquirer)": 25,
    "CEO Transition": 22,
    "SDR/BDR Team Expansion": 20,
    "CRM Implementation or Switch": 20,
    "Cloud Migration Initiative": 20,
    "VP of Sales Hire": 18,
    "VP Marketing Hire": 15,
    "Pricing Page Visits": 15,
    "Hiring Velocity Change": 15,
    "Engineering Hiring Surge": 12,
    "Contact Job Change": 12,
    "G2 Review Activity": 10,
    "Product Launch": 10,
    "Layoff Announcement": 8,
}

COMPOUND_MULTIPLIER = 1.5  # applied when 3+ categories present
API_BASE = "https://api.autobound.ai/v1"


def calculate_time_decay(signal_timestamp: str, half_life_days: int = 30) -> float:
    """Signals lose half their value every 30 days."""
    signal_date = datetime.fromisoformat(signal_timestamp.replace("Z", "+00:00"))
    days_ago = (datetime.now(timezone.utc) - signal_date).days
    return 0.5 ** (days_ago / half_life_days)


def score_company(domain: str, api_key: str) -> Dict:
    """Fetch signals and compute weighted lead score."""
    response = requests.get(
        f"{API_BASE}/signals/company",
        params={"domain": domain},
        headers={"Authorization": f"Bearer {api_key}"}
    )
    data = response.json()
    signals = data.get("signals", [])

    if not signals:
        return {"domain": domain, "score": 0, "signals": [], "tier": "nurture"}

    total_score = 0
    categories_present = set()
    scored_signals = []

    for signal in signals:
        signal_type = signal["type"]
        base_weight = SIGNAL_WEIGHTS.get(signal_type, 5)
        decay = calculate_time_decay(signal["timestamp"])
        weighted = base_weight * decay * signal.get("confidence", 0.9)

        categories_present.add(signal["category"])
        total_score += weighted
        scored_signals.append({
            "type": signal_type,
            "base_weight": base_weight,
            "decayed_weight": round(weighted, 2),
            "timestamp": signal["timestamp"],
            "source": signal["source"]
        })

    # Apply compound multiplier
    if len(categories_present) >= 3:
        total_score *= COMPOUND_MULTIPLIER

    final_score = round(total_score, 1)

    # Determine tier
    if final_score >= 70:
        tier = "tier_1"  # route to best rep immediately
    elif final_score >= 40:
        tier = "tier_2"  # automated sequence + rep backup
    else:
        tier = "nurture"  # marketing nurture, re-score weekly

    return {
        "domain": domain,
        "score": final_score,
        "categories_detected": len(categories_present),
        "compound_multiplier_applied": len(categories_present) >= 3,
        "tier": tier,
        "signals": scored_signals
    }

Example: Fetch signals for scoring

curl -X GET "https://api.autobound.ai/v1/signals/company?domain=cloudbase.io" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"

Response → feeds scoring engine

{
  "company": "CloudBase",
  "domain": "cloudbase.io",
  "signals": [
    {
      "category": "Financial & Funding",
      "type": "Series A/B/C Funding",
      "summary": "CloudBase raised $45M Series B led by Sequoia",
      "timestamp": "2026-06-03T14:22:00Z",
      "source": "SEC Form D Filing",
      "confidence": 0.98
    },
    {
      "category": "Leadership & People",
      "type": "New CRO Appointment",
      "summary": "CloudBase hired Marcus Rivera as CRO (prev. Salesforce)",
      "timestamp": "2026-06-07T09:15:00Z",
      "source": "LinkedIn",
      "confidence": 0.95
    },
    {
      "category": "Hiring & Growth",
      "type": "SDR/BDR Team Expansion",
      "summary": "CloudBase posted 8 SDR roles in the past 14 days",
      "timestamp": "2026-06-10T11:30:00Z",
      "source": "Job Boards (aggregated)",
      "confidence": 0.97
    },
    {
      "category": "Technology & Product",
      "type": "CRM Implementation or Switch",
      "summary": "Migrating from HubSpot to Salesforce (job postings confirm)",
      "timestamp": "2026-06-09T16:45:00Z",
      "source": "Job Postings + LinkedIn",
      "confidence": 0.88
    }
  ],
  "compound_score": 0.94,
  "buying_window": "high",
  "credits_consumed": 2
}

Score Calculation for CloudBase:

Series B Funding: 30 × 0.98 confidence × 0.87 decay (12 days) = 25.6

New CRO: 25 × 0.95 confidence × 0.91 decay (8 days) = 21.6

SDR Expansion: 20 × 0.97 confidence × 0.95 decay (5 days) = 18.4

CRM Switch: 20 × 0.88 confidence × 0.93 decay (6 days) = 16.4

Subtotal: 82.0

Categories present: 4 (≥3) → compound multiplier: ×1.5

Final Score: 123.0 → Tier 1 (route immediately)

CloudBase scores 123. Compare that to a traditional model where this account might score zero (no one from CloudBase has downloaded your ebook). The signal-based model surfaces accounts with verified buying windows regardless of whether they've touched your content. That's the fundamental shift.

Signal Scoring vs. Intent Scoring vs. Traditional

Three paradigms for lead scoring tools. Each makes fundamentally different assumptions about what predicts revenue.

DimensionTraditionalIntent-BasedSignal-Based
Input DataForm fills, email opens, page views, content downloadsAggregated topic scores from publisher co-ops (Bombora, 6sense)Discrete business events: funding, hires, tech changes, competitor displacement
MQL → SQL Rate13% industry average18-22% (better, but still opaque)35-50% (measured across 100K+ signaling events)
Score TransparencyTransparent but meaningless (opened email 3x = +10 points)Black box. 'High intent' with no explanation of why.Fully transparent. Each signal has a source, timestamp, and weight rationale.
Decay ModelTime-based decay (arbitrary, usually 30-90 days)Weekly aggregation windows mask actual timingEvent-driven decay. Funding signal from 7 days ago > job posting from 45 days ago.
Compound DetectionNone. Scores accumulate linearly regardless of context.Limited. Multiple topics = higher score, but no cross-category logic.Native. 3+ signals across different categories trigger compound multipliers.
Cost to ImplementFree (built into every CRM). But costs you pipeline.$30K-$150K/year for Bombora, 6sense, or TechTarget contracts$19-$4,999/month depending on volume. Credits never expire.

The transparency gap is the killer. When a rep asks "why is this account scored high?", traditional models say "they opened emails and downloaded content." Intent-based models say "they're showing high intent on the topic of sales engagement." Signal-based models say "they raised $45M last week, hired a CRO from Salesforce, and posted 8 SDR roles."

Only one of those answers gives the rep something to say in their opening line. Only one of those answers the rep can verify independently. Only one of those consistently predicts whether a meeting will actually happen.

6sense and Bombora have their place. They're good at surfacing accounts that are generally "in market" for a category. But they can't tell you why, they can't tell you who specifically is driving it, and they can't give you the conversational hook. Signal data does all three. The best lead scoring tools combine both: intent data as a general filter, signal data as the precision layer that drives scoring accuracy and rep enablement.

Start scoring accounts on real buying signals. 1,000 free credits, no credit card.

Get Free API Access

Implementation Playbook: 30 Days to Signal-Based Scoring

You don't need to rip out your existing scoring model on day one. The highest-ROI path: run signal-based scoring in parallel, measure conversion lift, then replace once you have data.

Week 1: Baseline + Signal Audit

  • Pull your last 50 closed-won deals. Map what business events preceded each opportunity (funding? new hire? tech migration?)
  • Sign up for the Signal API (1,000 free credits). Enrich those 50 companies retroactively to see which signals were active at the time they entered pipeline.
  • Identify the 5-8 signal types that appear most frequently before closed-won. These are your initial scoring weights.
  • Document your current MQL → SQL → Opp → Win conversion rates. This is your baseline to beat.

Week 2: Build the Scoring Engine

  • Deploy the scoring function (use the Python code above as your starting point). Adapt weights based on your Week 1 analysis.
  • Set up a daily cron to enrich your target account list (start with top 500 accounts). Write scores to a custom CRM field.
  • Create three tiers: Tier 1 (score ≥70, route to best reps), Tier 2 (40-69, automated sequence), Nurture (below 40, marketing continues).
  • Set up a Slack alert for any account that jumps to Tier 1. Include the top 3 signals in the alert so the rep has immediate context.

Weeks 3-4: Run in Parallel + Measure

  • Run signal-based scores alongside your existing MQL model. Don't turn off the old model yet.
  • Track: meeting conversion rate for signal-scored Tier 1 accounts vs. traditional MQLs. Expect 2-4x lift.
  • Identify false positives (high signal score, no conversion) and false negatives (low score, converted anyway). Adjust weights.
  • Once signal-scored accounts outperform traditional MQLs by ≥2x on meeting rate, make the switch. Route all rep attention through signal scores.

Total implementation cost: $49-$149/month on the Signal API (Growth or Scale plan covers 5,000+ daily enrichments), plus 4-8 hours of engineering time to build the scoring function and CRM integration. Compare that to a 6sense contract ($30K-$150K/year) or building signal infrastructure in-house ($500K+/year in engineering costs).

Teams building more complex scoring workflows (multi-model, ML-driven weight optimization, custom signal combinations) should check the data enrichment API guide for batch processing patterns and the MCP server documentation for AI agent integration.

The Compound Signal Multiplier

Single signals are valuable. Compound signals are predictive. The difference between the two is what separates functional lead scoring from genuinely accurate pipeline prediction.

A company with one active signal (say, a Series B funding round) is interesting. A company with four active signals across different categories is almost certainly buying something. The category diversity matters because it eliminates false positives. A company might raise funding and never buy your product. A company that raises funding AND hires a new CRO AND posts SDR roles AND starts a CRM migration is doing something specific and urgent.

The scoring function above applies a 1.5x multiplier when 3+ categories are present. This single rule, more than any individual weight adjustment, drives the accuracy improvement over traditional and intent-based models. Our data across 100K+ events shows:

1 signal (single category)8% meeting rate
2 signals (2 categories)14% meeting rate
3+ signals (3+ categories)28-35% meeting rate
Traditional MQL (no signals)4-6% meeting rate

A 28-35% meeting rate on compound-signal accounts vs. 4-6% on traditional MQLs. That's not a marginal improvement. That's a fundamentally different quality of pipeline. Reps spend their time on accounts that actually convert instead of chasing engagement ghosts. RevOps teams can finally forecast with confidence because the scoring inputs are observable and verifiable.

Who Benefits Most from Signal-Based Lead Scoring

Signal-based scoring works across the revenue stack, but the impact is highest in specific scenarios:

RevOps teams tired of MQL theater

If your MQL → SQL rate is below 20%, your scoring model is broken. Signal-based scoring gives you inputs that actually correlate with pipeline creation. The Signal API provides the data layer. The scoring logic above provides the architecture.

AI SDR platforms building prioritization

AI SDR platforms need to decide which accounts to contact and in what order. Signal scores provide the ranking. The signal summaries provide the messaging context. One API call gives both.

Data platforms adding scoring to their product

OEM partners embed signal-based scoring into their own products via flat file or API. Deliver pre-calculated buying window scores alongside contact/company data without building signal infrastructure.

Sales teams with large TAMs and limited rep capacity

If you have 50,000 accounts and 10 reps, prioritization is everything. Signal scores tell reps exactly which 200 accounts to work this week, based on verified buying windows rather than alphabetical order or territory assignment.

Frequently Asked Questions

A lead scoring API provides programmatic access to data that feeds scoring models. Rather than relying on CRM-native scoring (which weights form fills and email opens), a lead scoring API like Autobound's Signal API returns discrete business events (funding rounds, executive hires, technology changes, hiring surges) that you can weight in your scoring model. The API returns structured JSON with signal type, category, timestamp, source, and confidence score for each event, enabling you to build scores based on verified buying signals rather than content engagement metrics.

Traditional lead scoring fails because it measures content engagement, not purchasing readiness. A prospect who downloads 3 whitepapers and attends a webinar scores high, but they might be a student, a competitor, or someone with zero budget authority. Industry data shows MQL → SQL conversion rates sit at 13%. That means 87% of 'qualified' leads never convert to pipeline. The root cause: behavioral signals like email opens and page views don't correlate with budget, authority, need, or timing. Signal-based scoring solves this by weighting actual business events that create buying windows.

Signal weighting should reflect conversion correlation, not intuition. Start by mapping your closed-won deals to the signals that preceded them. Typical weights from our data: competitive displacement (+35), funding rounds (+30), new CRO/VP Sales hire (+25), hiring surges (+20), CRM migration (+20), pricing page visits (+15). Apply time decay so recent signals score higher than stale ones. Then add compound multipliers: accounts with 3+ signals from different categories get a 1.5x multiplier because cross-category signal density predicts conversion at 3-5x single-signal accounts.

Intent scoring (Bombora, 6sense, TechTarget) aggregates anonymous content consumption across publisher networks into topic-level scores. You get 'Company X shows high intent for CRM solutions' but you can't see which individual consumed what content, when exactly it happened, or verify the signal independently. Signal-based scoring uses discrete, verifiable events: 'Company X raised $45M Series B on June 3, hired a CRO from Salesforce on June 7, and posted 8 SDR roles this week.' Each signal is traceable to a primary source, timestamped, and independently verifiable. Signal-based models show 35-50% MQL → SQL rates vs. 18-22% for intent-based models.

Yes. The Signal API returns all active signals for any company or contact via REST endpoints. You query a domain, get back structured JSON with every signal across 6 categories (Hiring & Growth, Financial & Funding, Technology & Product, Leadership & People, Intent & Engagement, Company & Market). Each signal includes a confidence score, timestamp, and source. Feed these into your scoring engine, apply category weights and time decay, and you have a signal-based lead score. The API costs 2 credits per enrichment, starting at $0.004/credit on enterprise plans. Every account gets 1,000 free credits to start.

Start with 5-8 high-impact signals that correlate with your specific closed-won patterns. Most teams begin with: funding events, executive hires (CRO, VP Sales, VP Marketing), hiring velocity changes, CRM/tech migrations, and competitive displacement. These cover 4 of the 6 signal categories and provide strong cross-category compound detection. Once you validate conversion lift (expect 2-4x improvement over traditional scoring within 30 days), expand to 15-20 signals with more granular weighting. The Autobound Signal API tracks 700+ signal types, but model accuracy peaks at 15-25 well-weighted signals rather than trying to incorporate everything.

Stop scoring on email opens. Start scoring on buying signals.

1,000 free credits. 700+ signal types. Build a scoring model that predicts revenue in 30 minutes, not 30 days. No credit card required.