Case study: seven content pipelines on scheduled tasks, and what they did when I stopped watching
Between April and October 2026 I ran seven automated content systems on a single Windows machine: three affiliate article sites, three YouTube Shorts channels, and a political-news database. Multi-model routing, free tier first, ensemble voting, synthetic narration, scheduled uploads. This is what the logs say, audited in October.
What was built
- Affiliate sites (three). A daily task proposes a topic, drafts an article, checks for truncation and hallucinated links, then every configured model votes. The piece publishes only at 70 percent approval, the site rebuilds, and git pushes to Cloudflare. Five attempts a day, capped to bound spend. Rejected topics feed back into the next day’s prompt.
- Shorts channels (three). News or book extracts to a 55-word script that may only use sourced facts, synthetic voice in English or Malayalam, stock backgrounds, rendered video, scheduled upload four times a day into playlists. One channel ran a nightly engagement check and wrote confirmed findings back into its own prompts.
- Exam MCQ pipeline. 117 textbook PDFs to 11,600 audited questions through a three-model audit, then to Shorts.
- Political-news database. 25,000 articles, 650 leaders, ensemble extraction with a two-model agreement threshold and a three-model threshold for allegations.
What the numbers say
| Pipeline | Built | Actually shipped |
|---|---|---|
| Exam MCQ Shorts | 11,600 audited questions, 35,000 model calls | 407 Shorts, then idle since mid-August |
| Trading Shorts | 272 videos, July | 2,834 total views, median 2 |
| Gulf business Shorts | 421 videos rendered | 67 uploaded; token expired 10 July, never renewed |
| Affiliate site A | 20 articles | 8 auto-published, last one 23 September |
| Affiliate site B | 27 articles | 1 auto-published, ever |
| Affiliate site C | pipeline since 23 August | 0 published |
| Political database | 25,000 articles processed | no public output yet |
Every one of those tasks showed “Ready” and “last result 0” in Task Scheduler on the day of the audit.
What broke
- Green does not mean shipped. The batch wrappers exit zero no matter what the script did. One channel failed every 30-minute upload for three months on an expired OAuth token and reported success each time.
- Free tiers run out together. Across the three affiliate sites: 1,250 out-of-credit errors and 1,350 rate-limit errors. On a day when only two or three models answer, a 70 percent vote threshold is unreachable. The sites “exhausted five attempts” on 141 of 151 logged days.
- A quiet bug is a permanent bug. A JSON parse failure first appears in a log on 8 August and is still the top error on 13 October.
- Queues run dry silently. Two Shorts channels reported “nothing pending” for two months. Nobody was pending on them.
- One working model can poison the dataset. On 25 September one provider stayed up while the rest failed, and it marked hundreds of articles as processed. The fix was a degraded-ensemble guard that halts the run before any write when too few models answer.
- No analytics means no case study. Two of the three affiliate sites never had Search Console or analytics wired. I can tell you what they published and not what it did.
What worked, and transfers
- Ensemble dissent is measurable. In the 11,600-question audit, 502 findings came from a single dissenting model. One provider produced 82 percent of them, and on spot-check the lone dissenter was wrong every time. Weight your voters.
- Prompt mining works even at tiny scale. The trading channel’s own engagement log showed one author’s material pulling five to fifteen times the views of the others, and scripts over 50 words pulling four times the views of shorter ones. The pipeline rewrote its own prompts from that.
- Spend caps held. Five attempts a day and free-tier-first routing meant the total paid-model spend across all seven systems stayed small even while they failed. Failing cheaply is a design choice.
- The gates that exist, work. Voting rejected 300-plus drafts across the affiliate sites. Nothing thin got through. The problem was starvation, not quality.
The rules that came out of it
Log outcomes, not launches. Alert on silence, not just on errors. Treat a token expiry as an incident. Wire analytics before the first publish. Cap spend per task, and check the cap fired. These are now on the how-I-work page, because they cost me three months of output to learn.