Signal-based outbound with Clay works in five layers, built in order: a defined total addressable market (TAM), a fit score for every account, custom intent signals with clear definitions, routing into the CRM, and sequences that change with the signal. Most failed Clay projects skip straight to the last layer. The rule we work by: no signal gets built until the TAM and the fit score are trusted, and no sequence goes live until routing works.
This guide is how RevenueHoop's Clay engineering team builds that stack for US B2B SaaS companies.
What is TAM building in Clay?
TAM building in Clay means turning your ICP into a complete, deduplicated list of every account that could buy, sourced from several data providers and kept fresh on a schedule.
A static list exported once a year is not a TAM. A Clay-built TAM is a table with:
- Explicit inclusion rules: industry, headcount band, geography, tech stack, business model.
- Explicit exclusion rules: current customers, open opportunities, competitors, partners.
- Multi-provider sourcing, so coverage doesn't depend on one vendor's blind spots.
- A CRM match key, so every row is checked against what is already in HubSpot or Salesforce.
- A refresh cadence, so new companies enter and dead ones leave.
If the TAM can't answer "is this company already in our pipeline?", every later layer inherits the error.
How do you score accounts in Clay?
Account scoring in Clay combines a fit score, which says how closely the account matches your ICP, with a signal score, which says how likely it is to buy now. Keep them separate. A perfect-fit account with no activity and an average-fit account with three live signals need different plays.
Build the fit score from your closed-won data, not from opinion:
- Pull your best-fit closed-won accounts from the CRM.
- Enrich them in Clay with the same fields as the TAM.
- Find the attributes that separate won from lost: tech installed, team size in a function, funding stage, hiring patterns.
- Weight those attributes and score every TAM account.
- Write the score back to a CRM field reps already see, with the reasoning attached.
AI columns can help with the attributes that aren't in any database, such as "does this company sell to enterprise?" or "do they mention a competitor on their site?". Constrain them: named sources, a fixed output format, and an empty result rather than a guess when the model can't verify.
What counts as an intent signal?
An intent signal is an observable event that makes a fit account more likely to buy in the near term. A useful signal has four parts: a definition, a source, a freshness window and an action. A signal without a defined action is just a dashboard.
| Signal | Example source | Freshness window | Typical action |
|---|---|---|---|
| New leader hired in the buying function | Job-change and people data | 30–90 days | Personal outreach to the new leader |
| Job posts naming a competitor or your category | Job boards | 30 days | Sequence that references the hiring need |
| Funding round | Funding databases and news | 60 days | Account prioritised, exec-level outreach |
| Tech installed or removed | Technographic providers | 90 days | Displacement or integration play |
| Champion moved to a new company | Job-change tracking on past contacts | 90 days | Warm outreach from the original owner |
| Website or pricing-page visits | First-party visitor identification | 7 days | Alert the account owner, plus a fast follow-up |
| Topic intent | Third-party intent data, e.g. ZoomInfo | 14–30 days | Raise the priority; combine with another signal |
Custom signals are where Clay earns its place. Rather than relying on one vendor's opaque intent score, you define the events that predicted closed-won for you and track exactly those.
How do Clay and ZoomInfo work together for signals?
They work best as layers, not rivals. ZoomInfo supplies contact data and intent; Clay orchestrates it alongside other providers and handles the long tail. If you already license ZoomInfo, Clay can call it first and fall through to other providers only when it comes back empty, so you don't pay twice for the same record.
RevenueHoop is a ZoomInfo partner and builds both. See ZoomInfo GTM Studio for that side of the stack.
How do signals reach reps?
Through the CRM, not through Clay. This is the step most Clay implementations skip and the main reason they get abandoned. If a rep has to open Clay to see the insight, the insight doesn't exist.
A working routing layer:
- Writes fit score, signal and signal date to named CRM fields with clear provenance.
- Assigns the account to an owner using territory, segment or round-robin rules.
- Alerts the owner in Slack or the CRM with the context needed to act.
- Escalates or re-routes if nobody touches it within an agreed window, often 48 hours.
- Protects human-owned fields so enrichment never overwrites what reps know.
How do you build outbound that acts on the signal?
Build sequences per signal, not per list. A new-leader signal, a competitor job post and a pricing-page visit each need a different first line, offer and urgency. Clay can generate first-line research from the signal, but keep a human check wherever a customer sees the output, at least until quality is proven.
Treat deliverability as part of the build, not an afterthought: sending domains, warmup, volume ramp and suppression lists. Clay feeds the sequencer you already use, whether that is Smartlead, Instantly, Lemlist, Apollo or Outreach.
For research and qualification that reads more context than a form field, Clay can call Claude. See Claude for GTM.
How long does it take to build?
RevenueHoop delivers this stack in one of two shapes, described on how we work:
- A 3-month accelerator project: a two-to-three-week audit and signal map, then TAM, scoring, signals, routing and first campaigns live inside the build window.
- A 6-month retainer: the same build, followed by ongoing work on new signals, new segments, credit efficiency and reporting against pipeline.
Everything is built in your Clay workspace and CRM, under your accounts, and documented as it ships.
What are the most common mistakes?
- Enriching a dirty CRM. Duplicates multiply. Settle account definitions and dedupe rules first.
- Too many signals at once. Start with three that map to closed-won, and add more only after they've proven out.
- No cost controls. Order waterfall providers cheapest first and stop once a field is filled. Track cost per enriched record per provider.
- No owner for signal fields. Every field Clay writes needs an owner, and Clay should not write to human-owned fields.
- No documentation. If only the agency can change a table, you've bought a dependency, not a system.

