Six months ago, I got a content pipeline running end to end.
Topic mining, keyword filtering, outline generation, LLM writing, auto-publishing — fully automated. In theory, I could produce dozens of articles a day, target long-tail keywords, and slowly buildup search traffic.
In the first week, I generated 200 articles. Then I sat down and read ten of them.
By the third one, I understood the problem: they all sounded like the same person wrote them. And that person has never existed.
My first instinct was to fix the prompt. I spent two weeks tuning system prompts — style instructions, banned phrases, tone requirements. Some improvement. But switch the topic, and that AI cadence came right back.
Eventually I understood why: this isn't something prompt engineering can fundamentally fix.
When an LLM generates text, it's optimizing for the next token that makes sense given its training distribution. A huge portion of that training data is templated commercial content and SEO articles. So the model's outputs naturally drift toward "sounds like something you'd find on the internet" — because that's what most of the internet sounds like.
This is statistical, not random. When you tell the model to "write naturally," its understanding of natural is itself learned from that same data. The cadence follows you.
I tried three directions:
Few-shot style cards injected into the prompt
Effective, but expensive to maintain. Every content category needs its own style examples. Change the topic domain and you're recalibrating from scratch. At scale, the maintenance cost rivals manual editing.
Human editing after generation
This abandons the core value of automation. 200 articles, 15 minutes of editing each — that's 50 hours of manual work.
Upgrading the model
GPT-4o is more fluent than GPT-3.5. Claude feels less robotic than some alternatives. But the underlying problem doesn't change — the specific texture of the AI cadence shifts, the cadence itself stays.
That's what led me to build HumanFlow — an AI text cleaner designed for exactly this step.
The idea is straightforward: instead of fighting the LLM at generation time, pull the "de-patterning" work out as a separate, deterministic post-processing stage.
[LLM writing] → [HumanFlow] → [publish]
It does one thing: identify and replace the statistically predictable language patterns that mark AI-generated text. Not random rewriting, not synonym swapping — targeted processing of the specific patterns that reliably show up in LLM output.
What it handles well:
What it doesn't fix:
Automated content pipelines are good at one thing: covering content that readers weren't going to linger on anyway — tool documentation, feature comparison pages, FAQ aggregations. For that work, traffic is the goal, reading experience is secondary, and a cleaning pass meaningfully improves the output.
But if the goal is content people actually read, remember, and share — automation is still a supporting role, not a replacement. That's not a tooling problem. It's what the task actually requires.
I'm still running the pipeline. I also wrote this by hand.
Those two things aren't in conflict.
HumanFlow is a free AI text cleaner — no sign-up needed. If you're running a content pipeline and hitting similar walls, try it on a few outputs. Or just come talk through what you're seeing.