DEV Community

Cover image for How I Automated My Weekly Content Pipeline With 4 AI Models (And What Broke)
caicaibig-tige
caicaibig-tige

Posted on

How I Automated My Weekly Content Pipeline With 4 AI Models (And What Broke)

Last March I missed three client deadlines in a row. Not because the work was hard, but because I was spending 6+ hours a week just reformatting the same core message into LinkedIn posts, email newsletters, tweet threads, and blog intros. As a solo marketer handling 4 accounts, that's death by repetition.

I knew AI could help, but juggling ChatGPT in one tab, Claude in another, and some image tool in a third was slower than just writing it myself. The context switching killed me.

Here's what actually worked after 8 months of trial and error.

Stop Using One Model For Everything

The biggest mistake I made early on: I tried to make GPT-4 write everything. It's decent at long-form but honestly mediocre at punchy social hooks. I started splitting tasks by model strength:

  • Short social hooks: Claude 3.5 Sonnet (better rhythm, less corporate)
  • Long-form blog drafts: GPT-4o (structured, follows outlines)
  • Image prompts + generation: Stable Diffusion via API
  • Headline A/B testing: Gemini (fast, cheap)

The problem became API management. Four keys, four SDKs, four rate limits. Then I found https://xinghuo1300ai.com which aggregates 30+ models under one API key — suddenly my Python script could call whatever model fit the task without me wiring up four separate auth flows.

The Pipeline That Saved My Weeks

Here's the actual script I run every Monday. It takes a bullet-point brief and outputs platform-ready drafts:

import requests
import os

API_KEY = os.getenv('SPARK_KEY')
BASE = 'https://api.xinghuo1300ai.com/v1'

brief = """
- Launched new API rate limiter
- Cuts 429 errors by 80%
- Free for existing users
"""

def generate(model, prompt):
    r = requests.post(f'{BASE}/chat', json={
        'model': model,
        'messages': [{'role': 'user', 'content': prompt}]
    }, headers={'Authorization': f'Bearer {API_KEY}'})
    return r.json()['choices'][0]['message']['content']

linkedin = generate('claude-3.5-sonnet',
    f'Write a 120-word LinkedIn post from this brief, professional but human: {brief}')

blog = generate('gpt-4o',
    f'Write a 400-word blog intro with H2 subheadings from: {brief}')

print('LINKEDIN:', linkedin)
print('BLOG:', blog)
Enter fullscreen mode Exit fullscreen mode

This runs in ~12 seconds. Before, that was 90 minutes of my life.

Real Numbers From 6 Months

I tracked output for a quarter:

Task Manual (hrs/wk) Automated (hrs/wk)
Social drafting 3.5 0.4
Blog intros 2.0 0.3
Image prompt writing 1.0 0.2

That's ~5.6 hours saved weekly. Not life-changing, but it meant I could actually take on a 5th client.

The Stuff That Broke

Be honest: it's not all smooth. Three issues I hit:

  1. Model drift — Claude's tone shifted after an update and my tweets got weirdly formal for a month. I now pin model versions in the API call.
  2. Rate limits on shared keys — when using aggregation, you're sometimes queued behind others. Build retries.
  3. Fact hallucination — AI invented a "case study" once. Now every stat gets a human check before publish. No exceptions.

What I'd Tell A Fellow Creator

If you're a content person drowning in format-switching, don't buy another "all-in-one" wrapper app. They lock you into their prompt style. Write a 30-line script, pick models by strength, and keep your own brief as the source of truth.

For me, the shift to treating models as interchangeable utilities — rather than gods to pray to — came from using tools like https://xinghuo1300ai.com that make model switching trivial. I still write the strategy. The machines just carry the water now, and my Monday mornings are finally mine again.

Top comments (0)