I built two agent-native content engines at ThinkingAI: a social-calendar engine and a newsletter engine. Multi-workflow, multi-LLM pipelines carry each piece from plan to a ~90%-ready deliverable in Slack or Lark. My job at that point: approve, or nudge.
Our senior content manager owned content generation, social media and the newsletter. The CMS I had just rebuilt was built for them: the point was to raise one person's output and keep them in the seat that matters, making the calls and doing the final edit, so our content stayed distinguishable from everyone else's. Then they resigned, about a month into my own start.
Social and the newsletter cannot go quiet while a role is open. So the automation I had designed to amplify a person had to become the thing that carried the function, and I built two multi-agent production workflows to do it. What was slow before is the same list of jobs those workflows now hold.
Both follow the same shape: cheap models filter and draft, stronger models reason, an internal agent team reviews, and the human gets a near-final piece.
Everything starts from a content-pillar plan assembled from five sources: agent knowledge, our existing product content, Ahrefs keyword research, the product-update pipeline, and real-time topics linked to the newsletter. Distilled, that becomes six pillars, 24 posts, and a three-month calendar.
The calendar then goes plan → execution, all packaged inside the engineThe engine is a master workflow per content type: whitepaper, ebook, blog, product update, and more. That is roughly six to seven types. Each type interleaves its own asset workflows, its own caption workflow, and its own review team. Topic selection, caption and image all run inside the same workflow rather than as separate requests.
The image side is where the design dependency went. A generation step produces the base stock photo through nano banana and the image tools, and then the branding goes on as an HTML overlay: roughly 20 post templates, some a single clean layer, some a much more composed treatment. Most of those layouts started as good Canva templates I collected in advance, rebuilt against our color palette and brand rules so the logo, the type and the framing land where they are supposed to. The workflow picks the template that fits the subject, generates the image for it, composites the overlay, and hands the finished asset to scheduling.
Each design is an LLM text-to-image step plus an HTML overlay, driven by branding-guideline system prompts. That is the template now; there is no designer hand-off.Before a human sees anything, the output passes a multi-agent review: AI-voice checks, plus reviewers standing in product-marketing, audience, and ICP shoes, and the panel itself is tuned per content type. By the time the deliverable lands in Slack and Lark, it is ~90% ready.
The approver approves or gives feedback; publishing then targets a third-party unified social-publishing API, behind that human gateA harvest line pulls updates from 35+ sources across Twitter, RSS, and other newsletters, and each model in the chain does the job it is actually priced for. DeepSeek takes the raw RSS and does topic selection and cleaning at volume. Kimi K3 then works category by category, shortlisting what is worth someone's attention in each. Claude Code makes the final call on what goes in the issue, and K3 drafts from that decision: the thought-leadership beat plus the news for each category we cover, which are agentic AI, analytics, gaming and mobile app.
A separate agent gathers the internal side in parallel: our own blog pieces, upcoming events, and product updates from the CMS pipeline. Everything lands back with K3, which assembles the issue as modular, HubSpot-compatible HTML. In HubSpot I drop in a column, paste, and it is ready to send. A content-review workflow sits in front of that step, so every section arrives already checked rather than needing a read-through first.
Output is copy-paste-ready HTML for HubSpot plus a preview; the operator → manager approval routing is partly wired, and publishing stays a human stepSix posts from the approved LinkedIn queue, exactly as they will run: agent-made product videos and templated cards, captions clean, the product link riding in the first comment.
Eight content types feed the LinkedIn calendar, and each type is its own workstream with its own inventory and its own agent. A weighted rotation draws from them: roughly 35% education and POV as the evergreen backbone, 25% thought leadership repurposed from the blog plan, 20% feature and product posts, and the rest data cards, polls and commentary. Triggered types take a slot when fresh output lands; the evergreen backbone fills the gaps. Four to five posts a week, and no two weeks look the same.
Only approved posts enter the queue; every one previews exactly as it will read in the feed before I approve itThe channel used to run at roughly two to three posts a week, and it ran on whatever someone had time to make. It now sits at about five scheduled posts a week, with unscheduled ones on top, and the coverage widened at the same time: product capability, brand story, blog, thought leadership, events and webinars all have a lane.
Two things made that possible. The first is that the other engines became the ammunition: once the ebook, blog and product-update workflows were producing on their own, the social calendar had something real to draw from every week. The second is a capability we simply did not have before, product-related posts, which needed motion. I pointed the video pipeline at it, reusing the same reference-frame technique and the Remotion and HyperFrame rendering path, so a product capability can now ship as a short video instead of waiting for a production slot.
The last piece is distribution inside the company. A published post lands in an internal launchpad where anyone can repost it or drop a prepared comment, copy and paste, no drafting required. Employee amplification usually dies from friction, and this removes most of it.
Coverage now: product capability · brand story · blog · thought leadership · events · webinars, plus unscheduled postsEach week a deterministic script harvests roughly 750 items and tags the ~280 with links that actually open. Three sector agents cluster and select 20 to 30 by reading titles and summaries. The script then fetches every selected URL, confirms it opens, and extracts the full article text, so the editor agent worth-scores real articles rather than headlines and picks the final five to eight. I edit the run-sheet and choose the POV at gate one; writers and an assembler produce the issue; I review and send at gate two. Item URLs pass through the pipeline verbatim from the source list, which leaves the model no opening to invent a link.
The finishing pass includes an AI-tell cleaner that kills em dashes and stock AI phrasing before anything reaches meEvery issue is built around a single point of view that I pick at the run-sheet stage. Issue 001's was “agent security is an observability problem,” and the lead essay, the pull quote, and the closing blog pick all argue it. The essay is a 120 to 220 word beat written in the house voice, reacting to one hook from that week's harvest.
Each news item is a linked headline plus a one-or-two-line house take. The rule for the take: add a judgment the source itself did not make. A survey becomes “an even split is a distribution, and the average is hiding it.” A benchmark becomes “the reusable part is the method, and the winner will change.”
The layout is locked and Outlook-safe: 600px table layout, inline CSS, a VML roundrect so the button stays rounded in Outlook, and a visible Read-more link on every item because hover states do not exist there. The assembler outputs this exact HTML, paste-ready for HubSpot, and I send it after the final read.
Serif for the essay, sans for the news, one accent color, and the real logo on white: the template is a written spec every issue inheritsEach design is HTML plus an LLM image, driven by branding-guideline system prompts. Text and buttons composite as an overlay. The recipe is the template, so a new post type needs a prompt, and no designer.
DeepSeek filters cheap, ChatGPT and Kimi K3 do the reasoning, Claude closes as final reviewer. Model strength maps to task difficulty, and the bill maps to it too.
A separate caption workflow runs in parallel with image production, so both arrive together. Nobody writes copy for a finished visual after the fact.
A whitepaper and a LinkedIn post deserve different critics. Each content type gets its own review team, on top of shared AI-voice checks and product-marketing / audience / ICP lenses.
The machinery does the production; the person approves or nudges from Slack or Lark. That single gate replaced days of draft ping-pong.
Social and newsletter sit outside my core work. I built the engines to prove the operating model (content ops can run as an agent pipeline) on a function where nobody asked me to.
The newsletter engine runs, the social system is built and in use, and the orchestration layer on top is where the work is now.
Auto-selection across all workflows, auto-posting through a third-party unified social-publishing API, and self-evolution are emerging, and a human still fires every publish. The approval gate is deliberate. This is proven in pieces, and it is no publish-without-a-human factory.
Social and newsletter sit outside my core job. These engines exist to demonstrate the operating model: the same capstone pattern, applied to content.
Kimi K3
ChatGPT
Claude
Gemini image
HubSpot
The capstone shows the pattern itself; the video pipeline shows it in motion.