March 27, 2026

Liam Weedon
10

How to Build a Signal-Driven Outbound Engine in Clay

Most outbound motions are not strategies. They are lists with emails attached.

Someone pulls a batch of companies that match a firmographic profile. 50 to 200 employees, SaaS, Series A to C, based in the US. The list gets enriched with contact details, loaded into a sequencing tool, and sent. Maybe the messaging is personalised. Maybe there is an A/B test on the subject line. But the fundamental approach is the same: cast a wide net based on static attributes and hope the timing is right.

That is not account-based anything. It is volume-based outbound with a targeting filter. And the results reflect it. Low reply rates, high unsubscribe rates, and a pipeline full of deals that stall because the prospect was never actually in-market.

Account-based outbound only works when it is built on signals. Real indicators that a company is experiencing something right now that makes your offer relevant. Without signals, you are guessing. With them, you are arriving at the right conversation at the right time.

This is how we build signal-driven outbound engines at GTM Layer, using Clay as the infrastructure layer.

Why Static Lists Fail

A static list tells you what a company is. It does not tell you what a company is doing.

Knowing that a company has 150 employees and sells B2B software tells you they fit your ICP on paper. It does not tell you whether they are actively hiring for RevOps roles, whether they just switched CRM platforms, whether they raised funding last quarter, or whether their sales team doubled in the last six months.

Those are the things that determine whether your outreach is relevant right now. A company that matches your firmographic profile but has no active trigger is a cold prospect. A company that matches your profile and just posted three RevOps job listings is a warm one. The difference in response rate between those two scenarios is not marginal. It is the difference between a 2% reply rate and a 15% reply rate.

Static lists also decay. A list built today is stale within weeks. People change roles, companies get acquired, headcounts shift. If your outbound engine is built on a snapshot of data rather than a living system of signals, you are always working with yesterday's information.

The shift to signal-driven outbound is not about adding a filter to your existing process. It is about rebuilding the foundation so that every account in your pipeline is there because something happened that makes them relevant, not because they matched a demographic checkbox.

The Architecture: Six Stages of a Signal-Driven Engine

The engine we build has six distinct stages, each handled by a different layer in Clay. Every stage feeds the next, and the output is a prioritised, enriched, scored list of accounts and contacts that routes directly into your CRM and sequencing tools.

Here is how each stage works.

Stage 1: Signal Sourcing

The first table in Clay is the signal layer. This is where you define what triggers matter for your business and pull them in as live data sources.

The signals you choose depend entirely on what you sell and who you sell to. For a RevOps consultancy, the signals that matter are things like: company just posted a RevOps or Sales Ops job listing (they have a gap they need to fill), company recently adopted or switched a CRM or marketing automation platform (they are in a build phase), company raised a funding round in the last 90 days (they have budget and are scaling), company's sales team grew by more than 20% in the last six months (they are scaling GTM and likely outgrowing their current systems).

Each of these signals gets its own column in the Clay table. Some come from built-in Clay enrichment providers. BuiltWith for technology adoption, LinkedIn for hiring signals, Crunchbase or PitchBook for funding data. Others come from custom API calls or web scraping where the built-in providers do not cover the signal you need.

The important thing is that every signal has a timestamp or a recency indicator. A company that raised a Series B two years ago is not the same signal as one that raised last month. The signal is only useful if it is current.

Stage 2: Account Scoring and Tiering

Once the signals are populated, the next layer scores each account based on signal density and recency. This is where the raw data becomes a prioritisation framework.

The scoring logic is built as an AI column in Clay. It takes the signal data as inputs and produces a tier and a rationale. The prompt is specific: given these signals, how strong is the indication that this company would benefit from the services we offer, and how urgent is the likely need?

The output is a tier (typically three or four levels) and a plain-language explanation of why the account scored where it did. The explanation matters because it becomes part of the rep's briefing. A tier on its own is a number. A tier with context ("This company just hired a VP of Revenue Operations and adopted HubSpot within the last 60 days, suggesting they are building their GTM infrastructure from scratch") gives the rep something to work with.

The tiering determines what happens next. Top-tier accounts get full enrichment, personalised outreach, and immediate routing. Mid-tier accounts get enriched and added to a nurture sequence. Lower-tier accounts get monitored for signal changes but do not enter active outreach.

This is where most outbound engines stop. They score and tier, then hand a list to the sales team. The engine we build goes further.

Stage 3: Contact Enrichment

Once accounts are scored and tiered, the next table enriches the contacts at those accounts. This is not just finding email addresses. It is building a contact profile that tells the rep who to talk to and why.

For each target account, Clay identifies the relevant contacts by role. For our use case, that means finding people with titles matching patterns like VP Sales, Head of Revenue Operations, CRO, Director of Sales Operations, GTM Engineer, Marketing Operations Manager. The specific titles depend on who your buyer is, and the matching needs to be broad enough to catch variations (people do not always use the same job titles across companies).

Each contact gets enriched with their current role and tenure (how long they have been in the role matters; someone who started three months ago has different priorities than someone who has been there for three years), their LinkedIn headline and recent activity, and any prior interactions with your company if the data exists in your CRM.

The contact enrichment also includes a cross-reference against your CRM. If this person already exists as a customer, a former customer, or someone who has opted out of communication, they do not make it to the next stage. This is the exclusion logic that prevents the embarrassing "we already work with you" replies that kill credibility.

Stage 4: Personalisation Layer

This is the stage that separates signal-driven outbound from everything else. Using the account signals and contact enrichment, an AI column generates a personalised angle for each contact.

The angle is not a mail merge. It is not "I saw your company raised a Series B, congratulations." It is a specific, contextual observation tied to a likely pain point. Something like: "Your team adopted HubSpot recently and you are hiring for your first RevOps role. Most companies at that stage find that the CRM setup was done by someone who is no longer responsible for it, and the new hire inherits a system that does not match how the team actually sells."

That angle gets stored as a property on the contact record. When the contact routes to a sequence, the rep or the sequencing tool has a ready-made opening that is grounded in real data, not generic flattery.

The quality of this layer depends entirely on the quality of the signals feeding it. If the signals are thin, the personalisation is thin. If the signals are rich, the personalisation is specific enough that the prospect reads it and thinks "this person actually understands my situation."

Stage 5: CRM Push and Routing

Once contacts are enriched and personalised, they push into the CRM with all the context attached. In HubSpot, this means creating or updating contact records with the signal data, the account tier, the personalisation angle, and the recommended action.

The routing logic determines what happens to each contact based on the account tier. Top-tier contacts route to a specific rep or team with a task to reach out within 24 hours. Mid-tier contacts route to an automated sequence with the personalised angle pre-loaded. Monitored accounts get tagged for re-evaluation in 30 days.

The CRM push also sets lifecycle stage and lead status properties so the contact enters your existing pipeline architecture correctly. This is where the outbound engine connects to the rest of your revenue operations. Without proper lifecycle stage assignment, you end up with outbound contacts floating in limbo, untracked and unreported.

Stage 6: Sequence Enrolment

The final stage routes contacts into the appropriate outbound sequence based on their tier and the personalisation angle. The sequence tool (Instantly, Outreach, HubSpot sequences, whatever your team uses) receives the contact with enough context to run a relevant, multi-step outreach cadence.

The key here is that the sequence is not generic. Each tier has its own cadence, its own messaging framework, and its own follow-up logic. Top-tier accounts get a shorter, more direct sequence with a clear call to action. Mid-tier accounts get a longer nurture sequence designed to build awareness over time. The personalisation angle from Stage 4 feeds into the first touchpoint so the outreach opens with something specific rather than a template.

What This Changes

When outbound is built this way, the results are fundamentally different from list-based approaches.

Reply rates increase because every contact is there for a reason, not because they matched a firmographic filter. The outreach references something real about their situation, which earns attention rather than an immediate archive.

Pipeline quality improves because the scoring and tiering means reps spend their time on accounts that have active signals, not accounts that merely fit a profile. The deals that enter the pipeline are more likely to progress because the timing was right when the conversation started.

Sales efficiency goes up because the enrichment and personalisation layers handle the research that reps would otherwise do manually (or, more realistically, skip entirely). A rep receiving a top-tier contact with signal context and a personalisation angle can start a relevant conversation immediately rather than spending 20 minutes on LinkedIn and BuiltWith before picking up the phone.

And the engine compounds over time. As signals update, accounts move between tiers. A company that was mid-tier last month might become top-tier this month because they posted a new job listing or adopted a new tool. The system catches these changes automatically rather than relying on someone to manually re-evaluate the list.

The Build Reality

This is not a weekend project. A properly architected signal-driven engine takes time to build, test, and calibrate. The signal selection needs to be grounded in your actual sales data (which signals correlate with closed-won deals in your pipeline?). The scoring logic needs iteration (the first version will over-weight or under-weight certain signals). The personalisation prompts need refinement (too generic and it feels like a template, too specific and it feels intrusive).

At GTM Layer, this is one of the core builds we deliver for clients. The principles are straightforward and any RevOps team with Clay experience can start building toward this architecture. But the calibration, the signal selection, the scoring logic, and the integration with your existing CRM and sequencing infrastructure is where the complexity lives.

The companies that get this right do not just improve their outbound metrics. They shift from a model where outbound is a volume game to one where outbound is an intelligence system. Every contact in the pipeline is there because the data said they should be, not because someone guessed.

That is what account-based outbound actually looks like when it is built on signals rather than lists.