Social Media Generation
Claude drafts the text, but the content manager owns it.
A social post is the organization speaking in public, about its own work and in its own voice. The easy version generates a single caption and blasts it across every platform on a schedule. In SAR’s system, the AI drafts platform-specific copy, while the editor edits and approves before anything posts.
When AI drafts the organization’s public voice, whose voice is it?
Followers encounter a social post as the organization speaking: what it chooses to say about itself and how it sounds. The easy automation generates a caption, posts it everywhere on a schedule, and never involves a human. It scales infinitely. It’s what a lot of social tools do.
But a public voice that’s just unreviewed AI output isn’t the organizations’s voice; it’s an inference wearing the organization’s name. When it says something slightly off, or tone-deaf, or generic, the followers who came for a specific sensibility get an algorithm instead. And one caption doesn’t fit every platform: Bluesky, Instagram, and Facebook differ in length, tone, and how links and tags work. A single cross-post reads as lazy on all three.
The plugin’s design principle splits drafting from authorship. The AI can create a draft that removes the blank-page labor of writing three platform-specific captions. But the content manager reviews, edits, and approves every word because the public voice has to stay the organization’s, not the model’s.
AI drafts each platform’s copy, while the editor edits and approves before anything posts.
The system is a WordPress plugin that runs from the draft post. The content manager is here at the point of publication, so context-switching friction is eliminated. One click sends the content and author info to a Render service, which calls Claude to produce copy tailored to each platform’s conventions.
The three social media post drafts are reviewed side by side, edits made inline, optional regeneration, and approved. Approved copy attaches to the draft and goes out when the content goes live. Nothing posts without human approval.
Everything that would have taken the public voice out of human hands.
A lot of “social automation” is built to remove the human entirely. This system is built to keep the human as the author. Each rejection below is a place where convenience would have meant ceding the organization’s voice.
A plugin where the content manager is working.
The plugin runs from the post editor, the screen where the content manager is already working on the piece. Generating social copy is one click away. The earlier version of this system was a standalone Flask app with its own review UI. Moving it into the post screen removed the context switch entirely. The editor never leaves the work to promote the work.
The plugin sends the post content and author info to a Render service — the same service the image agent uses — which calls Claude to return copy tailored to each platform’s conventions. The content manager sees all three drafts side by side and edits them in line.
Approved copy attaches to the draft and the content image, posting when the piece itself goes live. The tie between publishing the work and promoting it is enforced in code.
Platform-specific reach with organization voice intact.
Preserved
- The organization’s public voice stays the content manager’s.
- Every word posted is human-reviewed.
- Posts go out with the work, not on a disconnected schedule.
- Audience conversation stays human.
Now possible
- Platform-specific copy without writing three captions from scratch.
- Social distribution that keeps pace with publishing.
- A consistent public voice across platforms, still human-owned.
- The pattern ports to any team distributing to multiple channels with a brand voice to protect, like marketing, comms, and multi-channel content operations
Misty Cripps · Vaquita Design