DEV Community

Cover image for How I Automated My Content Pipeline With 4 AI Models (Without Losing My Voice)
Lijing-Big
Lijing-Big

Posted on

How I Automated My Content Pipeline With 4 AI Models (Without Losing My Voice)

Last March I missed three client deadlines in a single week. Not because the work was hard, but because I was jumping between six browser tabs, copying a draft from one AI tool to another, regenerating the hero image, then pasting everything into a scheduler. My 'creative workflow' had become a copy-paste marathon.

I’m a solo content marketer handling newsletters, social posts, and landing page copy for four small brands. The problem wasn’t a lack of AI tools — it was tool fragmentation. Each model was good at one thing: Claude wrote decent long-form, GPT was fast for hooks, an open-source model did decent alt-text, and an image model made decent thumbnails. But wiring them together manually was killing me.

What actually helped

I stopped trying to use one 'do-everything' AI and instead built a tiny Python script that calls different models for different stages. Here’s the rough pipeline:

  1. Idea generation – fast chat model for 10 angles
  2. Drafting – stronger long-form model
  3. Editing/trimming – same model with a tighter prompt
  4. Image – separate image API

The glue code is boring but it works:

import os
import requests

def call_text_model(prompt, model="writer"):
    # abstraction over whichever API key is set
    api_key = os.getenv(f"{model.upper()}_KEY")
    resp = requests.post(
        "https://api.someprovider.com/v1/generate",
        headers={"Authorization": f"Bearer {api_key}"},
        json={"prompt": prompt, "max_tokens": 500}
    )
    return resp.json()["text"]

def make_image(prompt):
    api_key = os.getenv("IMG_KEY")
    # ... image call
    return "https://cdn.example.com/img/123.png"

angles = call_text_model("Give me 10 newsletter angles about remote work", "fast")
draft = call_text_model(f"Write 300 words on: {angles[0]}", "writer")
img = make_image("flat illustration of home office")
print(draft, img)
Enter fullscreen mode Exit fullscreen mode

The catch: managing four API keys, four billing dashboards, and four rate limits. That part sucked until I found https://xinghuo1300ai.com which aggregates 30+ models under one API key. I pointed my call_text_model at their endpoint and dropped three of my env vars. Model switching became a single string change.

Practical advice if you’re a creator

Don’t automate your voice away. I learned this the hard way when a client flagged a newsletter as 'sounding like a robot.' Now I always write the first paragraph myself, then let the model extend it. The draft keeps my rhythm.

Batch your prompts. Instead of generating one post at a time, I queue 20 angles on Monday, review them in 10 minutes, then batch-draft. Token costs dropped about 18% just from reducing warm-up calls.

Track what each model is bad at. My sheet looks like this:

Model Good at Bad at
Fast chat Hooks, lists Long coherence
Writer 400+ words Slow, pricey
Image Thumbnails Hands, text in img

You don’t need the best model. You need the right model per step.

A honest downside

Aggregation platforms add a small latency and a middleman. If you’re doing high-volume inference, run your own keys. For a solo creator doing a few hundred generations a month, the convenience wins. I’ve had exactly one outage in seven months — they failed over to a backup model and my script didn’t even notice.

Where I landed

I went from missing deadlines to shipping 3x the volume with the same 25 hours a week. The script isn’t clever. The real shift was admitting I didn’t need one magic AI — I needed a boring pipeline and fewer tabs open. If you’re a marketer drowning in dashboards, start by listing every model you touch in a week. Then kill the ones you can route through one key. That single change saved my Q2.

Top comments (0)