Building · In production
Handyblogger
An AI content pipeline with a human in the loop.
Generates blog drafts on a schedule across several LLMs, routes them through human review in a spreadsheet, and publishes approved posts to the CMS, with an automated quality evaluator and improvement agent in the loop.
- Python
- FastAPI
- Multi-LLM
- Google Sheets
- Webflow
- GitHub Actions
The problem
Publishing good content on a steady cadence is a grind: finding topics, researching them, writing something actually worth reading rather than generic AI filler, and keeping a person in control of what goes live.
I wanted a pipeline that produced genuinely good drafts on a schedule while quality and publishing stayed under human control.
How it works
A scheduler runs on a set cadence, and an LLM proposes trending topics with a reason they matter now; a human approves them. For approved topics, a multi-LLM step researches with one model and writes with another, generates a hero image, and pushes the post to the CMS as a draft. Every draft is scored automatically, and a human-triggered evaluate-and-improve loop rewrites it in place. A human always reviews and publishes; nothing auto-publishes.
Key decisions
I compose several models by strength, letting a search-grounded model do the research and a long-form model do the writing, which beats any single model and keeps the citations real. There are two human gates, topic approval and manual publishing, and the system never publishes on its own, so a person always controls the brand's voice.
The improve loop is regression-guarded, so the automated improver can only hold or raise a draft's score, never quietly degrade it. And whether a draft is good enough to publish is measured by an evaluator that blends programmatic checks, source verification, and a model judge, rather than left to feel.
What I learned
Generating a blog post is trivial now. Generating one worth publishing, with a human still in control, is the actual problem.
The evaluator and the regression guard mattered more than the generator, and keeping publishing a manual step was a deliberate constraint, not a shortcoming.
Generating a blog post is trivial now. Generating one worth publishing, with a human still in control, is the whole game.