In-house build
A content operation two brands can run without me in the room
Briefs, image concepts, approvals, scheduling, and QA — wired into one documented pipeline with a dashboard as the system of record.
Problem
Social content was being produced ad hoc: a post idea, a scramble for an image, an approval chased over chat, and no record of what was published or why. Nothing was reusable, quality depended on how tired the person was, and there was no way to answer 'what did we run last quarter' without scrolling the feed.
Context and constraints
Built and run in-house at the commercial print firm where I work, and extended to cover the industry association's account. Small team, no dedicated designer, no content budget — the system had to make one person's output look like a department's.
What I built
An end-to-end pipeline: AI-drafted briefs, image concept generation against a locked brand kit, a written approval loop with named checkpoints, scheduling, and a QA gate that assets must pass before release. A Next.js dashboard holds status, approvals, and post performance as the single source of truth. Around 53 Python tools handle generation, QA, captioning, and publishing, and roughly 60 written SOPs mean the process survives a handover.
Before / after
Before: post ideas in chat, approvals in DMs, no record, no reuse. After: 70 published posts across the accounts, each with a brief, an approval trail, and a stored asset — and a dashboard that can answer what ran, when, and who signed it off.
Result
Running for four years. 70 published posts, 2 brand kits under active design governance, and 60 documented workflows. Reach and engagement figures are not published here because I do not have an export I can verify — what I can show is the operating record: every post traceable to a brief and an approval.
What I would improve next
Pull a real analytics export and hold the system to an outcome number rather than an output count. Right now this is a well-evidenced process story, and I would rather it were a results story.
Tools used
- Next.js
- Python
- AI drafting and image generation
- Written SOPs and brand kits
- Structured QA gate
Artifacts

The artifact I would point at first is a failure report.
POST_MORTEM_M02_Carousel_QA_Failure is a dated document I wrote about my own work, titled “released substandard output without comprehensive verification.” It records the severity, the root cause, and the corrective actions that became part of the QA gate.
Most content operations claim quality. Very few can show the mechanism that catches their own mistakes. This one can, because the mechanism was built the day it was needed.