I'll save you the suspense: the problem was never the model.
A few months ago I decided I was going to "get serious about LinkedIn." You know the drill β show up consistently, build an audience, let the inbound roll in. I'm a builder, not a writer, so I did what any builder does. I opened ChatGPT and asked it to write me a week of posts.
What came back was technically English. It had hooks. It had line breaks in all the right places. It had the little "Here's what I learned π" energy.
And it was completely, unusably dead.
"In today's fast-paced digital landscape, personal branding has never been more important." "Success isn't about working harder, it's about working smarter." "Most people get this wrong. Here's the truth nobody tells you."
I generated something like 200 of these over a couple weeks, tweaking prompts, adding "make it punchy," "make it controversial," "write like a founder." Every version was a slightly different flavor of the same beige paste. I couldn't post a single one without feeling like a fraud.
The internet's take on this is "AI content is soulless, just write it yourself." I think that take is lazy and wrong. So I went down the rabbit hole on why the output was slop, and what I found changed how I think about every AI tool I use now.
Here's the thing nobody says out loud: when you ask a language model to "write a LinkedIn post about consistency," you've given it almost no information. So what does it do?
It regresses to the mean. It writes the statistically average LinkedIn post β because the average of all LinkedIn content is literally what it was trained to predict. You asked for content and it gave you the centroid of a billion posts. That centroid is, by definition, the most generic thing that could possibly be written about your topic.
The model isn't failing. It's doing exactly what you asked. The failure is upstream, in the context you didn't give it.
Generic input β generic output. Every time. No amount of "make it punchy" fixes a prompt that has no idea who you are, who you're talking to, or what you actually did this week.
Once I framed it as a context problem instead of a model problem, the fix was obvious. Before generating a single word, I started feeding the model three things:
1. Who I actually am. Not "a founder" β the specific version. What I build, the way I talk, the opinions I'll defend, the words I'd never use. The model can't sound like me if it's never met me.
2. Who I'm actually talking to. My ICP. A solo SaaS founder doing $4k MRR cares about wildly different things than a VP of Sales at a 500-person company. "Write engaging content" averages across both and lands with neither.
3. A real, specific input. The single biggest unlock. Instead of "write a post about pricing," it became "here's the exact conversation I had with a churned customer yesterday, and here's what it made me realize about our pricing β write a post grounded in that."
The difference is night and day. The first prompt produces a fortune cookie. The third produces something only I could have written, because it's anchored to something that actually happened to me.
Here's the before and after, same topic, real example:
Before (topic: "freelancing"):
"Freelancing taught me that you're only as good as your last client. Reputation is everything. Always overdeliver. πͺ"
After (grounded in profile + ICP + a real event):
"A client ghosted me on a $6k invoice in 2019.
I spent three weeks furious.
Then I realized I'd never sent a contract - I'd been 'keeping it casual' to seem easy to work with.
The thing I thought made me likeable was the thing that got me burned.
Now every project starts with a boring PDF and a deposit.
I've never been ghosted since."
Same person. Same topic. The only thing that changed is what I fed the model before I asked it to write.
The method worked. The problem was that doing it manually every single time was miserable. Every post meant pasting my positioning, re-describing my ICP, digging up a relevant real moment, and babysitting the prompt. The friction was high enough that I stopped showing up β which is the one thing you can't do on LinkedIn.
So I built the thing I wished existed. It's a free AI LinkedIn post generator that reads your actual LinkedIn profile first β it infers your positioning and your ICP from what's already there β and then generates posts grounded in that context instead of the internet's average. Same principle I described above, minus the copy-pasting.
I'm not going to pretend it writes Pulitzer material. No tool does. But it gets you to a draft that sounds like you talking to your people, which is about 90% of the battle. You edit the last 10% and you ship. That's the whole game.
This is the part I actually care about, because it applies to way more than LinkedIn.
Ground your AI or you'll get slop. The order of operations is everything: context first, generation second. Most people do it backwards β they generate, get garbage, and conclude "AI can't do this." What they actually proved is that AI can't read their mind.
Whatever you're using a model for β content, code, emails, strategy β ask yourself what you'd need to tell a brand-new freelancer for them to do the job well. Then put that in the prompt before you ask for output. Your results will jump, and you'll stop blaming the model for a problem you created.
The tools are good enough. The bottleneck is the blank slate. Fill it in.
Curious what other people are doing here β has anyone found a reliable way to keep AI output sounding like themselves at volume? Always looking to steal a better workflow.