
This is a companion to the published Always-On Outbound Engine.
The system that scores and ranks every account and every contact in our ICP into one list for our SDRs, rebuilt daily. This playbook covers those who don't meet the threshold for a 'warm' contact: roughly 90% of the universe, who never clear the bar.
Cold here is a state rather than a list. Contacts fall into it when their signals age out, and they arrive in it having never engaged at all. What follows is what the system does with them, and how around 5,000 buyers have crossed back the other way.
1. The ICP list
The full addressable universe. Every contact a seller would plausibly want to speak to, which comes to roughly 100,000 people.
This isn’t a target list. It’s the population the engine works across continuously, and the problem it creates is the reason the whole system exists: 100,000 contacts, and no way for a rep to know which ones matter this morning.
It’s built from ZoomInfo data and filtered against Salesforce, which strips out existing customers, legal blocks, and any status flagged do-not-contact.
2. Scoring, and the threshold
Scoring runs continuously at both account and contact level. Below the threshold routes to cold. Every contact carries a score between 0 and 1, made up of:
Each recorded signal, individually weighted. Company growth, person and account web visits, person-level intent, social media engagement, marketing activities they have taken part in, past sales engagements and champion moves all feed the same number.
An initial score, before any behavior is recorded.
Half-life and decay, applied on top.
A likely-to-engage modifier, which boosts the total.
Decay is the mechanic worth spending a paragraph on, because it’s what makes cold a state rather than a list. A content syndication download from four months ago scores zero. Nobody should be picking up the phone today on the strength of a blog somebody downloaded a third of a year ago, and the score reflects that.
Two populations end up in cold:
Decayed. They engaged once, and it aged out.
Genuinely unknown. Zero contact signals, zero account signals, and they may never have heard of ZoomInfo.
3. Persona and company mapping
Every cold contact gets copy built specifically for them before anything sends. This is the step teams would often skip on cold, and it’s the one that makes the play interesting. It’s per-contact generation rather than segment-level templating.
The inputs:
Persona and function
Account summary, pulled from ZoomInfo
Contact brief
Company scoops
Any prior company-level engagement
A Head of Brand Marketing receives copy about marketing use cases and content. A sales director at the same company receives sales specific content. Company-level context is fed into the copy, or relevant historical information from the contact brief, to build relevance into the messaging.
What’s deliberately not used: Contact-level signals, because there are none, and that’s the definition of cold. Account-level signals can be fed in, so a relevant company scoop could inform the copy.
4. The five-email sequence
Five emails, sent on behalf of sales VPs. No SDR involvement at any point.
Sending from a VP alias rather than an SDR does two things. It keeps rep capacity entirely on warm contacts, and it sets up the later handoff. When somebody does convert, the SDR can open on or leverage "I work on his team," which is a warmer entry than a cold dial.
5. Low-friction destinations
Every CTA points at content, never at a meeting. Nobody sends five emails to a zero-signal contact and asks for nothing, which is exactly what makes it work.
The destinations used are blogs, case studies, e-books and GTM.AI. The reasoning behind that:
A demo ask against zero signal converts close to nothing, and burns the contact.
A content click is a signal, and the engine only needs a signal.
Familiarity is the secondary objective. For many of these contacts, the goal is simply that the name ZoomInfo registers at all.
The sequence isn’t trying to book a meeting. It’s trying to manufacture a data point.
Example outreachMight be useful, [Company]Hi [Name], no pitch here. Teams in [industry] at [Company]'s size tend to run into [specific problem] around the point they start [growth signal]. Here is how a few of them have handled it: [resource].
If it’s not relevant, ignore this one and I won’t keep pushing.
6. Signals tracked
Any signal, from any source, not just this campaign. Contacts don’t have to engage with the sequence to progress, and that detail changes how the whole play should be understood.
There are multiple routes to then evaluate and re-score the contact:
Campaign-driven. They click, engage or they visit GTM.AI within the hour, and it registers.
Independent. They start a new job. They visit a competitor's G2 page, which registers as category intent.
Somebody who never opens a single email but shows an unrelated signal still feeds into the system. The sequence runs underneath as support, and the scoring engine is what’s actually doing the work.
Read it accordingly. The cold sequence is there to support the overarching scoring and prioritization of the full ICP, not a conversion mechanism.
7. Rescored
The new signal enters the same scoring model described in step 2. Weighted, decayed, added to the total.
There’s no separate cold graduation logic. One scoring model, one threshold, and contacts moving across it in both directions continuously.
8. Routed to warm
The contact crosses the threshold, joins the daily prioritized list, and goes to an SDR. They land in the top 150 to 400 sent to sellers each morning, alongside contacts who were never cold. From this point the Always-On Outbound Engine takes over.
Two details worth keeping in mind:
A cool-down period runs before an SDR calls. Deliberate, not incidental.
The talk track references the VP's emails, not the click. "I work on his team, wanted to see if you had any questions" rather than "we saw you visited our site."
Watch Florin utilize this play on GTM Studio

FAQs for the cold path
What makes a contact cold in this system?
A score, not a label. Every contact carries a score between 0 and 1 built from weighted signals, and decay pulls that score down as signals age. Two populations end up below the threshold: contacts who engaged once and aged out, and contacts with zero signals who may never have heard of ZoomInfo.
Why send five emails to someone who has never engaged?
The sequence isn’t trying to convert. It’s trying to produce a data point the scoring engine can act on. A content click is a signal it can use to factor into re-scoring. Familiarity is the secondary objective, since for many of these contacts the goal is simply that the name registers at all.
Why does the sequence never ask for a meeting?
A demo ask against a zero-signal contact converts close to nothing and burns the contact for later. Every CTA points at content instead: blogs, case studies, e-books and GTM.AI. The click is what the system is actually after.
Do contacts have to engage with the emails to move to warm?
No. The engine tracks any signal from any source. A contact who never opens a single email but starts a new job, or visits a competitor's G2 page, still crosses the threshold. The sequence runs underneath as support rather than as the conversion mechanism.
Why send from a sales VP rather than an SDR?
It keeps rep capacity entirely on warm contacts, and it sets up the later handoff. When a contact does convert, the SDR opens with a reference to the VP's emails, which is a warmer entry than a cold dial.