Most lead scoring models score the wrong thing. They award points for firmographic fit, which barely moves from one quarter to the next, so the top of the list in September looks exactly like the top of the list in March. A model built on company growth signals fixes that: it scores what actually changed at an account, namely hiring, funding, expansion, and technology evidence, each with its own timestamp and decay curve. This guide covers which signals to score, how to weight and age them, how to stack two signals inside one window, and the mistakes that quietly break the model after a few months.
TLDR:
- A growth-signal lead scoring model scores dated changes at an account, not permanent attributes. Every point it awards can be traced to an event with a date and a source URL.
- Four signal families carry most of the weight: hiring (Job Openings), fresh capital (Financing Events), physical and headcount expansion (News Events), and technology evidence (Technology Detections).
- Recency beats volume. Because every record carries
first_seen_at,last_seen_at, oreffective_date, decay can be computed from the data instead of guessed at. - Signal stacking beats signal counting: two different signal families inside the same window is a stronger prioritization case than five instances of one family.
- PredictLeads tracks 279.2M+ Job Openings records and 1.5B+ Technology Detections since 2018, 210,800+ Financing Events since 2016, and 10M+ News Events since 2016 across 130.7M+ companies, so all four families resolve against the same domain in one API.
What a Growth-Signal Lead Scoring Model Is
A growth-signal lead scoring model assigns points to timestamped, observable changes at a company rather than to static attributes. A newly posted role, a closed funding round, an announced office expansion, and a new technology detection are all dated events, which means each one can be scored, aged, and eventually expired. That is the whole difference: a fit attribute tells you whether an account belongs on your list, while a growth signal tells you whether this week is the week to work it.
Firmographic fit still belongs in your model. It just belongs on a separate axis. The practical setup is two scores side by side: a fit score that answers “does this account look like our customers,” and a growth score that answers “is this account moving right now.” Routing rules then read both. High fit plus high growth goes to an AE today. High fit plus low growth goes to nurture. Low fit plus high growth goes to marketing for an ICP review, because a cluster of fast-moving accounts outside your stated ICP is usually the first sign the ICP is out of date.
| Dimension | Fit scoring | Growth-signal scoring |
|---|---|---|
| Question it answers | Should this account be on our list? | Should a rep work it this week? |
| Inputs | Industry, size, revenue range, location, NAICS code | Job Openings, Financing Events, News Events, Technology Detections |
| Refresh rhythm | Quarterly or slower | Daily, with per-event timestamps |
| Decays over time | No | Yes, and it has to |
| Failure mode | The same 500 accounts sit at the top all year | Noise gets scored as momentum |
The fit axis runs on the Companies dataset: 130.7M+ companies across 195 countries with structured location, NAICS6 codes, revenue ranges, and headcount. The growth axis runs on everything else. For the broader strategic case behind this split, see our guide to company growth signals and how to spot expanding accounts.
The Four Growth Signals Worth Scoring
Four signal families cover the large majority of real growth events at a B2B company, and all four are observable from public sources. Score these before you go looking for anything more exotic.
1. Hiring: role mix, not headcount
Score the composition of a company’s open roles, not the raw count. A 400-person company with 30 open roles is normal; a 40-person company that opened five roles in one department in three weeks is not. The fields that make this scoreable are onet_data (standardized occupation codes), seniority, categories across 26 job categories, and first_seen_at, which tells you when the posting entered the dataset rather than when a scraper happened to see it.
The occupation code is what makes hiring comparable across companies. A posting titled “Commercial Lead, Scientific Instruments” and one titled “Technical Account Executive” both map to O*NET 41-4011.00, Sales Representatives, Wholesale and Manufacturing, Technical and Scientific Products. A string match on the job title would treat those as unrelated. The occupation code treats them as the same hiring intent, which is exactly what a score needs. Our walkthrough on how to find companies hiring for a specific role with O*NET codes covers the query side of this.
PredictLeads Job Openings carries 279.2M+ historical records since 2018 across 2.9M+ company websites, with 10.2M active openings at any time and 710,600+ companies currently hiring.
2. Fresh capital: round type and trajectory
Score the round type and the trajectory, not just the dollar amount. A single round is a moment; two rounds on one record is a slope. Luminary, a wealth-transfer data platform, is a clean example pulled from the Financing Events dataset this week: a $22M Series A with an effective_date of 2026-09-10 sits on the same company record as a $9.5M Seed from 2023. Reading those two rows together tells you a great deal more than reading the top one alone. The round is publicly announced and source-linked, and the record carries the source_urls array so a rep can see where it came from.
Aqua, an alternative-investments infrastructure company, shows the same pattern at a different stage: a $15M Series A with an effective_date of 2026-09-10, reported by FinSMEs. For scoring, the useful field is financing_type_normalized, which runs from pre_angel through series_j and lets you weight a Series B differently from a grant or a venture debt facility. If you want a stage-by-stage view of what to say after the round lands, we cover it in how to time outreach by funding stage.
Financing Events holds 210,800+ events since 2016 across 155,500+ websites. A live query against the API on September 11, 2026 returned 17,599 Seed and Series A events on file for US companies, which is a workable universe for a single-market scoring model.
3. Expansion: facilities, offices, and headcount announcements
Expansion events are the most underused input in most scoring models, largely because they are hard to get in structured form. The News Events dataset categorizes them explicitly: expands_facilities, expands_offices_in, expands_offices_to, opens_new_location, and increases_headcount_by. Two records found on September 10, 2026 show the range. AEVEX Corp. (NYSE: AVEX) announced expanded manufacturing and office space in Florida and Virginia, with production-scaling language attributed to its CEO in the source article. Options Technology Ltd. registered an increases_headcount_by event of 12 in its Singapore office.
Those two events deserve different weights, and the structured fields let you assign them. The AEVEX record carries a facilities expansion across two states; the Options Technology record carries a specific headcount integer and a location_data object. A model that treats both as “expansion news” is throwing away the resolution it was given. A live query on September 11, 2026 returned 86,676 headcount-increase and office-expansion News Events on file for US companies. For the wider category map, see our breakdown of the 37 news event categories that signal a GTM opportunity.
4. Technology evidence: new detections and detection age
Technology Detections provide evidence of which technologies a company uses or has recently used, gathered from five sources: website script tags, DNS records, IP ranges, cookies, and job descriptions. For scoring purposes the two fields that matter most are first_seen_at, which flags a technology that is new to the record, and source_count, which tells you how many independent sources back the detection. The behind_firewall boolean matters too: enterprise tools that never appear in a website’s script tags, including Salesforce, Snowflake, and HubSpot, are frequently evidenced through job descriptions instead.
Be careful in the other direction. A detection that stops appearing is “no longer detected,” not proof that a company dropped a vendor. Script changes, recrawl gaps, and signature changes all produce the same absence. Score a quiet detection as a prompt to investigate, never as a confirmed churn event. Our piece on technology adoption signals works through that distinction in more detail, and what the average tech stack looks like at every funding stage gives you a baseline to compare a detection against.
The dataset holds 1.5B+ detections since 2018 across 95M+ domains, covering 50,000+ tracked technologies.
| Signal family | Dataset | Date field to score on | What it can indicate | What it cannot tell you alone |
|---|---|---|---|---|
| Hiring | Job Openings | first_seen_at, posted_at |
A function is being built out or backfilled | Whether the role is funded, new, or a backfill |
| Funding | Financing Events | effective_date |
New budget and a stated growth plan | Where the capital will actually be spent |
| Expansion | News Events | found_at, effective_date |
Committed capacity or headcount growth | Whether the plan is funded or aspirational |
| Technology | Technology Detections | first_seen_at, last_seen_at |
Evidence of current use, planned adoption, or a required skill | Seat count, spend, contract date, or renewal timing |
Signal Stacking: Two Signals in One Window Beat One Signal Twice
Signal stacking means awarding a bonus when two different signal families fire at the same account inside the same window. It works because different families fail in different ways: hiring can be a backfill, a funding round can sit in the bank for two quarters, and a technology detection can come from a contractor’s job posting. When two independent families point the same direction in the same month, the probability that all of them are noise drops sharply.
A Live Signal Stack: Ramona Optics, Inc.
Here is a stack pulled live on September 11, 2026 at one real company. Ramona Optics, Inc. (ramonaoptics.com) is a Durham, North Carolina company whose PredictLeads record shows an engineering stack built around machine vision and CAD tooling. Between April and July 2026, detections for PyTorch, TensorFlow, NumPy, SciPy, SOLIDWORKS, and Onshape appeared, sourced from engineering and machine vision job postings in that window. On July 21, 2026 a Rippling detection appeared. Today, September 11, 2026, a Salesforce detection appeared with a first_seen_at of the same date, sourced from an open job posting in a Sales occupation, O*NET 41-4011.00.
Read that carefully, because the framing matters. The Salesforce detection is evidence that Ramona Optics uses or intends to use Salesforce, sourced from a job description that lists it. It is not proof of a signed contract, a seat count, or a go-live date. What makes it worth scoring is the pairing: a company whose detection history has been almost entirely engineering tooling now has a commercial-systems detection and an open technical sales role in the same window. That pairing is stronger supporting evidence of a commercial build-out than either record on its own, and a scoring model should reflect that without overstating it.
The Stacking Rule to Apply
Practically: pick a stacking window of 30 to 60 days, award the normal points for each family, then add a flat bonus for each additional distinct family that fires inside the window. Do not scale the bonus by volume, or a company that posts 40 engineering roles will drown out a company that posted one sales role and closed a round. The approach generalizes; see how GTM teams combine hiring, news, funding, and technology changes for more patterns.
How to Build the Model: A Seven-Step Workflow
Steps 1 to 4: From Raw Signals to a Weighted Event
- Define the account universe. Start from the fit axis, not the signal axis. Filter by location and size first so you are not scoring 130.7M companies to find 4,000. The
/discover/companiesendpoint takes location and size bands directly. - Pull the four signal families per domain. One call per family, keyed on the same company domain:
/companies/{domain}/job_openings,/companies/{domain}/financing_events,/companies/{domain}/news_events, and/companies/{domain}/technology_detections. Full parameters are in the PredictLeads API documentation. - Normalize each row to a dated event. Collapse every record into the same shape: company domain, signal family, event subtype, event date, source URL. Teams that skip this step are the ones whose scores cannot be audited later.
- Assign base weights. Anchor them in your own closed-won history. Pull the signal history for your last 100 closed-won accounts, look at which families appeared in the 90 days before the opportunity was created, and weight in that order. Weight by what preceded your wins, not by what feels important.
Steps 5 to 7: Decay, Stacking, and Write-Back
- Apply a decay curve per family. Funding stays relevant longer than a single job posting, so give each family its own half-life rather than one global expiry.
- Add a flat stacking bonus. One bonus per additional distinct family inside the window. Cap it, so the maximum stack bonus cannot exceed the largest single-family weight.
- Write the score back with its evidence. Push the number and the rows that produced it. A rep who can see “Salesforce detection first seen 2026-09-11, sourced from this job posting” will use the score; a rep who sees “87” will not. Our guide on adding hiring, technology, news, and company signals to CRM data covers the write-back patterns.
Teams that run this as a live agent rather than a batch job point the same seven steps at the PredictLeads MCP server, which exposes the same datasets to an AI agent at query time.
Setting Weights and Decay Without Overfitting
Start simple and let the data argue you out of it. The table below is a defensible v1 for a mid-market B2B SaaS motion. Treat the weights as starting positions to be revised against your own closed-won evidence, not as benchmarks.
| Event | Family | Starting weight | Suggested half-life | Why |
|---|---|---|---|---|
| Seed or Series A closed | Funding | 25 | 180 days | Budget arrives before the spend does |
| Facilities or office expansion announced | Expansion | 20 | 120 days | Committed capacity, slow to reverse |
| New detection for a technology you integrate with | Technology | 18 | 90 days | Integration and displacement windows are short |
| Three or more roles opened in one O*NET family | Hiring | 15 | 60 days | Concentrated hiring is a build-out, not churn |
| Headcount-increase event with a stated number | Expansion | 12 | 90 days | Confirmed growth, size known from headcount |
| Single senior role opened | Hiring | 6 | 45 days | Could easily be a backfill |
| Second distinct family inside the window | Stack bonus | +10 | Expires with the window | Independent families rarely misfire together |
Three guardrails keep this honest. First, cap any single family at roughly 40% of the maximum possible score, or the model becomes a hiring-volume model with extra steps. Second, recalculate scores on a schedule, not only on new events, otherwise decay never actually runs and yesterday’s score is permanent. Third, review the weights quarterly against closed-won data. If expansion events preceded 40% of your wins and you weighted them at 8, the data has told you something.
Every PredictLeads dataset is point-in-time and timestamped, so decay can be computed against the actual event date rather than against the date your pipeline happened to run.
Five Mistakes That Break a Growth-Signal Lead Scoring Model
- Scoring a detection gap as churn. A technology that is no longer detected may have changed its script signature, moved behind infrastructure a crawler cannot see, or simply missed a recrawl. Route it to a human as a question, never to the score as a negative.
- Counting instead of stacking. A company with 15 open engineering roles has one signal repeated 15 times. A company with one open role and a closed round has two independent signals. Models that sum raw counts consistently rank the first case above the second.
- Shipping without decay. A model with no decay curve is a cumulative activity log. Within two quarters, the highest scores belong to the largest companies, which is the firmographic bias you built the model to escape.
- Matching on job title strings. Titles are marketing copy. “Growth Ninja” and “Demand Generation Manager” are the same hiring intent, and only a standardized occupation code will tell you so.
- Storing the score without the evidence. If the row that produced a point is not stored next to the point, the model cannot be audited, tuned, or defended in a pipeline review. Store the source URL every time.
For the trigger-timing side of this, which is the natural companion to scoring, see our guide to sales trigger events and outbound timing and our walkthrough of using company news events data for sales triggers and lead scoring.
How PredictLeads Supports Growth-Signal Lead Scoring
PredictLeads is a company intelligence and technographic data provider, not a scoring platform. It supplies the timestamped, source-backed signal layer that a scoring model runs on, and it supplies all four families against the same company domain, so you are not reconciling three vendors’ company identifiers before you can add a single point.
- Job Openings: 279.2M+ records since 2018 across 2.9M+ company websites, every posting classified with an O*NET occupation code, plus
seniority, 26 job categories, and salary fields. - Financing Events: 210,800+ events since 2016, with
financing_type_normalizedfrompre_angelthroughseries_j,amount_normalizedin USD, named investors, andsource_urls. - News Events: 10M+ signals since 2016 across 37 categories, including the five expansion categories, with a
confidencescore andmost_relevant_sourceon every record. - Technology Detections: 1.5B+ detections since 2018 across 95M+ domains and 50,000+ technologies, from five sources: script tags, DNS records, IP ranges, cookies, and job descriptions.
Two differentiators matter specifically for scoring. The first is multi-source detection with a behind_firewall boolean: enterprise systems that never appear in a website’s script tags can still be evidenced through job descriptions, which is why a Salesforce detection can appear for a hardware company whose public site shows nothing of the sort. The second is source transparency, since every detection links back to the subpage URL, job opening URL, or DNS record that produced it, so step seven of the workflow above is a data field rather than a research project.
Extending the Model and Delivering the Score
Once the model is running, adjacent datasets extend it cheaply. Similar Companies covers 18.9M+ companies with up to 50 lookalikes each and a text reason for the top 20, so a high-scoring account becomes a source of new accounts. Connections holds 371.8M+ categorized company relationships since 2019 for warm-path and ecosystem mapping. Website Evolution tracks 776M+ subpages since 2021, which turns a new pricing or integrations page into another dated event you can score.
Delivery matches how you build. The REST API suits enrichment at request time, flat files suit warehouse ingestion into Snowflake or BigQuery for a backfill and model-fitting exercise, webhooks push new signals the moment they are detected so scores recalculate on arrival, and the MCP server exposes the same datasets to AI agents. PredictLeads is SOC 2 Type II certified, GDPR and CCPA compliant, collects only publicly available information, and holds no personal contact records in its company intelligence datasets.
Final Thoughts on Building a Lead Scoring Model With Growth Signals
The hardest part of a growth-signal lead scoring model is not the math. It is the discipline to keep every point traceable to a dated, sourced event, and to let points expire when the event stops being recent. Ship a v1 with four families, one decay curve each, and a flat stacking bonus. Then spend your tuning time on the closed-won comparison, because that is the only evidence that tells you whether your weights reflect your market or just your assumptions. If you want the broader signal landscape before you pick weights, start from hiring signals for B2B account prioritization and work outward.
Ready to see this in your own data?
Get 100 free API requests when you create an account – no credit card, no sales call.
Frequently Asked Questions
What is a lead scoring model based on company growth signals?
It is a scoring system that awards points to dated, observable changes at a company rather than to fixed attributes like industry or employee count. The four signal families that carry most of the weight are hiring, funding, expansion, and technology evidence, because each one is timestamped and can therefore be aged and expired. It usually runs alongside a firmographic fit score, not instead of one. With PredictLeads, all four families resolve against the same company domain across 130.7M+ tracked companies.
Which growth signals should carry the most weight in a lead scoring model in 2026?
Weight the signals that appeared most often in the 90 days before your own closed-won opportunities were created, not the ones that sound most compelling. As a defensible starting point, fresh funding and committed facility expansion tend to outrank a single job posting, because both represent money already raised or already spent. Concentrated hiring in one occupation family sits in the middle. PredictLeads Financing Events uses financing_type_normalized values from pre_angel through series_j, so round type can be weighted precisely rather than lumped together.
How long should a growth signal stay in a lead score before it decays?
Give each family its own half-life rather than one global expiry, because they age at different rates. A funding round can reasonably stay relevant for around 180 days, a facilities expansion for roughly 120, a new technology detection for about 90, and a single job posting for 45 to 60. Every PredictLeads record is point-in-time and carries first_seen_at, last_seen_at, or effective_date, so decay is computed against the real event date rather than against your pipeline run date.
Can a missing technology detection be scored as a negative signal?
No. A technology that is no longer detected has several possible explanations: a changed script signature, a recrawl gap, a move behind infrastructure the crawler cannot observe, or an actual vendor change. Treat it as “no longer detected since [date]” and route it to a human for review rather than subtracting points automatically. The last_seen_at and source_count fields on PredictLeads Technology Detections give a reviewer enough context to judge which explanation is most likely.
How do you combine growth-signal scoring with firmographic fit scoring?
Keep them as two separate scores and route on the pair. High fit plus high growth goes to an AE immediately, high fit plus low growth goes to nurture, and low fit plus high growth goes to marketing as evidence that your ICP definition may need widening. Collapsing both into one number hides which half is driving the ranking, which makes the model impossible to tune. The PredictLeads Companies dataset supplies the fit axis with structured location, NAICS6 codes, revenue ranges, and headcount across 195 countries.