An AI GTM analyst that lives in Slack
A Slack assistant the whole GTM team talks to in plain English, answering from live data instead of memory.
The problem
An agency running outbound for 10+ clients had its answers scattered across sequencer workspaces, Notion, Slack threads and half a dozen provider dashboards. Every "how is this client doing?" or "is this campaign ready to launch?" meant someone opening five tabs, and weekly reporting ate hours.
What I built
- One tool-calling agent routes every message. Code renders the numbers as Slack cards and the model adds a line or two at most, so it can't invent a metric. Unknown is reported as unknown, never as zero.
- Weekly client reports comparing this week with last (reply rate, positive reply rate, meetings per 1,000 sent, bounce rate) with a PDF you can re-layout from the thread: "remove the chart, add a summary".
- Positive-reply feed: replies flow from the sequencer through Clay into Slack, the agent re-checks the sentiment with an LLM, finds the prospect's phone through a provider waterfall and tags the growth team. Follow-ups thread under the original alert.
- Deliverables tracker: doc links, files, client status updates and purchases posted in Slack are logged into Notion automatically, with a quiet check mark and one-tap undo.
- Infra Q&A: blacklist status per domain, renewals, stealth-redirect status, launch preflight ("is X ready?") and money leaks.
- Guarded writes: every action shows a preview and waits for a typed "yes", enforced again by the backend.
- Report hub: a daily snapshot of every sequencer workspace, a dashboard, and PDFs rendered with headless Chromium.
Results
- A deep QA pass found and fixed 82 wrong answers (outbound, infra and preflight) before the team relied on it.
- The AI re-check caught 5 of 25 replies tagged "positive" that were actually misreads.
- Moving reply alerts from a 5-minute poll to a zero-poll listener removed ~29,000 API calls a day.
- 16 live agent regression cases and CI house rules (no secrets, consistent style) run on every change.