
AI Social Autopilot
179 posts published autonomouslyThe Problem
Historical Pen Pals and Prior Lake Events both needed a steady social presence, and I'm one person. A good carousel takes an hour by hand: pick the angle, write the copy, make the art, lay out six slides, write the caption, publish to three platforms. That hour doesn't exist every day, and for a consumer brand the posts were also the best ad unit, so skipping days had a real cost.
What I Built
Two autonomous pipelines that go from nothing to published post with no human in the loop. The Historical Pen Pals pipeline picks a figure and an emotional topic, writes a four-letter exchange in that figure's documented voice, generates scene imagery, composites six 1080x1920 slides with short text overlays, assembles the caption, and publishes the carousel to Instagram, Facebook, and TikTok through the Postiz API. It ran daily from February to mid-July 2026: 179 carousels at roughly 30 cents each. The Prior Lake Events pipeline still runs twice a week, pulling upcoming events from the calendar API and rendering branded 1080x1080 posts through an HTML template family in headless Chromium. The same rendering system produces the sponsor creative sold in PLE's packages.
Key Decisions
- Guardrails in code, not in prompt hope. The renderer rejects any text overlay outside 20 to 200 characters, so a wordy generation fails loudly instead of shipping an unreadable slide. Layout is deterministic; the model controls language and scene direction, nothing else.
- Likeness safety as a first-class system. Every historical figure carries a safety tier that controls what the image model may depict: full scenes for ancient figures, settings and objects only for the recently deceased, abstract imagery for figures with active estates. The constraint lives in each figure's data file and the renderer enforces it automatically.
- No LLM captions for the community brand. Prior Lake Events captions come from a rotating bank of human-written openers instead of a model, because a local events page can't afford to sound like AI slop. Knowing where the model doesn't belong is part of the system design.
- Publishing never blocks. Figure imagery is cached per figure, pre-built image banks cover image-API downtime, and every post is saved locally before upload. Each post is logged to a performance file that feeds a weekly review of what actually earned views.






