GTMhub / Labs / Framework
Framework · May 12, 2026 · 9 min read

The AI-native GTM stack: a working architecture.

A framework for thinking about agents, workflows, and data in modern B2B revenue — and why most "AI for sales" tools fail the second they hit your CRM.

The problem with "AI for sales"

Every week we look at a new "AI for sales" tool with a Series B raise and a beautiful homepage. Most are dead within 18 months of touching real revenue. The reason is almost always the same: they're a single-layer product trying to solve a four-layer problem.

An AI sequencer is not a system. A research agent is not a system. A scoring model is not a system. Each of these is a layer. The system is the composition — and most operators don't have it.

This essay lays out the four layers we use in every engagement, why each one matters, and where they break when you skip them. It's the same framework we use internally at GTMhub. We're publishing it because we'd rather more people get this right.

A single AI tool inside a broken GTM motion is faster broken GTM. The motion is the unit of work — not the tool.

Four layers, not one tool

Every AI-native GTM motion that actually compounds has these four layers, in this order:

▾ The GTM AI stack
04
Observability
Runs · costs · evals · audit log
03
Orchestration
Routers · queues · cadence engines
02
Agents
Research · composer · classifier · scorer
01
Signal
CRM · warehouse · enrichment · intent

The order matters. You build bottom-up, every time. Signal first. Then agents. Then orchestration. Observability is laid across everything. Skip a layer and you'll be debugging through a fog.

01 · The signal layer

The signal layer is your data backbone. Before any AI agent runs, your CRM and warehouse need to agree on what an account is, what state it's in, and what just happened to it. Most teams skip this step. It is also the step that breaks every other layer when neglected.

At minimum, the signal layer should produce, daily, for every account in your TAM:

  • State signals — funding round, headcount change, leadership transition, product launch, M&A
  • Behavior signals — website visits, content engagement, demo requests, support tickets
  • Intent signals — third-party intent platforms, ad-spend patterns, hiring patterns, tech stack additions
  • Relationship signals — prior engagements, customer references, competitor displacements

These signals should land in one place — usually the warehouse — with a stable schema. Not in 14 different SaaS tools. The single biggest leverage point in any AI-native GTM motion is having one source of truth your agents can read.

▾ rule

If an agent has to integrate with more than two systems to make a decision, your signal layer isn't done.

02 · The agent layer

Agents are the units of work that run on top of the signal layer. Each agent does one thing well. They are not chatbots. They do not run forever. They run on a trigger, produce a typed output, and stop.

The agents we ship in 90% of engagements:

  1. Research agent — given an account, produces a one-page brief with cited sources
  2. Classifier — given an inbound signal, routes it to the right play or queue
  3. Composer — given a brief + a play template, drafts a sequenced outreach
  4. Scorer — given a deal or account, returns a number with explanation
  5. Summarizer — given a long conversation thread, produces what an SDR needs to know

Each of these is a small, well-tested function with an evaluation harness, a prompt template, a model choice, and a cost budget. None of them is an "agent platform." None of them is a 12-month project. Most of them are a 2-week build.

research_agent.pyexcerpt
# Define the typed output class AccountBrief(BaseModel): company_name: str one_line_summary: str recent_signals: list[Signal] likely_buying_committee: list[Persona] recommended_play: PlayId sources: list[Source] # every claim must cite # Compose: research → eval → emit brief = research_agent.run(account_id) score = evaluator.score(brief) # reject if < 0.85 if score >= 0.85: warehouse.write(brief) orchestrator.enqueue(brief.recommended_play) else: queue_for_human_review(brief, score)

Notice what the agent does not do: it does not write to the CRM directly. It does not pick the sequence template. It does not decide when to send. Each of those is a downstream concern — the orchestration layer.

03 · Orchestration

Orchestration is where most "AI for sales" tools quietly fail. They have a model. They produce an output. And then they... what? Drop a draft into Outreach? Tag a lead in Salesforce? Send an email?

Real orchestration handles four things:

  • Routing — which SDR / AE / queue this output belongs to, based on territory, capacity, prior conversion
  • Cadence — when this outreach goes out, in what sequence, with what backoff if the previous step didn't land
  • Throttling — global limits on total volume per persona, per domain, per day, to protect deliverability and brand
  • Escalation — when to hand a thread back to a human, and exactly which human

You don't need a fancy framework for this. We've shipped orchestration with a few thousand lines of Python, a queue, and the existing sequencer. The point is that somebody has to own the dispatch logic. If it lives nowhere, it lives in your SDR's head, and that doesn't compound.

An agent that produces output but doesn't compose with the next system is not part of a motion. It's a demo.

04 · Observability

Observability is laid across the other three layers. You should be able to answer, at any moment:

  • Which agents ran in the last hour, with what inputs, with what outputs
  • What it cost you (tokens, API calls, third-party data) per output
  • Which outputs passed eval, which were rejected, which were human-corrected
  • Where in the funnel each output ended up — and what happened after

Without this, you cannot tune. You cannot defend the work to your CFO. You cannot improve. You are running on vibes.

Our internal operating layer renders all of this as a console — runs, costs, evals, audit log. You can replicate 80% of it with a few Snowflake tables, Hex notebooks, and a Slack bot for anomaly alerts. Don't wait for the perfect tool.

How to start

If you take one thing from this: don't start at the agent layer. Start at the signal layer. Spend the first month making your CRM and warehouse agree. Tag every account with state, behavior, intent, and relationship signals, daily. Then — and only then — start composing agents on top.

You will be tempted to skip this. The vendors will tell you their tool handles it. They don't. The "AI for sales" tool inside a broken signal layer becomes faster broken GTM. The motion is the unit of work — not the tool.

▾ try us

Our 2-week diagnostic Sprint will tell you exactly where your stack is broken and what to build first. $7.5K fixed. You walk away with a roadmap whether you build with us or not. — Talk to us.

Published May 12, 2026 · Updated May 17, 2026 · Cite this · RSS feed

Subscribe to the Labs

One working framework a week.

Frameworks, failure modes, architectures we've shipped to clients. No takeaways for the sake of takeaways. Just the work, written down.

One email · weekly · unsubscribe anytime