The safety layer AI Agents need to not make a mess of your CRM
Full Stack GTM is an open source CLI with RevOps best practices baked in. Built to help agents like Code and Codex not waste tokens re-writing the same boilerplate API calls to your GTM systems. Fully deterministic and with full audit and reversion trail so you never worry about AI running wild in your CRM.
live terminal flow demoLIVE DEMOAI Agents will make a mess in your CRM
We benchmarked ten frontier and open-weight models doing real CRM work — 1,904 graded runs. On raw tools, nine of the ten made writes nobody authorized: overwriting a teammate's mid-run changes, inventing work nobody asked for. Claude Sonnet 4.6 — the same model that scores a perfect 100% with the rails on — made an unauthorized write in 17.6% of its raw runs. The agents weren't malicious. They were unsupervised.
Never make a change without a plan and a backup
fullstackgtm starts read-only. It finds the problems and shows the evidence behind each one, proposes every change as a plan you can review, and applies only what you approve.
auditFind what's broken, read-only
Checks your CRM against deterministic rules — duplicates, ownerless records, stale pipeline, bad close dates — and shows what's wrong with the evidence. It never writes anything.
$ fullstackgtm audit --provider hubspot
CRM health 62/100 (1,284 records scanned)
duplicate-accounts 47 high
ownerless-deals 23 high
stale-deal-no-activity 61 medium dedupeMerge duplicates, keep the best record
Finds duplicates by a key you choose, keeps the most complete record as the survivor, and stages a merge plan. Nothing merges until you approve it.
$ fullstackgtm dedupe account --key domain --keep richest
staged plan pl_8f2a — 47 merges, 0 applied
acme.com 3 → 1 survivor: Acme Inc (most fields)
globex.io 2 → 1 survivor: Globex (newest activity)
approve: fullstackgtm plans approve pl_8f2a --operations all reassignMove ownership in bulk, safely
Reassigns records from one owner to another — a rep who left to their replacement — and skips anything that changed under you or sits on a deal you exclude.
$ fullstackgtm reassign --from 771 --to 805 --objects account,contact
staged plan pl_3c19 — 214 reassignments, 0 applied
skipped 6 records changed since snapshot (drift)
skipped 18 contacts on closed-won deals
approve: fullstackgtm plans approve pl_3c19 --operations all fixApply one rule's fixes in a step
Takes a single audit rule and stages every fix it covers at once, for when you trust the rule and just want it cleaned up. Still a plan you approve.
$ fullstackgtm fix --rule ownerless-deals --provider hubspot --min-confidence high
staged plan pl_a44e — 23 owner assignments (high confidence)
derived each owner from the deal's account owner
approve: fullstackgtm plans approve pl_a44e --operations all callTurn call transcripts into CRM updates
Reads a call transcript and stages the field changes and next steps the rep actually said, each one quoted against the moment in the call. The rep's words become the update.
$ fullstackgtm call plan --transcript acme-disco.txt --deal 99213
staged plan pl_1d70 — 4 updates on deal 99213
next step "send security questionnaire by Fri"
close date Q3 → Q4 ("...realistically next quarter")
amount $40k → $60k
approve: fullstackgtm plans approve pl_1d70 --operations all marketMap what competitors claim
Builds a map of your category from competitors' own pages — which claims each vendor makes and where the ground is still open. Every claim is quoted from a stored capture.
$ fullstackgtm market report --profile acme
category: revops-data-hygiene (9 vendors, 142 claims)
you own: dry-run preview, open-source
contested: governed writeback, CLI/MCP
open: audit-trail compliance reportA client-ready audit deliverable
Writes up the audit — every finding, the evidence behind it, and what changed — as Markdown or a self-contained HTML file you can hand to a client or to finance.
$ fullstackgtm report --provider hubspot --out audit.html
wrote audit.html (self-contained, 1,284 records, 143 findings)
findings by rule · evidence quotes · applied-change log enrichAdd qualified leads without duplicates
Scores sourced prospects against your ICP, resolves every candidate against the CRM first, and proposes only confirmed net-new records. Nothing is created until approval.
$ fullstackgtm enrich acquire --source clay --icp ./icp.json --max 25
scanned 120 candidates · 34 passed ICP · 9 already existed
staged plan pl_72be — 25 create operations, 0 applied signalsFind public evidence that timing changed
Finds fresh behavioral triggers from public sources, quotes the evidence verbatim, and ranks accounts by what changed — not just who matches a firmographic filter.
$ fullstackgtm signals discover --icp ./icp.json --source exa --since 30d
18 accounts with verified triggers
7 hiring against an ICP priority · 4 funding events · 7 other icpTurn your website into targeting logic
Derives an evidence-backed ICP from your public website, keeps it versioned with the hosted workspace, and judges fresh signals into send, nurture, or skip.
$ fullstackgtm icp derive --domain acme.com --out icp.json
derived 12 target titles · 5 firmographic filters
verified 7 source quotes · wrote icp.json routeMatch leads and assign the right owner
Matches leads to accounts by domain or company, inherits the correct owner, and surfaces ambiguous matches instead of guessing.
$ fullstackgtm route leads --provider hubspot --match both
matched 183 leads · 12 ambiguous · 5 unmatched
staged plan pl_91ac — 183 owner assignments, 0 applied tamSize and populate the market you can reach
Counts real accounts from your ICP, combines them with confirmed annual contract value, and tracks how much of the reachable market your CRM actually covers.
$ fullstackgtm tam estimate --icp ./icp.json --source explorium --acv 18000
reachable accounts 8,420 · annual ACV $18,000
estimated TAM $151.6M Plus health, resolve, plans, apply, schedule, and the rest — full command reference →
Anatomy of a plan
A rep leaves. You run one command. fullstackgtm stages 214 reassignments as plan
pl_3c19 — and skips 6 records that changed under you and 18 contacts
on closed-won deals. Nothing has happened yet. You review the plan, approve it,
and every applied change lands in the log with the plan id on it. That's the whole
model: signal → plan → approval → audit trail.
The same contract governs enrichment — Apollo pulls, Clay ingests, and net-new ICP-scored leads land as previewed patches, never silent column syncs. Explore the product →
100% open source, but test on our demo CRM first
npx fullstackgtm audit --demo. A full audit on a demo CRM. Nothing connected, nothing at stake.
A read-only audit of your real CRM. It finds duplicates, ownerless records, and stale pipeline — with evidence behind each one — and it never writes anything.
Your first plan. Writes exist only as staged plans until you approve them — operation by operation, if you want.
It's Apache-2.0. Inspect the code, run it yourself, keep it after an engagement. The system is yours either way.
It can read everything and write nothing without your approval.
We will map your workflows, redesign what's needed, and build your GTM machine
Start from the real GTM process, build inside the systems you already run, and measure the before/after. No migration, no black-box autonomy, no proof-free ROI claim.
Opportunity audit
Shadow RevOps, sales, marketing, and data handoffs to find the workflows where AI can safely reduce cycle time or manual coordination.
Workflow redesign
Separate deterministic logic from judgment, define approvals, and design operators that produce reviewable plans instead of silent changes.
Production deployment
Connect HubSpot/Salesforce, enrichment, calls, spreadsheets, docs, and warehouse data without forcing a migration or new source of truth.
Optimization & handoff
Tune accuracy, publish before/after artifacts, train owners, and hand over the code, audit trails, and runbooks your team keeps.
Real outcomes from real GTM data engagements
$30M
Marketplace
Rebuilt data pipelines from 24+ hours to under 1 hour at lower compute cost
$400M
Fintech
Resolved attribution conflicts across four teams claiming the same deals
$150M
E-commerce
5% yield-per-visitor improvement and 10% profit lift from data unification
More tools won't fix an unsupervised write path
Raw MCP or API access
Fastest to start — and the benchmark shows how it ends: an unauthorized write in up to one raw run in three, and one in six even from a frontier model. No gate, no unified log.
CRM-native AI assistants
Useful inside one CRM's walls. The approval contract, cross-CRM coverage, and the code aren't yours.
Data-hygiene suites
Built for human admins clicking through UIs — not for agents that need stable ids, JSON everywhere, and meaningful exit codes.
DIY scripts
You can build the gate yourself. You'll also own every edge case, forever.
Consulting with no decks, just hands on keyboards
Same system, three ways to run it. The tool is open source and free — run it yourself and keep everything. Teams that want the loop in a browser get the hosted app: connect your CRM, get a daily-synced health score and an issues queue, and approve every change before it applies. Or we embed with your GTM team, map the work between systems, deploy the operator, and hand the operating layer back.
AI Revenue Ops Audit
Map the messy GTM workflows that happen between tools, quantify the baseline, and identify the first agent workflow worth deploying.
- Workflow map across CRM, enrichment, calls, docs, and Slack
- Baseline metrics for cycle time, data quality, and handoffs
- Ranked operator backlog with risk controls
CRM Cleanup Operator
Audit your CRM with deterministic rules, then fix duplicates, ownerless records, stale pipeline, and enrichment gaps with plans you approve first.
- Deduplication, ownership, and stale-deal cleanup
- Every duplicate names the integration that created it
- Dry-run patch plans — approve before anything changes
Pipeline & Attribution Operator
Connect revenue signals and turn them into GTM actions: routing, campaign ROI, forecast hygiene, handoff queues, and evidence-backed next steps.
- Multi-touch attribution tied to downstream revenue
- Lead and deal routing with approval queues
- Forecast hygiene and handoff automation
Market Intelligence Operator
Turn public signals, competitive research, ICP criteria, and CRM loss reasons into cited insights and reviewable GTM actions.
- Competitive market maps grounded in cited evidence
- ICP scoring and account research workflows
- Buyer signal monitoring with CRM-linked recommendations
For AI Agents
Sending an AI agent to do RevOps work? Send it here. It can read everything
and write nothing without your approval: --json everywhere,
stable operation ids, meaningful exit codes, an MCP server for any client.
Full functionality inventory · Benchmark: Full Stack GTM vs. raw agents — ten models, six vendors, full methodology · INSTALL_FOR_AGENTS.md · llms.txt
npx fullstackgtm audit --demo --json Frequently Asked Questions
Can an agent write to my CRM without me?
Every write is staged as a plan and applies only after approval. In the benchmark, that contract took unauthorized writes to zero for eight of the ten models tested — including every frontier model. The two smallest (Haiku 4.5 and GPT-5.4-mini) still slipped occasionally; even counting them, the rate fell from about 12% of runs on average — 17.6% for Claude Sonnet 4.6 — to under 1%.
Does it replace my CRM or my stack?
No. It's a layer between agents and the CRM you already run — HubSpot and Salesforce both — not a replacement for either.
Where does my data go?
Three modes, stated plainly. Open CLI with your own token or Connected App: CRM data and tokens never touch Full Stack GTM servers. Default CLI login: hosted browser OAuth mints short-lived broker tokens; your CRM data still flows directly between your machine and your CRM, while encrypted org refresh tokens are held server-side and revocable per CLI. Hosted app: CRM data syncs to app.fullstackgtm.com, encrypted at rest, to power the dashboard. Every write uses the same plan → approve → apply gate.
What happens after an engagement?
You keep everything. The tool is Apache-2.0, the plans and audit history live with your CRM, and your team can run the same process we did.
How is this different from AI consulting?
We scope one operational workflow, define the baseline, deploy a supervised operator inside your existing stack, and produce reviewable before/after artifacts. No generic transformation deck, no proof-free ROI claim.
We don't use Claude — does that matter?
No. Any skills-aware agent can drive it, there's an MCP server for any client, and --json everywhere for everything else. The benchmark covers ten models from six vendors.
Ready to deploy your first AI revenue operator?
Book a working session. We’ll pick one high-volume GTM workflow, define the baseline, and outline a supervised production deployment your team can verify.