Signal-based outbound

Trigger outreach off events that mark an account entering a buying window, rank signals by how tightly they predict a buy, and route each one to the play and the human that fit. The workflow, the reply math, the decay curve.

GTM Engineering guide

Woodpecker sorted 26,000 campaigns by how much targeting went into each one. Spray-and-pray replied at 1 to 3%. Segmented bulk got 3 to 7%. Signal-triggered outreach hit 10 to 20%, and fully personalized reached 20 to 40%. That is a 3-to-10x swing on the same product, the same offer, the same rep. The difference is whether you reached someone the week their world changed or on a random Tuesday.

A signal is an event that says an account entered a buying window. A high-intent list sitting in a spreadsheet is not a signal. It counts only once you have wired it to a workflow that picks the buyer, writes the reason-to-believe, and sends inside the window. Most of the value is timing, and timing decays fast enough that a weekly batch job throws half of it away before a rep ever opens the queue.

10-20%
Reply rate on signal-triggered sends vs 1-3% spray (Woodpecker, 26k campaigns)
+114%
Win-rate lift when a champion changes jobs into a target account (UserGems 2025)
22% → 7%
Reply rate as a signal ages from 72 hours to two weeks

Rank signals by how tightly they predict a buy

Not all signals carry the same weight, and treating a weak one as strong is the fastest way to burn a list. First-party beats third-party. A single event alerts you; stacked events convert. A signal from the last 7 days is worth roughly 3x the same signal from a month ago. Rank them before you wire anything, because the rank decides which signals earn a rep’s 1:1 queue and which get a light sequence at most.

Signal strength, strongest to weakest
Relative predictive weight. Champion job-change and PQL are first-party and buy-intent; third-party company intent is the noisiest.
View as table
StageValue
Champion job change / PQL95
Web deanon (own site)78
Funding (relevance-gated)62
Technographic add50
New hire in role44
LinkedIn engagement32
Third-party company intent22

Funding sits mid-pack for a reason. A raised round is only a signal if what you sell maps to where the money goes. A new exec spends about 70% of their budget in the first 100 days, so a champion moving into a buying role at a target account beats almost anything, up +114% on win rate in the studies, with a bigger average deal and a shorter cycle attached. Funding you act on inside 7 to 14 days. A pricing-page revisit you act on the same day. The table is the routing rule, so write it down and let the workflow read from it:

SignalPartyPredictive weightAct withinRoute to
Champion job changeFirstHighest7 daysRep 1:1, warm referral
PQL (product-qualified)FirstHighestSame dayRep 1:1, usage-anchored
Web deanon on own siteFirstHighSame dayRep 1:1 or light 1:1
Funding roundThirdMedium (relevance-gated)7-14 daysLight sequence + rep review
Technographic addThirdMedium14 daysSequence
New hire in roleThirdLower30 daysSequence
Third-party company intentThirdLowestmonitorNurture, never 1:1

Sources: Woodpecker reply tiering (26,000 campaigns); champion job-change lift (UserGems 2025); PQL conversion 20 to 30% (vendor-claimed). The rank matters more than the exact number. Route a third-party intent whisper to a rep’s 1:1 queue and you have taught the rep to distrust the whole system.

The router One signal in, one play out
Event firesjob change, PQL…Score + thresholdstrength x recencytier 1weakerRep 1:1 queuewarm, event-ledLight sequencefloors coverage
The signal decides the play, the persona, and whether a human touches it. Strength and recency gate everything before it reaches a rep.

Route the signal to the play, not to a shell sequence

The signal decides the play, the persona, and whether a human touches it. A champion job-change is a warm congrats and a referral ask, not a 12-email cold sequence. Dropping a strong first-party signal into a generic drip throws away the timing you paid to detect. The published register mocks the tired version of this for a reason: “I noticed you started a new job” no longer differentiates anyone, because every tool now sends it. The play is the referral and the context, not the observation.

The play library is small on purpose. You do not need a play per signal type. You need a handful of shapes, each mapped to a persona and a CTA, so a rep can execute without inventing copy under time pressure:

PlayTriggerPersonaCTA
Warm referralChampion job changeThe champion, at the new company”Who owns this now on your team?”
Usage-anchoredPQL crossed a thresholdThe active user + their manager”Want the team plan walkthrough?”
Context-led coldJob posting names your categoryThe hiring manager”15 min on how a similar team scaled?”
Relevance-gatedFunding, if spend maps to youThe budget owner in the funded area”Congrats. Here’s where teams your size invest first.”

Everything else is a light sequence that floors coverage. The point of the library is that the workflow assigns the play, so no rep stares at a signal wondering what to send.

Speed and decay set the whole economics

Replies on a signal-triggered send decay fast: about 22% at 72 hours, 11% at a week, 7% at two weeks. If your pipeline pulls signals weekly and a rep works them the following Monday, you are sending into a window that has already half-closed. Daily ingest is the floor for anything time-sensitive, and same-day for a pricing-page revisit or a PQL.

Reply rate decays with signal age
A signal worked at 72 hours replies at ~22%. Wait two weeks and it is ~7%. The weekly batch job throws away the middle of this curve.
View as table
PointValue
72 hrs22%
Day 318%
Day 711%
Day 109%
Day 147%

The decay curve is the argument for the whole architecture. A batch that runs Sunday night and lands in a rep’s queue Monday is already 24 hours into the decay. If the rep does not get to it until Wednesday, you are three days deep and the reply rate has dropped from 22% toward 18%, and that is the good case. Anything on a weekly cadence is sending into the flat tail of the curve where a signal is barely better than a cold list.

Base ICP motion Signal-triggered
Trigger A static list, enriched once, burned down A live event that opened a buying window
Reply rate 3 to 7% (segmented) 10 to 20%
Volume shape Steady, you control it Lumpy; some weeks 40 accounts, some 200
Copy Value prop and proof The event is the opener
Cadence Whenever a rep has capacity Daily ingest, same-day for hot signals
Role Fills the gaps and floors coverage Carries the reply rate
The two motions do different jobs. One floors coverage, the other carries the reply rate.

Volume, deliverability, and the ceiling on sends

Signal volume is capped by how many real events fire, so reps need a base motion underneath to fill the light weeks. The blend I run is 60 to 70% signal-driven, the rest steady-state ICP coverage. That keeps the calendar full without forcing a rep to manufacture urgency that is not there.

The other ceiling is deliverability, and it is unforgiving. Plan on 30 to 50 sends per inbox per day, not the 100-plus a vendor will quote you. The spam-complaint hard cap is 0.30%, a number you never want to approach, with 0.10% as the real target. Cross it and the mailbox provider throttles you into the spam folder, at which point your reply rate is zero regardless of how good the signal was. Signal-based outbound wins here almost by accident: because you are sending fewer, more relevant emails to people whose world changed, complaint rates stay low and the whole program stays deliverable. The full architecture is in deliverability, but the one number to hold is the cap.

# Capacity math for a signal motion
target sends/day        = 240   (the job-posting example above)
sends per inbox per day = 40    (conservative, keeps complaints under 0.30%)
inboxes needed          = 240 / 40 = 6
mailboxes per domain    = 3
domains needed          = 2

Six inboxes across two secondary domains cover the example week. Because signal volume is lumpy, size the inbox pool for the 200-account weeks, not the average, or the hot weeks silently overflow into a slower cadence and you lose the timing you built the whole system to catch.

Build order: from event to booked meeting
  1. 1

    1. Define the signal narrowly

    Event type, keyword filters, ICP constraints. A wide filter is noise you will not action. "Posted any engineering role" is noise; "posted a role naming dbt" is a signal.

  2. 2

    2. Wire a live source

    UserGems for job change, RB2B for US web deanon, Common Room or Trigify for social, Bombora for company intent, or Clay for job postings. Koala is shut down, so do not build on it.

  3. 3

    3. Ingest daily and dedup

    Pull into a Clay table or the warehouse every day, not weekly. Dedup against any account touched in the last 30 days so one account does not get hit three times.

  4. 4

    4. Score by strength and recency

    Weight each signal by its rank and multiply by recency. Only accounts above the floor enter a play; everything below it waits or nurtures.

  5. 5

    5. Pick the persona from the signal

    A security signal routes to the CISO, not the VP Sales already on file. The signal tells you who cares, so let it choose the contact.

  6. 6

    6. Branch: rep queue or sequence

    Tier-1 first-party signals go to a rep for a 1:1 within the window. Weaker signals get a light sequence that floors coverage.

  7. 7

    7. Write outcomes back

    Per-signal conversion tells you which sources to keep paying for and which to cut. A source that never converts is a subscription, not a signal.

The scoring step in the middle is where most builds go soft. It is tempting to blend signal strength and account fit into one number, but that hides the thing you need to see. Keep fit and intent separate, the same discipline covered in scoring and routing: a strong signal at a poor-fit account is not the same as a weak signal at a perfect-fit account, and one score cannot tell them apart. Gate on both, do not average them.

The mistakes that quietly kill the program

The whole motion rests on one input being clean: the contact you reach. A signal that fires on the right account at the right moment still dies if the email bounces, so the enrichment has to be verified before the signal ever routes. That is why signal-based outbound sits downstream of enrichment waterfalls: timing turns a clean address into a reply, but only if the address was clean first. Wire the two together, ingest daily, and start with the one signal you can prove. Everything else is patience.