1/25
Book intro call
ONEGTMLAB
01 / 19
Signal-Based Outbound Playbook 2026

The outbound system that books 250+ meetings a month

A step-by-step guide to building signal-based outbound end to end: 200,000+ LinkedIn signals in, qualified meetings out. Thirteen AI agents, zero intent-platform spend, live in 24 hours.

13
AI agents running the system
200k+
LinkedIn signals captured
$2.5M
Pipeline generated
24 hrs
From zero to live system
Signal-Based Outbound Playbook 2026onegtmlab.com
ONEGTMLAB
02 / 19
What this covers

The full pipeline, from raw signal to booked meeting

Every section tells you what to do, why it matters, and exactly which tool does the job.

Why outbound fails now
The six structural mistakes in almost every outbound motion we audit.
Signal capture
200k+ buying signals from LinkedIn with Clearcue, synced every 30 minutes.
Job-posting intelligence
Every posting read semantically by Claude: the internal shift, not a surge score.
Free qualification gates
The title dictionary and blocklists that reject before you spend a cent.
Live verification
Current employer verified live, because 1 in 5 database rows is stale.
The email waterfall
70 to 80% verified coverage with under 1% bounce, anchored to LinkedIn URLs.
AI message generation
One Claude agent per prospect, three situations, anti-surveillance rules.
Sending + inbound
HeyReach via API, live-thread dedup, and website visitors fed into the same pipe.
The audit + action plan
Green flags, red flags, and the exact order to build in.
Most relevant for: B2B teams with a working offer and an active outbound motion, from seed-stage founders to agencies. The frameworks assume you have a defined ICP.
What This Coversonegtmlab.com
ONEGTMLAB
03 / 19
The problem

Why most outbound is dead on arrival

The same six structural mistakes appear in almost every account we audit. They are data problems, not copy problems.

Static database lists
Roughly 1 in 5 contacts changed jobs since the row was written. You pitch their old employer.
Intent platforms score accounts, not people
$60k to $100k a year tells you an account is "surging" and nothing about who or why.
One template for 10,000 people
Merge-field personalization reads as merge-field personalization. Reply rates show it.
Cold openers mid-conversation
No dedup against live threads, so warm prospects get a template and go cold forever.
No memory between campaigns
The same contact re-bought and re-enriched every quarter because nothing persists.
Titles trusted at face value
Keyword filters grade "VP Talent" as a security buyer. Provider seniority labels are worse.
The core insight

Outbound fails at what enters the sequencer, not at the copy. Fix the data pipeline and reply rates follow.

Why Outbound Failsonegtmlab.com
ONEGTMLAB
04 / 19
The framework

The 4-phase signal-outbound system

Each phase feeds the next. Every verdict is cached in Supabase so nothing is ever judged twice.

1
CAPTURE — signals in
Clearcue engagement signals, job postings via BlitzAPI, and website visitors via Leadpipe, all landing in Supabase on a cron. Nothing is processed by hand.
2
QUALIFY — free gates first
Title dictionary, competitor blocklist, geo and headcount gates run before any paid call. Then live employer verification on survivors only.
3
PERSONALIZE — context per prospect
Company read from its own website, person research from what they published, and one Claude agent drafting per prospect from real context.
4
SEND — meetings out
HeyReach sequences with per-lead copy, deduped against every live conversation, follow-ups automated, replies mirrored back to Supabase.
The rule that makes it cheap: free gates before paid calls, live verification before enrichment, enrichment only on people who will actually be contacted, and every verdict cached forever.
The 4-Phase Systemonegtmlab.com
ONEGTMLAB
05 / 19
Phase 1 · Capture

Signal capture: 200,000+ signals with Clearcue

First-party LinkedIn signals, not rented intent data. Who is publicly moving on the problem right now, not last quarter.

1
Configure signal types
Engagers of your own posts, engagers of competitor and seed-author posts, profile viewers, and commenters. Configure as many distinct signal types as your motion needs.
2
Sync on a cron, not by hand
A Supabase Edge Function pulls every signal config every 30 minutes and upserts people into the database. Nothing is ever deleted.
3
Keep the full action history
Each person carries their complete tracked-action history as JSON: which signals, how many times, how recently. This later picks the message topic.
4
Enforce the 90-day rule
Engagement older than 90 days is dead and never processed. Dead signals convert like cold lists because they are cold lists.
What a signal actually tells you
WHO is leaning into the problem right now
WHICH topic pulled them in — your message angle
HOW warm they are — count and recency
It is TIMING and ANGLE. It never appears in the copy itself.
Scale note: 200,000+ signals captured to date. At that volume, qualification is the bottleneck, not sending — which is why the next four slides are gates.
Signal Captureonegtmlab.com
ONEGTMLAB
06 / 19
Phase 1 · Capture

Job-posting intelligence: read the hiring page like an insider

BlitzAPI pulls every posting from every target account over the last 90 days. Claude reads each one semantically, not by keyword.

1
Pull every posting, unlimited
All postings from all target accounts, last 90 days, at no per-record cost on the Blitz plan.
2
Read each posting semantically
The tools named in the requirements, the comp band, who the role reports to, and what the role is actually being asked to fix.
3
Roll up to an internal-shift read
Postings per function over time show which team is being built, from scratch or scaled, and which tool decisions are still open.
4
Pick the real decision maker
The org signal, not the job title, decides who gets the message. Reporting lines in postings tell you who owns the budget.
The read no platform gives you

Six security roles that each say "one of the first engineers on the team" is not a surge score. It is an entire function being built from scratch, with every tool decision still open.

Open source
The full job-posting intelligence process is public:
github.com/onegtmlab/job-posting-intel
Job-Posting Intelligenceonegtmlab.com
ONEGTMLAB
07 / 19
Phase 2 · Qualify

The title dictionary: judge every title once, then never again

The highest-leverage gate in the system. Most rejects happen here, at zero cost.

1
Normalize every distinct title
Lowercase, trim, dedupe. 50,000 people usually collapse into a few thousand distinct titles.
2
Judge each title once with an LLM
Buyer or not for YOUR offer, with level, department, and a one-line reason. Semantic judgment, never keyword matching.
3
Cache the verdict forever
The verdict lands in a dictionary table. A database trigger stamps every future person with that title automatically.
4
Gate before any spend
Only dictionary-approved titles proceed to paid verification and enrichment. Everyone else costs you nothing.
Rules that keep it honest
Judge semantically — an LLM reads "Head of Growth" in context
Store the reason with every verdict, so it is auditable
Never regex or keyword-match titles — that graded "VP Talent" as a security buyer
Never trust a data provider's seniority label
Why it compounds: the dictionary grows with every campaign. By month three, most new signals are graded instantly and for free.
The Title Dictionaryonegtmlab.com
ONEGTMLAB
08 / 19
Phase 2 · Qualify

Live verification: never trust a database with "current employer"

Roughly 1 in 5 people changed jobs since their database row was written. Verify live, before a single message is drafted.

1
Verify one profile live
Trigify profile enrichment returns live title, company, and company website for about one credit per person.
2
Verify in bulk
The Apify harvestapi LinkedIn profile scraper runs the same check at roughly $4 per thousand profiles, with full experience history.
3
Flag employer changes
Compare the live employer to the signal-time employer. A mismatch sets an employer-changed flag — sometimes that IS the trigger to reach out.
4
Gate on the TRUE company
Headcount, geo, and ICP gates run against the live-verified employer, never the stale one.
What the numbers say
~1 in 5 signals had a changed employer on live check
$0.004 per profile in bulk — cheaper than one bounced email's reputation cost
Provider databases are never the source of truth for current employer
Signals older than 90 days are not worth verifying at all
Order matters: verify the PERSON first, then enrich the company. Enriching a company the person already left is pure waste.
Live Verificationonegtmlab.com
ONEGTMLAB
09 / 19
Phase 2 · Qualify

Company qualification: read what they actually do

The enrichment waterfall that ends with an LLM reading the company's own words — never its industry tag.

1
Blitz for firmographics
Company size, industry, domain from the LinkedIn page. Unlimited on the plan, so it runs on every survivor of the free gates.
2
Prospeo for the description
A written description of what the company does, pulled by domain. Often enough to judge without touching the website.
3
Firecrawl when it is thin
If the description is empty or the site blocks normal fetches, Firecrawl renders and extracts the homepage as clean markdown.
4
LLM verdict, cached per domain
Keep, or cut as competitor, outreach tool, or not-B2B — with a reason, cached so no site is ever read twice.
The hard rule

Never qualify a company by its industry tag. It was self-selected years ago from a short list: security vendors tagged "Software", agencies tagged "Marketing". Read the description.

What gets cut automatically
Direct competitors — the blocklist grows itself from description scans
Companies that ARE the category you sell
Non-B2B and unreachable sites — excluded, never guessed at
Company Qualificationonegtmlab.com
ONEGTMLAB
10 / 19
Phase 3 · Personalize

The email waterfall: verified or it does not send

Multiple providers in sequence, anchored to the LinkedIn URL so you reach the person — not their 2019 job.

1
Prospeo first
Find the work email from the LinkedIn URL and live-verified company domain.
2
Blitz on the misses
A second independent source catches a large share of what the first missed, at no marginal cost.
3
ZeroBounce everything
Every address is verified before it can enter a sequence. Catch-alls get a second validation pass.
4
Route by mail provider
MX lookup routes Google and Microsoft inboxes into cold sequences; everything else is held back. Alias review is mandatory before launch.
The numbers this produces
70 to 80% of a list lands a verified address
Bounce rate under 1% on cold lists — sometimes 0%
Unverified addresses never send. No exceptions.
Per-inbox volume stays low; scale comes from adding inboxes, not raising caps
Why anchor to the URL: a name+domain guess finds A working address. The LinkedIn-anchored waterfall finds THEIR current address.
The Email Waterfallonegtmlab.com
ONEGTMLAB
11 / 19
Infrastructure

Supabase: the memory that stops you re-buying data

One Postgres database is the system of record for every signal, verdict, and message. Local files are a mirror, never the truth.

Raw signals
Every engager with their complete tracked-action history as JSON. Nothing deleted, ever.
Title dictionary
Every distinct title with verdict, level, department, and reason. Free lookups forever.
Qualification verdicts
Per-person verdicts with live-verified employer and the reason for every keep or cut.
Company cache
Firmographics, descriptions, and website verdicts cached per domain. No site read twice.
Send table
The final list: person, company, history, situation, and the exact copy drafted for them.
Inbox mirror
Every sequencer conversation mirrored back, so dedup and reporting run on real threads.
Principles: store the complete raw payload beside the identifier it enriches, store every verdict with its reasoning, and cache everything — the compounding asset is the database, not any single campaign.
System of Recordonegtmlab.com
ONEGTMLAB
12 / 19
Phase 4 · Send

Dedup against live conversations before anything sends

The fastest way to burn a warm prospect is a cold opener in the middle of a real conversation.

1
Mirror the sequencer inbox
Every conversation and message from HeyReach lands in Supabase on a sync, not in a spreadsheet.
2
Match by URL AND name+company
Platforms often store encoded profile URNs instead of vanity URLs, so URL-only matching silently misses live threads. Name plus company catches them.
3
Route mid-thread people to continuations
Anyone in a live thread is flagged in-conversation and gets a continuation of the real exchange — never a cold opener.
4
Suppress the obvious
Teammates, existing clients, and competitors are suppressed at the database level, before any list is built.
Why this slide exists

In our audits this is the most common self-inflicted wound: the prospect replied last week, and the next touch they get is sequence step one.

Conversation Deduponegtmlab.com
ONEGTMLAB
13 / 19
Phase 3 · Personalize

Message generation: one AI agent per prospect, three situations

Claude drafts every message from the prospect's real context: signal history, live-verified role, what the company does, and any existing thread.

1
in_conversation
A real thread exists. Continue the actual last exchange and close its open loop. Never reference the silence.
2
warm — engaged your content
Warmer tone, and the topic referenced only in the abstract. The specific post or action they engaged is never named.
3
cold_signal
Three-part frame under 100 words: their problem, relevant value, soft ask. The signal chose the timing and topic; it stays invisible.
Hard rules, tested live
Never name the tracked action. "Saw you liked my post" reads as surveillance and kills replies.
Lean-forward CTA: "want me to send it over?" beats every meeting ask on touch one
Ground every hook in one public fact
One voice across all senders — sender is attribution, not a persona
No re-greeting on follow-ups, no "circling back", no filler openers
Model note: drafting quality is the whole product. Cheaper models drift into the banned surveillance phrasing under pressure.
Message Generationonegtmlab.com
ONEGTMLAB
14 / 19
Phase 4 · Send

Sending, follow-ups, and the inbound layer

The sequencer is driven entirely by API — the UI is for reading, not building. And inbound feeds the same pipeline.

1
Build by API, in order
Create the list, push leads with per-lead custom fields carrying their personalized copy, create the campaign, set the sequence.
2
Follow-ups run in the sequence
Each follow-up opens directly on a new value point. No greeting, no "one more thing", no nudges about silence.
3
Replies mirror back
Conversations sync to Supabase, feeding both the dedup gate and honest reporting on real reply rates.
4
Inbound joins the same pipe
Leadpipe identifies website visitors person-level; they enter the same qualification and drafting pipeline as any signal — just warmer.
Deliverability discipline
Low fixed caps per sender seat, always
Scale by adding senders and inboxes, never by raising per-seat volume
LinkedIn and email run as one motion with one suppression list
Why API-only: every list, message, and pause is reproducible and auditable. Nothing depends on what someone clicked in a UI last Tuesday.
Sending + Inboundonegtmlab.com
ONEGTMLAB
15 / 25
Phase 4 · Send

Your profile is the landing page. Audit it before you send.

Every connection request is a click to your profile. When the profile is built to convert, acceptance runs at 50 to 60%. When it is not, the best signal and the best note still die on arrival.

1
Banner that sells, not decorates
Offer, proof, and one CTA in the banner itself. It is the first pixel a prospect sees.
2
Outcome-first headline
If the headline cannot state your value in three seconds, rewrite it. Plain language, no titles-as-poetry.
3
About as a story with a CTA
What you solve, how you solve it, who you help, then the ask. Highlight real results.
4
Featured as the offer shelf
Pin your lead magnet and best proof with 1200x628 visuals. It should pull people deeper.
5
Experience written as landing-page blocks
Short, outcome-focused, with a CTA in every role. Post 3 to 4 times a week so the profile is alive before volume ramps.
How to make LinkedIn a landing page, OneGTMLab infographic
Why this slide exists: this exact audit, run on every sender before launch, is a big part of why acceptance rates in the results slide look the way they do. The profile converts the click; the signal only earns it.
Profile Auditonegtmlab.com
ONEGTMLAB
15 / 19
The stack

The full tool map, by job

The complete menu, organized by job. Every tool has one clear role in the system, and seven of them do the whole job.

Signals
ClearcueLinkedIn engagement
Trigifysocial listening
BlitzAPIjob postings
TheirStackjob postings
Leadpipewebsite visitors
RB2Bwebsite visitors
UserGemsjob changes
Data + enrichment
ProspeoTAM + emails
Apifyprofile scraping
Clayorchestration
AI-Arkprofile depth
Ocean.iolookalikes
FullEnrichwaterfall enrichment
Verification
ZeroBounceemail verification
MillionVerifieremail verification
Scrubbycatch-all validation
Trigifylive employer check
Sending
HeyReachLinkedIn sequences
AimfoxLinkedIn sequences
Smartleadcold email
Instantlycold email
Intelligence
Claudereads, verdicts, drafting
Firecrawlwebsite reading
Parallelperson research
Infrastructure
Supabasesystem of record
n8nvisual orchestration
Cal.combooking
GitHubthe open repos
Seven tools do the whole job. Everything else on this map is a swap for the same role. The $60k intent platform is the line you get to delete.
The Tool Maponegtmlab.com
ONEGTMLAB
16 / 19
Real numbers

What this system produces, from the sequencer itself

All senders, all campaigns, 18 May to 15 July 2026.

Live HeyReach campaign dashboard, first seven days on a new client
Above: the unedited dashboard, 18 May to 15 Jul 2026, all senders and all campaigns: 5990 connections accepted, 566 message replies, 428 InMail replies, 463 interested leads.
Real Numbersonegtmlab.com
ONEGTMLAB
17 / 19
The shift required

Common outbound vs the signal system

Use this side-by-side to spot which part of your motion needs attention first.

Area
Common approach
This system
Data source
Quarterly exports from one static database.
Live signals plus live employer verification before every send.
Qualification
Industry tags and keyword title filters.
Description-based company verdicts and a semantic title dictionary, all cached.
Personalization
One template with merge fields for everyone.
One AI draft per prospect from signal, role, company, and thread context.
Deliverability
Blast every address the provider returned.
Waterfall + verification, ESG routing, under 1% bounce.
Memory
None. The same contact re-bought every quarter.
Every verdict cached in Supabase; the database compounds.
Conversations
Cold openers to everyone, including live threads.
Inbox mirrored and deduped; mid-thread people get continuations.
Common vs Signal Systemonegtmlab.com
ONEGTMLAB
18 / 19
Quick diagnostic

Audit your own outbound in 10 minutes

Run both lists against your current motion. The gaps ARE your roadmap.

GREEN FLAGS: your motion is healthy
Outreach is triggered by signals, within days of the signal
Every title is judged semantically, once, with the verdict stored
Current employer is verified live before anything sends
Bounce rate is under 2% and every address was verified
Copy references public facts, never tracked actions
Nobody in a live conversation can receive a cold opener
Every verdict and message is queryable in one database
RED FLAGS: fix these first
Lists bought quarterly from a single provider, sent as-is
Industry-tag filters deciding who is in the ICP
The same template for every persona and situation
"I saw you liked my post" anywhere in your copy
No record of who was already contacted or replied
Bounce rate above 5%, or unknown
Account Diagnosticonegtmlab.com
ONEGTMLAB
19 / 19
Summary

The priority build order

Everything compounds over 60 to 90 days. If you only do a few things, do them in this exact order.

1
Stand up the database and one signal type
Supabase plus a single Clearcue signal config syncing on a cron. The system exists the day data flows without you.
2
Build the title dictionary before any paid enrichment
It is the cheapest gate and the one that compounds fastest.
3
Add live employer verification
Stop pitching old employers. This single step fixes a fifth of your list.
4
Wire the email waterfall and verification
Verified-or-nothing, ESG routing, low caps per inbox. Deliverability is earned here.
5
Write the messaging rules before scaling volume
Three situations, anti-surveillance, lean-forward CTA. Volume amplifies whatever you have — make sure it is good first.
Both repos are public. Fork them.
signal-outbound-lead-gen-systemjob-posting-intel
Want it run for you?

We build and operate this exact system for B2B teams. Book the free strategy call below — we audit your current pipeline and tell you exactly what to fix, whether or not we work together.

Priority Build Orderonegtmlab.com
ONEGTMLAB
20 / 24
Build it yourself

The exact API calls, copy these

No SDKs required. Three HTTP calls cover live verification and company enrichment. Keys go in environment variables, never in code.

Live verify one person (Trigify)
POST https://api.trigify.io/v1/profile/enrich headers: x-api-key, Authorization: Bearer body: { "profileUrl": "linkedin.com/in/..." } returns: job_title, job_company_name, job_company_website
Live verify in bulk (Apify)
actor: harvestapi~linkedin-profile-scraper run-sync-get-dataset-items input: { "profileScraperMode": "Profile details no email ($4 per 1k)", "queries": [profile_urls] }
Enrich the company (Blitz)
POST https://api.blitz-api.ai /v2/enrichment/company headers: x-api-key body: { "company_linkedin_url": "..." } returns: name, size, industry, domain # domain only? resolve it first: POST /v2/enrichment/domain-to-linkedin body: { "domain": "acme.com" }
Reading resistant websites: POST api.firecrawl.dev/v1/scrape with formats ["markdown"] and onlyMainContent true. Use it only when the plain fetch fails or the description is thin.
The Exact Callsonegtmlab.com
ONEGTMLAB
21 / 24
Build it yourself

The data model and the shard trick

Six tables carry the whole system. And one line of SQL lets parallel workers process the backlog without ever colliding.

The tables
clearcue_engagers raw signals + history title_classification the dictionary engager_qualification verdicts + reasons company_cache firmographics by domain company_web_qual website verdicts outreach_ready final list + copy
Collision-free parallel workers
-- each worker takes shard i of N: WHERE mod( abs(hashtextextended(linkedin_url, 0)), :shards ) = :shard
Data Modelonegtmlab.com
ONEGTMLAB
22 / 24
TAM building

From raw ICP idea to campaign-ready list, two tools

The in-house TAM system: Claude Code driving Prospeo end to end. No 8-tab stack, no point-and-click ceiling.

TAM builder
Define the ICP with 40+ filters: firmographic, industry, size, revenue, funding, tech stack, geo.
Free market sizing
Exact company counts for any filter before pulling, so segments are sized at zero credits.
Signal layering
Funding recency, hiring, headcount growth, M&A news, lookalikes from a seed domain, stacked on the core net.
People finder
Personas by title, seniority, department. Verified emails only, capped per company so outreach spreads evenly.
Enrichment economics
Pay only on hits, nothing on a no-match, and 90-day re-enrich dedup so you never pay twice.
Clean handoff
Everything lands in the database, campaign-ready, with the same gates as the signal pipeline.
Claude Code plus Prospeo TAM system infographic
TAM Buildingonegtmlab.com
ONEGTMLAB
23 / 24
The visual

Job-posting intent, on one page

The full job-posting intelligence flow as we publish it: postings in, decision makers and timing out.

Job postings intent infographic by OneGTMLab
Use it as a checklist: pull postings, read them semantically, roll up the shift per company, and route the message to the person the postings say owns the problem.
Job-Posting Intent Visualonegtmlab.com
ONEGTMLAB
24 / 24
Prioritization

Score the universe, tier it, point GTM where it pays

Signals decide who gets attention this week. ICP scoring decides who deserves attention at all.

1
Universe
Every account in your market, built with the TAM system on the previous slides.
2
Score across signal categories
Firmographics, technographics, intent, buying signals like funding and hiring, and behavioral fit from engagement.
3
Tier by score
Tier 1 above 80 points gets the full personalized motion. Tier 2 at 60 to 79 gets the standard motion. Tier 3 nurtures. Tier 4 waits.
4
Act on the top tiers only
Data-driven prioritization, smarter resource allocation, more relevant outreach, higher win rates.
The GTM balance sheet

Your database, content library, and warm audience are ASSETS that compound. Bought lists decay 2% a month, burned sender domains and message fatigue are LIABILITIES. This whole playbook is asset-building.

Where the meetings come from: Tier 1 accounts showing a live signal this week. That intersection is the entire secret.
ICP Scoring and Tieringonegtmlab.com
1 of 25 slides · arrows, keys or swipe

Ready to build a signal-driven outbound system?

Free 30-min strategy call. We audit your current pipeline and tell you exactly what to fix.

Book a Free Strategy Call →