AI marketing agents work best as a team of specialists, not one generalist. The marketing team eve template is an open-source, MIT-licensed project from vercel-labs that gives you five specialist agents behind a single team lead. You message the lead in Slack, it routes your request to the right specialist, and the result comes back as a Notion page, a Typefully draft, or a Resend campaign.
This article explains what the template does, how the multi-agent architecture works, and how to deploy it yourself.
What is the marketing team eve template?
It’s a team of AI agents built on eve, an agent framework, and deployed on Vercel. The team covers five marketing functions:
- Product marketer: owns positioning, messaging, and the shared brand context document
- Content marketer: writes blog posts, landing pages, case studies, and newsletters in Notion
- Social media coordinator: drafts posts for X, LinkedIn, Threads, Bluesky, and Mastodon through Typefully
- SEO specialist: audits pages, plans site architecture, and writes JSON-LD schema
- Email specialist: adapts copy for the inbox and builds campaigns in Resend
You don’t talk to the specialists directly. A team lead reads your request, briefs one specialist with everything it needs, and hands back what it produced.
How does the multi-agent routing work?
The lead delegates. It never writes the deliverable itself.
This matters because each specialist runs in a fresh session with no conversation history and no inherited tools or skills. The lead can’t rely on shared context, so its main job is writing a complete brief. That constraint turns out to be a feature: a brief that works for a context-free agent is a brief a human contractor could work from too.
The team is one level deep by design. Specialists find their own evidence with web search and edit their own drafts against a written rubric, rather than handing work to further sub-subagents. Each handoff costs a full context transfer, so the template keeps handoffs to one.
The only case where two specialists chain is a newsletter: the content marketer writes the prose, then the email specialist reworks it for the inbox and sends it through Resend.
What keeps the shared context consistent?
One document. The product marketer authors a brand context document that every other specialist reads at the start of every task. The dependency runs one way, and a single specialist owns the document, so when the team’s output drifts off-message there’s exactly one place to fix it.
Does a human approve what the agents publish?
Yes. Every irreversible action pauses for an approve or deny decision, rendered as a button in Slack or the terminal UI. That includes:
- Sending any Resend email, broadcast, or batch
- Publishing a Typefully draft
- Deleting drafts, contacts, segments, or pages
- Moving pages in Notion
Drafting flows through without gates, because a draft can be thrown away. Sending can’t.
The email agent goes one step further. Its Resend connection uses an allow list that cuts roughly 85 available tools down to 47, so account administration like API key creation and domain changes is never reachable, gated or not. Sends are also attributed per user: whoever approves a campaign is the person Resend records as the sender.
What can’t the agents verify?
Two specialists are built to say what they couldn’t check rather than guess. The SEO agent has no crawler, rank tracker, or Search Console access, so its audit checklist marks every item as verifiable by fetch or not verifiable at all. The email agent can’t see inbox placement or domain reputation, and its deliverability checklist does the same.
If you’ve watched an AI agent invent a confident answer where it had no data, you’ll recognize why this is the most useful pattern in the template.
What’s the tech stack?
- Agent framework: eve
- Language: TypeScript (strict, ESM) on Node 24
- Chat surfaces: Slack via Vercel Connect, the eve dev TUI, or your own front end
- Long-form output: Notion
- Social publishing: Typefully
- Email: Resend
- Shared state: Vercel Blob
- Model access: Vercel AI Gateway
There’s one static credential in the whole project (the Typefully API key). Notion, Resend, and Slack all authenticate through Vercel Connect, so you manage connector IDs instead of tokens.
How do you deploy it?
The repo’s Deploy button provisions the Notion, Resend, and Slack connectors, a Blob store, and prompts for the Typefully key. One manual step remains: verify a sending domain in the Resend dashboard, since the agent can pick from your verified domains but can’t create one or edit DNS for you.
For local development:
vercel link
vercel env pull
pnpm dev
Enter fullscreen mode Exit fullscreen mode
Then talk to the lead in the dev TUI. Approval gates render there too, so you can confirm a send actually stops before it goes out.
If you work in Claude Code or Cursor, the README includes a prompt you can paste that walks your coding agent through the whole setup.
How do you customize the team?
Adding a specialist means adding a directory under agent/subagents/. There’s no registry file: a tool’s name is its filename, and eve discovers everything at build time. Each specialist’s craft lives in its instructions.md and a set of skills that load on demand, so changing how the content marketer writes blog posts means editing a markdown file, not redeploying a pipeline.
Specialists don’t have to live in the repo either. eve’s remote agents let the lead delegate to an agent in its own deployment, with deployment-to-deployment auth handled by OIDC instead of a shared secret:
// agent/subagents/paid_ads.ts
import { defineRemoteAgent } from "eve";
import { vercelOidc } from "eve/agents/auth";
export default defineRemoteAgent({
url: () => process.env.PAID_ADS_AGENT_URL,
description:
"Plan and write paid search and social ads. " +
"Pass the campaign goal, audience, budget, and brand constraints.",
auth: vercelOidc(),
});
Enter fullscreen mode Exit fullscreen mode
The lead picks the remote specialist up from its description the same way it does the local ones.
The approval gates, banned word lists, and the email agent’s tool allow list are all plain configuration in the repo, documented in CUSTOMIZING.md.
Where to start
The template is open source under the MIT license:
Repo: github.com/vercel-labs/marketing-team-eve-template
Guide: Run a marketing team from Slack with eve
Framework docs: eve.dev/docs
Even if you never ship marketing content with it, the patterns are worth reading: a lead that briefs instead of writes, one owned document as shared state, approval gates on anything irreversible, and agents that report what they couldn’t verify.
답글 남기기