Stacks

The stack, wired

8 tool recipes for GTM engineering. Each is a bill of materials: the exact tools, how they wire together, the number it moves, and where the assembly goes wrong. Filter by outcome or search.

STACK-01

Email waterfall stack

The exact provider chain that lifts email coverage on an ICP list from a single vendor's ~48 to 65% found up to roughly ~68 to 85% found, about 62% verifying deliverable.

WhenYou have company domain and full name but no reliable email, and single-provider match rate is capping reach. The first stack most GTM engineers assemble.

StackClayFindymailProspeoDatagmaZeroBounceSalesforce / HubSpot
ConfigClay runs finder columns cheapest-first, each conditional on the prior returning blank (stop on first hit), then one ZeroBounce column gates on deliverable, then export only valid emails to CRM.
    Assembly
  1. Load domain plus full name into a Clay table; dedupe on email/domain before spending a credit.
  2. Chain 3 to 4 finders as conditional columns, cheapest first; each fires only when the prior returned blank.
  3. Pass every hit through one verification column; keep valid and deliverable, drop catch-all and risky.
  4. Write valid emails to CRM with a source and confidence tag; hold the misses for the phone waterfall.

BenchmarkA 4-tool waterfall reaches ~68% found and ~62% valid, a +23% relative lift on valid-email rate over the best single provider; 5+ providers approach ~85% found; ~$0.56 per valid email. Source: site data-quality and automation-ops metrics.

One vendor is a coverage ceiling, not a strategy. A waterfall adds 20-plus points without inflating bounce, and Clay's conditional columns make cheapest-first ordering trivial versus a hand-built n8n chain.

STACK-02

AI enrichment stack

An LLM and agent layer that writes the judgment fields providers cannot return (ICP fit, use case, one trigger, a qualification summary) straight to the CRM.

WhenDeterministic providers already cover firmographics and email, but you need fit and use-case context no database sells. Sits on top of the email waterfall.

StackClay + ClaygentClaude (Bedrock)Web-scrape inputValidation columnSalesforce / HubSpot
ConfigAccount row to a Claygent or LLM column that reads the homepage and key pages, returns strict JSON (fit yes/no, use case, trigger), a validation column rejects empty or hallucinated output, then write with an agent flag and confidence.
    Assembly
  1. Define the exact structured output (enum fields, not free text); a schema, not a prompt vibe.
  2. Prompt the agent to read named pages and return only that JSON.
  3. Add a validation column that rejects blanks, wrong enums, and low confidence before write.
  4. Write validated fields with a researched-by-agent flag and confidence; sample-audit weekly for drift.

BenchmarkLLM enrichment lands roughly $0.05 to 0.13 per field, far under a human hour. Source: site automation-ops metrics.

Databases sell facts, not judgment. An LLM column produces the fit and use-case context reps actually read, at cents per account. Use Claude for reasoning-heavy qualification and run it through Bedrock to keep account data in your own tenant.

STACK-03

Signal-outbound stack

The tool chain that turns a live buying-window signal (job change, funding, new hire, tech install) into a personalized sequence, hitting 10 to 20% reply versus 1 to 3% for spray.

WhenGeneric outbound reply has collapsed and you want to send only when a real trigger fires, not against a static list.

StackClay / Common RoomLinkedIn job-changeCrunchbase / HarmonicBuiltWithSmartlead / InstantlyOutreach / Salesloft
ConfigSignal source into a Clay table, enrich and ICP-filter, webhook to the sequencer with a signal-specific variable, suppress anyone already in an active sequence.
    Assembly
  1. Pick one high-intent signal with a clear buying window (a job change into a buyer role is the reliable starter).
  2. Pipe it into Clay; enrich and filter to ICP so only qualified rows pass.
  3. Reference the trigger explicitly in the copy, not a generic opener.
  4. Webhook qualified rows to the sequencer; suppress contacts already in flight.
  5. Track reply and positive-reply rate by signal type; kill signals below baseline.

BenchmarkSignal-triggered reply runs 10 to 20% versus spray 1 to 3%; 2026 average cold reply is 3.43%, down from 8.5% in 2019. Source: site outbound-systems metrics.

Freshness is the whole game, and reply rate is the tell for signal versus spray. Clay or Common Room aggregate the trigger and run the ICP gate in one place, so the sequencer only ever sees qualified, time-boxed records.

STACK-04

Cold-email-infrastructure stack

The sending infrastructure (secondary domains, SPF/DKIM/DMARC, warmup, monitoring) that keeps spam complaints under 0.10% and clears the Google and Yahoo bulk-sender gate.

WhenBefore any programmatic outbound at volume, and any time bounce or spam creeps toward the block line. A prerequisite for the signal-outbound stack.

StackSecondary domainsGoogle Workspace / Microsoft 365SPF / DKIM / DMARCSmartlead warmupGoogle Postmaster Tools
Config2 to 3 mailboxes per domain, warm each 2 to 4 weeks, ramp volume 20% or less per week, cap 30 to 50 cold sends per inbox per day, watch Postmaster spam daily, gate every send on verification.
    Assembly
  1. Buy secondary domains (never the primary); set SPF, DKIM, and DMARC on each.
  2. Create 2 to 3 mailboxes per domain; run warmup 2 to 4 weeks before real sends.
  3. Ramp 20% or less per week to a 30 to 50 per inbox per day ceiling; add domains to scale, do not overload inboxes.
  4. Monitor Postmaster spam daily; pause and rotate near 0.10%; gate every send on verification (bounce under 2%).

BenchmarkSpam complaint under 0.10% target, 0.30% hard block (Google/Yahoo Feb 2024, Microsoft May 2025); warmup 2 to 4 weeks then ramp 20% or less per week; 30 to 50 sends per inbox per day. Source: site deliverability metrics.

Since Feb 2024 inbox placement is a hard technical gate, and the 0.30% cap is the binding constraint on how much you can send at all. Secondary domains isolate reputation risk off your primary, and Smartlead gives you mailbox rotation plus warmup in one place.

STACK-05

Speed-to-lead stack

A webhook-driven inbound pipeline that enriches, fit-scores, matches and round-robins, then alerts the owner in under 60 seconds so the first human touch beats the SLA.

WhenInbound leads sit in a queue for hours and speed-to-lead is your highest-ROI unclaimed lever.

StackHubSpot / Marketo formsn8n / Cloudflare WorkerClay / ClearbitLeanDataSlackSalesforce
ConfigForm submit to webhook, enrich and fit-score inline, LeanData match plus round-robin by territory, then owner Slack DM plus CRM task, all synchronous with a fallback owner.
    Assembly
  1. Catch the submission with a webhook, never a nightly batch.
  2. Enrich and fit-score inline; discard or nurture anything below threshold.
  3. Match to account and round-robin assign by territory, with a fallback if the primary is out.
  4. Fire a Slack DM plus CRM task with one-click claim; escalate if unclaimed in N minutes.

Benchmark65% of buyers expect a response under 1 hour; sub-5-minute response strongly lifts qualification (older MIT/HBR heuristic, treat as a heuristic, not a 2025 median). Source: site BDR and automation-ops metrics.

Routing latency, not rep effort, usually blows the window. LeanData handles Salesforce-native matching and round-robin; a Worker or n8n runs the sub-second synchronous path so the whole chain finishes inside the SLA, not on a 15-minute Zapier poll.

STACK-06

Reverse-ETL activation stack

The warehouse-out pipeline that models scores, segments, and signals in SQL and syncs them into the CRM and sequencer, so every tool reads from one governed source.

WhenYour scoring, product usage, and firmographics live in the warehouse but reps work in the CRM, and you need that logic activated in the tools people use without point-to-point spaghetti.

StackSnowflake / BigQuerydbtHightouch / CensusSalesforce / HubSpotSequencer
Configdbt models fit plus intent score and segments in the warehouse, Hightouch or Census syncs the modeled fields to CRM on a schedule, the CRM triggers routing and sequences off those fields, one direction only.
    Assembly
  1. Model the derived fields (score, segment, signal flags) in dbt so the logic is version-controlled and testable.
  2. Define one-way syncs in Hightouch or Census; the warehouse owns these fields, the CRM never writes back.
  3. Map to CRM fields with clear names plus a last-synced timestamp; sync on the cadence the play needs.
  4. Reconcile source-versus-destination row counts on a schedule; alert on drift.

BenchmarkNo settled public number. Set a sync-freshness SLO (modeled fields no more than one sync interval stale) plus a reconciliation check. [unverified] soft target, not a measured median.

A warehouse-native activation layer keeps one governed definition and fans it out, instead of recomputing the score in three tools. Hightouch and Census beat hand-rolled n8n syncs on observability, retries, and idempotency at row scale.

STACK-07

Workflow observability stack

The tool assembly that wraps observability around every other stack: a workflow engine, a run-status log, and Slack alerting, so a silent failure surfaces before it corrupts pipeline.

WhenYou run three or more interdependent automations (enrich, score, route, sync) where a silent failure rots data downstream.

Stackn8n / MakeClayWarehouse / Sheet logSlack
ConfigEvery run writes a status row (success/fail/skip) keyed by record plus run-id, dedupes on the key, and alerts Slack when batch success rate drops below the SLO.
    Assembly
  1. Assign each record an idempotency key so a re-run updates instead of duplicating.
  2. Add retries with backoff on every external call; log success, fail, or skip per run.
  3. Compute a rolling success rate; alert Slack the moment a batch falls below the SLO.
  4. Reconcile source-versus-destination counts on a schedule to catch records that succeeded but never landed.

BenchmarkSet an internal SLO (over 98% is a reasonable start) and alert below it. The SLO is a target, not a measured median. Source: site automation-ops metrics.

Silent failures corrupt data while every dashboard looks green, so this stack is the safety net under every other stack on this page. Pick n8n or Make for native retry and run logging rather than bolting a monitor onto each workflow, so run status lives in one place.

STACK-08

CRM hygiene stack

The dedupe plus re-enrichment plus field-integrity pipeline that keeps the CRM board-ready: no duplicate accounts, no stale contacts, owner and required fields correct.

WhenRouting misfires on duplicates, dashboards double-count pipeline, and contact data decays faster than anyone re-enriches it.

StackSalesforce / HubSpotLeanData dedupeClaydbt / warehouseHightouch / Census
ConfigWarehouse SQL flags dupes (domain/email key), stale records (past the freshness window), and field violations; Clay re-enriches the stale set; LeanData merges dupes; reverse-ETL writes corrections back one-way.
    Assembly
  1. Define keys and rules in SQL: duplicate on domain/email, stale past the decay window, owner and required-field violations.
  2. Route the stale set through Clay for re-enrichment; verify before write.
  3. Merge duplicates with LeanData (or native) on the matched key; never mass-delete blind.
  4. Write corrections back one-way with a source tag; re-run on a cadence, not once.

BenchmarkDedupe rate ~10 to 30% on domain/email keys; email data decays ~22% per year (ZoomInfo puts B2B nearer ~30% per year), so re-enrichment is quarterly, not annual. Source: site data-quality metrics.

Duplicates corrupt routing and inflate both pipeline and enrichment spend, so hygiene is a recurring pipeline, not a project. Warehouse SQL owns the ruleset, so clean is version-controlled, and reverse-ETL writes it back without a fight over source of truth.