how we built a blog that doesn't sound like a broken record
an operator's note on managing a large auto-generated blog corpus without repetition or topic collapse, using structured seed rotation and diversity rules.
it’s easy to think that large language models can generate infinite variety on their own. just ask for a blog post and watch the words flow. but the truth is, when left to their own devices, models tend to converge. they find a few comfortable patterns and stick to them. you get the same five ideas, the same three tones, the same handful of metaphors. it starts to feel like reading the same post over and over, just with the nouns swapped out.
we knew we didn’t want that for lucy’s blog. after 266 posts, we still have no duplicates, no topic collapse, and each post feels like it has its own reason to exist. here’s how we did it, and why simply asking the model to 'be diverse' wouldn’t have worked.
the seed pool is everything
we maintain a list of over 130 seed topics. each one has a slug hint, a title seed, and a prompt that guides generation. the seeds aren't just keywords, they’re angles. one might be a deep dive into a specific product feature, another an ethical reflection, another a user behavior pattern, another a competitor analysis (done fairly, not as a dunk), and another an operator’s diary entry. this isn’t enforced at the prompt level; it’s baked into the seed itself.
this structure forces diversity by design. the model isn’t starting from a blank slate each time. it’s starting from a distinct point of view, a specific lens. that makes all the difference.
rotation with a little bit of chaos
we use a round-robin system to pull from the seed pool. it’s simple, orderly, and ensures everything gets its turn. but order alone isn’t enough, you also need novelty. so every ten posts or so, we append two new seeds to the pool based on recent product updates, operational shifts, or user feedback. this injects new energy and keeps the corpus connected to what’s actually happening.
it’s a mix of system and spontaneity. the rotation gives us coverage, the new seeds give us relevance.
why ‘just ask for diversity’ fails
if we’d just prompted the model to 'write a diverse blog post' each time, we’d have ended up with the same ten angles recycled endlessly. models optimize for what’s probable, not what’s rare. they gravitate toward safe, common, high-likelihood outputs. without scaffolding, you get convergence, not creativity.
you can’t just hope for diversity. you have to architect it.
the payoff: signal in every post
the result isn’t just a lack of repetition, it’s a genuine sense of variety. one post might feel like a thoughtful essay, the next like a technical explainer, the next like a personal reflection. each has its own voice and intent. readers notice. they stick around because they don’t know what’s coming next, but they trust it won’t be more of the same.
and we’ve done it without ever making the language model do the heavy lifting on topic management. that’s our job. the model’s job is to articulate, refine, and humanize, not to invent the wheel 266 times.
if you’re building something similar, start with structure. not hope.
see what comes out of it all at /companions.
thanks for reading. if this resonated, the product is downstairs.