A fleet of Claude Code agents that turns campaign briefs into publish-ready drafts.
Context
A five-person content team spent most of its week on first drafts. The engine moved that work to agents, with brand-voice evals gating every draft before it reaches a human.
Project hero image
The problem
Most teams start with one giant prompt that tries to do everything — research, outline, draft, edit, match the brand voice. It works in the demo and falls apart in week two. Output drifts, nobody can tell why, and there is no seam to fix.
Diagram or screenshot
Process
Turn every request into a structured Markdown brief — never a raw Slack paste.
Split the work into small agents that each own one artifact: research notes, outline, draft.
Score every draft against a brand-voice eval before a human ever sees it.
Failed evals trigger one revision pass, then escalate to a person.
terminal
# one task, one agent, one artifact
claude -p "draft 3 LinkedIn posts from brief.md" \
--allowedTools "Read,Write" \
--output-format json > drafts/linkedin.json
Solution
The loop is boring on purpose: read the brief, gather context, draft, evaluate, revise, stop. Every arrow in that sentence is a place to log, cache, or swap a model.
The goal was never to remove the marketer. It was to delete the busywork between their idea and a publishable draft.
Result screenshot
Outcome
First drafts went from a day to under an hour, and the team now spends its time on the parts that need taste. If I did it again, I would write the evals on day one instead of day thirty.