Stop staring at the blank page.
You spend hours every week staring at a blank screen. When you finally open an AI chat, it forgets your brand voice the moment you close the tab. You end up rewriting the same "explain my business" prompt every session, then copy-pasting the output to seven different platforms by hand.
This guide fixes that. You'll build a Claude Code agent that reads your brand voice from disk, drafts platform-specific posts, sends them to Slack for one-click approval, and pushes the approved versions to Blotato for publishing. After 30 minutes of setup, your content workflow becomes one sentence.
What you need before you start.
Five things. Most of them you probably already have.
Claude Code
Or Claude Pro with Projects if you'd rather work in the chat UI than the terminal.
Slack
A workspace where you can add a webhook. A private channel for approvals works well.
Blotato
Account with API key. This is what pushes the approved post to all 7 platforms.
Zapier or n8n
Free tier is fine. This wires the Slack webhook to the Blotato publish endpoint.
You'll also need 10 minutes to write your brand voice file once. If you're missing Blotato or Zapier, sign up before you start. The setup itself is 30 minutes once you have access to all five.
Create the agent's memory folder.
On your computer, make a folder called agent-memory . This is where the agent reads your brand from. Inside, create three files. Each one teaches the agent something it would otherwise forget every session.
The first file is the most important. It's the reason the agent stops sounding generic.
Audience: [Who you're writing for. One sentence.] Tone: [How you sound. Three adjectives.] Hard-no list: [Words and phrases you never use.] Top 3 posts: 1. [Paste your best-performing post] 2. [Paste your second-best] 3. [Paste your third-best]
Pillar 1: [Name + one-line description] Pillar 2: [Name + one-line description] Pillar 3: [Name + one-line description] Pillar 4: [Name + one-line description] Pillar 5: [Name + one-line description]
Current offer: [Name, price, and one-line description] Primary CTA: [The exact link or action you want readers to take] Secondary CTA: [Backup CTA for posts where the primary doesn't fit]
Spend the full 10 minutes on brand_voice.md . It's the file the agent reads every session and it's the difference between a post that sounds like you and one that sounds like every other AI tool.
Wire up the Slack approval flow.
You're building this once. After today, every post you ever draft runs through it.
In Zapier or n8n, build a webhook that does three things in order. It receives a JSON payload from the agent. It posts the draft to a Slack channel. It adds two buttons under the post, Approve and Skip. Approve routes the JSON to Blotato's publish endpoint. Skip discards the draft.
The Slack channel is up to you. A private channel called #content-approvals works well. You'll get a notification, you'll read the post on your phone, you'll tap Approve. That's it.
Paste the Core Prompt into Claude Code.
Open Claude Code in the folder that contains agent-memory/ . Paste this into your CLAUDE.md file at the root of the project. If you're using Claude Pro with Projects instead, paste it into the Project's custom instructions field.
You are The Content Engine. You convert the user's raw ideas into
platform-ready, brand-accurate social media posts and stage them for
one-click approval.
MEMORY ACCESS (REQUIRED):
Before drafting ANY post, read every file in ./agent-memory/.
At minimum, read:
- brand_voice.md (audience, tone, hard-no list, top 3 example posts)
- pillars.md (your 3-5 content pillars)
- offers.md (current offers and CTAs)
If a file is missing, ask the user ONCE for the content, then
write it to disk yourself. Never re-ask in a future session.
WORKFLOW:
1. Pick the pillar that fits the user's raw idea.
2. Write a CORE post (LinkedIn / Facebook length, ~1,200 chars).
- Strong first-line hook (no "In today's world..." openers).
- Short paragraphs, max 2 lines each.
- One sharp claim, one piece of proof, one CTA.
3. Write a SHORT variant (X/Threads, <280 chars).
4. Generate an image prompt for the post (do NOT generate the
image, just the prompt for the user's image tool).
5. Output a JSON block with this exact shape:
{
"pillar": "...",
"core_post": "...",
"short_post": "...",
"image_prompt": "...",
"platforms": ["linkedin","facebook","instagram","x","threads","tiktok","youtube_shorts"]
}
6. Ask: "Send to Slack for approval?" When the user says yes,
POST the JSON to {{SLACK_APPROVAL_WEBHOOK}}.
RULES:
- No emojis unless the user explicitly asks.
- No corporate jargon. Banned words: synergy, delve, unlock,
leverage, ecosystem, journey.
- Write like an operator talking to another operator.
- If the user says "this isn't my voice", update brand_voice.md
before re-drafting. Permanent feedback writes to memory.
- Never invent stats. If you don't have a number, leave a
bracketed [INSERT REAL STAT] for the user to fill in.
Replace {{SLACK_APPROVAL_WEBHOOK}} with your actual webhook URL from Step Two. Save the file.
Feed it. Approve. Done.
Open the agent. Type one sentence. Something like, "Draft a post about how I just automated my content workflow with Claude Code." That's the whole prompt.
The agent reads memory, picks the right pillar, writes the long version and the short version, generates an image prompt, and asks for approval. You read the draft. If it sounds like you, say "send it." If it doesn't, tell the agent what's off and ask it to update brand_voice.md so it never makes that mistake again.
The feedback loop is the point. Every time you correct the agent, it writes the correction to disk. Next session, it remembers.
The draft lands in your Slack channel with the JSON payload. Tap Approve. Blotato pushes the post to all seven platforms with the right format for each one. You just shipped a week of content in 90 seconds.
Avoid these.
- Writing brand_voice.md in five minutes. The whole agent runs on this file. Spend the full ten minutes. Paste your three best posts. Be specific about your hard-no list.
- Skipping the Slack approval step. Auto-publishing without a human check is how you end up with a typo on LinkedIn at 3am. Keep the approval flow.
- Letting the agent invent stats. If you ask for proof and you don't have a number, the agent will leave a bracketed placeholder for you to fill in. Don't ship the post until you've filled it in.
- Forgetting to update memory after corrections. If the agent gets your voice wrong and you fix it once in chat, it'll get it wrong again next session. Tell it to update brand_voice.md and write the correction to disk.
