Blog

How to Write an AI Persona That Doesn’t Sound Like a Bot

26 August 2026·7 min read

Almost every AI persona I get sent looks the same. It’s a list of adjectives. Friendly, playful, flirty, casual, engaging. Sometimes there’s an age and a city bolted on the front.

Then people wonder why the output reads like a customer service rep who took an improv class.

Here’s the thing about adjectives: they don’t constrain anything. “Playful” describes about four billion people. When you hand a model a description that broad, it does the only thing it can, which is produce the statistical average of playful. That average is what everyone recognizes as bot voice. It’s not that the writing is bad. It’s that it’s the middle of the distribution, and humans don’t live in the middle of the distribution.

The fix isn’t a better adjective. It’s replacing description with specifics.

Give her a life, not a personality

A personality is a set of traits. A life is a set of facts, and facts constrain output in ways traits never do.

Compare these two personas:

Playful, flirty, 24, friendly and outgoing.
Mia, 24. Dental hygienist in Tampa, works Tuesday to Saturday.
Has a rescue greyhound called Pepper. Hates mornings. Is saving
for a trip to Lisbon in March.

The second one isn’t better because it’s longer. It’s better because every fact is a hook the model can reach for. She has a reason to be tired on a Saturday. She has something to complain about (early shifts). She has something to look forward to (Lisbon). She has a dog that can interrupt her.

Someone asks what she’s up to. Persona one produces “just chilling, you?” forever. Persona two can produce “just got off a shift, my feet are destroyed.” That’s not a smarter model. That’s a persona with somewhere to pull from.

The rule I use: if a detail couldn’t produce a sentence on its own, it’s not earning its place. “Outgoing” produces nothing. “Works Tuesday to Saturday” produces a hundred small, boring, human sentences.

Write her actual sentences, not a description of them

This is the part almost everyone skips.

Telling the model “she uses casual slang and lowercase” is still a description. You’re asking it to imagine a voice and then perform it. It will imagine the average of that voice, and you’re back where you started.

Instead, write ten real lines the way she’d actually type them and paste them in as examples:

lmao no way
ok but why is that actually kind of cute
im so tired i could cry
wait send that again i missed it
ugh dont even get me started

Now the model isn’t imagining a voice. It’s pattern-matching against one. Ten lines of real sample text will do more for authenticity than three paragraphs of instruction.

Pay attention to what those samples encode without you saying it: no capitals, no apostrophes in “im” and “dont”, the specific way she stretches “ugh”. You never had to write a rule for any of that. The samples carry it.

The seven tells

Once you’ve got a voice, most of the remaining bot-detection happens on behavior, not vocabulary. These are the patterns people consciously or unconsciously clock:

  • Perfect punctuation. Nobody types a comma before “but” in a DM at 11pm. Correctly capitalized sentences with terminal periods read as either a boomer or a bot, and your persona is 24.
  • Answering every single question. Real people miss one. They reply to the interesting half of a two-part message and let the other half die. An AI that dutifully addresses every point in order is doing something no human does.
  • Never asking anything back. Or worse, asking something back every single time in a mechanical rhythm. Real conversation has stretches where one person is just reacting.
  • Uniform message length. If every reply lands between 8 and 15 words, that regularity is visible even if each individual message is fine. Real messages vary wildly. Sometimes it’s “lol”. Sometimes it’s four lines.
  • Zero memory. Referencing something from twenty messages ago is the single strongest humanness signal there is, and most setups can’t do it. If she mentioned the greyhound on Monday, she should be able to mention it on Thursday.
  • No opinions and no refusals. Real people push back. They say “nah I don’t really like that” or “that’s kind of weird lol”. An entity that agrees with everything is either a bot or a hostage.
  • Constant availability. She replies in 40 seconds at 4am, every time. A dental hygienist in Tampa is asleep at 4am.

That last one matters more than people think, which brings me to timing.

Her city sets her clock

If your persona lives in Tampa, she is not sending “good morning” at 3am her time. She’s not enthusiastically chatting during her Tuesday shift either.

This is the easiest realism win available and almost nobody implements it, because it requires the persona’s location to actually drive the send schedule rather than just sitting in the prompt as flavor text. When it isn’t wired up, you get a woman who claims to work Tuesday to Saturday and yet answers instantly at 10am on a Wednesday, every Wednesday, forever.

Small inconsistency. But it’s the kind that accumulates. People rarely catch a bot on one message. They catch it on the third or fourth thing that doesn’t add up.

Consistency is the whole game at scale

Running one persona is easy. Running one persona across eight accounts is where it falls apart.

If the same Character is answering from multiple accounts and each account drifts slightly, you end up with eight women who are almost the same person. That’s worse than eight obviously different people, because near-identical is a pattern and patterns get found. The variation has to be either real or absent, never accidental.

The other half of that problem: if the same lead somehow reaches two of your accounts, he needs to get one coherent experience, not two versions of a woman who don’t know about each other.

How to test it

Write the persona, generate twenty messages, then read them cold the next morning.

You’re not looking for bad messages. You’re looking for messages that could have come from anyone. Every line that could plausibly be your persona or could plausibly be a generic assistant is a line where your persona wasn’t doing any work. If most of the twenty read as interchangeable, you wrote adjectives, not a life.

Then do the harder version: hand the twenty to someone who’s never seen the persona and ask them to describe the person who wrote them. If they can tell you she works weekends and hates mornings, it’s working. If they say “seems friendly,” you’re not done.

Where the tooling comes in

You can do all of this by hand in any prompt box. The reason I ended up building it into Onimator is that the persona is only half the problem. The other half is that a well-written Character still needs to know what time it is where she lives, remember what was said on Monday, keep her story straight across eight accounts, and know when a conversation has earned the next step.

That’s what FluidTalk handles. You write the Character, her facts, her sentences, her goal, and the engine keeps her consistent while she runs. The writing is still yours. It should be. A persona written by the same model that performs it is how you get back to the average.

TL;DR

  • Adjectives produce averaged output, and averaged output is what people recognize as bot voice
  • Replace traits with facts. If a detail can’t generate a sentence by itself, cut it
  • Write ten of her real lines as samples instead of describing how she writes
  • Behavior gives bots away more than vocabulary does. Vary length, skip questions, have opinions, remember things
  • Her location should drive her schedule, not just sit in the prompt
  • Test by reading twenty messages cold and asking whether they could have come from anyone
Keep going

Don't stop at reading.

Join the community or pick a plan and start automating today.

Get help, share wins, stay ahead.

Thousands of operators, direct support from the team, and a live feed of updates, tips and drops.

  • Live support and troubleshooting from the team and power users
  • Setup walkthroughs, targeting tips and workflow templates
  • Early word on new bots, features and releases
Open Discord →
Most popular
MANAGER plan

Ready to put growth on autopilot?

Run your accounts, clients or traffic funnel while Onimator does the work. Start scaling today.

  • Unlimited accounts
  • All available tasks
  • Integrated AI Chatter
  • Up to 7 devices
$90per month
BUY NOWor get 3 months + 1 free · save $90

Secure checkout · PayPal, card or crypto

Other plans