An AI assistant that helps go-to-market teams find answers across Slack, Notion, and HubSpot.
For a full walkthrough of the design and how each piece fits together, see our substack Ship GTM.
The agent connects to the systems where GTM knowledge lives:
- Slack — channel history, threads, files, and user lookup
- Notion — playbooks, wikis, specs, and database-backed records
- HubSpot — contacts and companies, searchable via a hybrid index
Ask a question in natural language and the agent picks the right source, looks it up, and returns a concise answer.
┌─────────────────────────────────────────────────────────────┐
│ GTM Knowledge Base Agent │
│ (eve on Vercel) │
└──────────────┬──────────────────────┬───────────────────────┘
│ │
MCP via Vercel Connect Custom tools + scheduled sync
│ │
┌───────┴───────┐ │
▼ ▼ ▼
Slack MCP Notion MCP HubSpot → Turbopuffer
(live search) (live search) (hybrid vector + BM25 search)
Slack and Notion are connected as remote MCP servers. Vercel Connect handles OAuth and token minting so the agent can call each service's MCP tools at query time.
HubSpot follows a different pattern due to their APIs being much slower than the other MCP connections: a daily job pulls contacts and companies from the HubSpot CRM API, embeds them, and upserts them into Turbopuffer for fast hybrid search. Conversations use a dedicated search_hubspot tool against that index.
| Service | Role | Docs |
|---|---|---|
| eve | Agent framework — tools, schedules, connections, deployment | eve.dev/docs |
| Vercel Connect | OAuth and token management for MCP connections (Slack, Notion) | vercel.com/docs/connect |
| Turbopuffer | Vector + full-text search index for HubSpot CRM data | turbopuffer.com/docs |
| HubSpot API | Source of truth for contacts and companies | developers.hubspot.com/docs |
bun install
bun run devYou'll need environment variables for Turbopuffer and HubSpot (TURBOPUFFER_API_KEY, HUBSPOT_ACCESS_TOKEN, etc.) and Vercel Connect authorization for Slack and Notion. Use the consent scripts to authorize MCP connections:
bun run slack:consent
bun run notion:consentSee SKILL.md for agent-oriented architecture details, file layout, and tool routing.
Read the full explanatory post on Ship GTM →