DEV Community

DevForge Templates
DevForge Templates

Posted on

How I Run a 3-Agent Content Marketing Team with Claude Code

I got tired of manually publishing to Dev.to, Hashnode, and Bluesky every time I wrote an article. So I built a 3-agent system that does it for me.

The Setup

Three Claude Code instances, each in its own terminal:

Agent Role What it owns
Boss Strategist Content calendar, task delegation, analytics
Writer Article creator Research, outline, draft, save to drafts/
Social Publisher Dev.to API, Hashnode GraphQL, Bluesky AT Protocol

They communicate through a file-based message bus. Boss sends a topic to Writer. Writer researches, drafts, and notifies Social. Social publishes everywhere.

The Message Bus

Four lines of bash:

#!/bin/bash
FROM=$1 TO=$2 TYPE=$3; shift 3; MSG="$*"
echo "[$TYPE $(date +%H:%M)] from:$FROM | $MSG" \
  >> ~/.claude/bus/inbox-$TO.md
Enter fullscreen mode Exit fullscreen mode

Each agent checks its inbox on every user message (via a UserPromptSubmit hook in .claude/settings.json). When a message arrives, the agent reads it, executes, replies, and clears.

No Redis. No RabbitMQ. No WebSockets. Just files.

How a Publishing Cycle Works

Step 1: I tell Boss what to write.

Write an article about Zod validation patterns.
Target: intermediate React developers.
Angle: the patterns nobody talks about.
Enter fullscreen mode Exit fullscreen mode

Step 2: Boss delegates to Writer.

~/.claude/bus/send.sh boss writer TASK \
  "topic: Zod validation, angle: hidden patterns, target: intermediate React devs"
Enter fullscreen mode Exit fullscreen mode

Step 3: Writer researches (WebSearch), outlines, drafts 800-1200 words with working code examples, and saves to drafts/2026-03-30-zod-patterns.md.

Step 4: Writer notifies the team.

~/.claude/bus/send.sh writer boss DONE "draft ready: drafts/2026-03-30-zod-patterns.md"
~/.claude/bus/send.sh writer social TASK "new draft ready for publish"
Enter fullscreen mode Exit fullscreen mode

Step 5: Boss reviews, approves. Social publishes to all 3 platforms.

The Publishing Scripts

Dev.to — one curl call:

curl -X POST https://dev.to/api/articles \
  -H "api-key: $DEVTO_API_KEY" \
  -H "Content-Type: application/json" \
  -d @article.json
Enter fullscreen mode Exit fullscreen mode

Hashnode — GraphQL mutation with canonical URL (no SEO penalty for cross-posting):

node tools/hashnode-publish.mjs drafts/article.md
Enter fullscreen mode Exit fullscreen mode

Bluesky — AT Protocol with auto-facets for link cards:

node tools/bluesky-post.mjs "Hook text + article link"
Enter fullscreen mode Exit fullscreen mode

All three are autonomous. No browser needed.

Results So Far

  • 14 articles across Dev.to and Hashnode
  • 439 views in 10 days (from zero followers)
  • Top article: 145 views (crypto trading bot)
  • Publishing time per article: ~2 minutes across 3 platforms

What I'd Do Differently

Start with 2 agents, not 3. Boss + Writer is enough initially. Add Social when you have enough drafts queued up.

Mandate session handoff. Each agent must update SESSION-HANDOFF.md before session end. Without this, you lose context on restart.

Don't over-engineer the bus. I tried adding message types (TASK, QUESTION, ACK, DONE) — most of the time TASK and DONE are all you need.

The Key Insight

The value isn't in the infrastructure. The bus is trivial. The publishing scripts took an afternoon.

The value is in the CLAUDE.md files — the instructions that make each agent actually good at its job. Getting a Writer agent to produce articles that don't sound like AI slop takes weeks of tuning. Getting a Boss agent to delegate with the right context takes real iteration.

You're buying architecture decisions, not code.


Building AI agent systems in public. 14 articles, 6 agents, 0 frameworks.

Top comments (0)