BuzzyX

How Assist learns your voice, and what it never does

Divv SaxenaPublished 5 min read

"Writes in your voice" is on every AI writing tool's homepage, including ours, and it usually means nothing. So this post is the literal version: what Compose Assist is given, what it is asked to do, what comes back, and the list of things it is deliberately unable to do. All of it is from our architecture notes and the code, not from the marketing page.

What Assist is given

When you press an Assist action in Compose, the request carries three things:

  1. Your draft, exactly as it is in the composer.
  2. The action: rewrite, stronger hook, shorten, expand, or change tone (with the tone you picked).
  3. Up to eight of your own best recent posts, pulled from the analytics BuzzyX has already synced for your account.

Those eight posts are the voice. They are chosen from your recent posts by how they performed, so the samples are things you wrote that your audience responded to, not a random slice of your timeline. If you are new and there is nothing synced yet, Assist runs without samples and says so in its behaviour: the suggestions are plainer, and they get more like you as your analytics fill in.

That is the whole trick. There is no profile of your "style" stored anywhere, no training run, no model fine-tuned on you. Every call reads your real posts fresh. Post differently for a month and Assist follows you, because the samples changed.

What it is asked to do

The system prompt is fixed and short. It tells the model to keep your vocabulary and rhythm from the samples, to avoid generic AI phrasing, to stay within 280 characters, and to return exactly three variants. The model is Claude, running on the Haiku tier by default, which is fast and cheap enough that a call costs us about $0.002.

Three variants, not one, because one suggestion invites you to accept it and three invite you to compare. The point is to give you something to react to, not something to approve.

What comes back, and what we check

The model returns the three variants as structured data. Before you see them, the server checks each one: it has to be non-empty, within the length limit, distinct from the other two, and not identical to your draft. Anything that fails is dropped. If the model answers with prose around the JSON, or in a code fence, the parser copes; if it answers with nothing usable, you get a plain error and the call still counts, because the provider bills it anyway.

That last detail is deliberate. Every AI call is booked before it is made, in a single database statement that only succeeds while your account is under its monthly and daily caps. Parallel requests cannot all slip past the cap, and a refused or unusable answer still uses one of your calls. If the provider never answered at all, the booking is given back.

The limits

From the plan limits in the code: Pro includes 500 Assist suggestions a month, at most 60 in a day, with a short per-minute rate limit on top. Founding members have 50 a month. A trial that was cancelled before its first charge has 30.

Each generation is one call, whether you use a variant or not. Compose shows what is left. The daily cap exists so that a script, or a bug, cannot burn a month's quota in an hour.

What Assist never does

This list is as important as the features:

  • It never posts. A variant you pick replaces the text in the composer, and from there you edit and post exactly as you would have without Assist. Nothing is applied automatically.
  • It never translates. If your draft is in Spanish, the suggestions are in Spanish. The samples are your posts, so they are already in your languages.
  • It never invents facts about you. The one format in Post ideas that quotes numbers, "your numbers", is only offered when there is a real figure in your synced analytics to quote, and it must quote it exactly.
  • It never names a product or a model release on its own. Names can only come from your own posts or from the topic you typed, because the model's knowledge of what shipped last week is stale and we would rather it say less than say something wrong.
  • It never repeats you. Post ideas carry an avoid list of your last 80 synced posts, everything you published or queued from BuzzyX, and your last four idea sets. Exact repeats are also dropped server-side.
  • It never runs on a page view. Ideas are generated only when you press "Give me ideas". A set from the last day is shown again for free.

Post ideas use the same voice

Ideas work the same way with a different task. The same voice samples go in, together with one of seventeen post formats that tend to get replies on X: a scenario with options, pick a side, a take followed by a question, ask the room, a hot take, "be honest", and so on. Six ideas come back, one per format, leaning on formats the previous set did not use. They are drafts in your voice, in a shape that invites an answer. You pick one, edit it, and it goes into the composer like anything else.

What "in your voice" cannot fix

Assist makes a rough draft sound like you wrote it carefully. It does not make a post worth writing. If the draft has nothing specific in it, a decision, a number, a thing that happened, the three variants will be three nicely phrased versions of nothing. That is not a model problem. The fix is upstream, in what you give it.

If you want the human method behind this, the one that works with or without a tool, how to write X posts in your own voice walks through building a word bank from your best posts and using AI without sounding like it. Assist is that method, automated for the boring part and kept out of the part that has to be you.

BuzzyX · X growth workspace

Grow on X with posts that sound like you.

Compose in your voice, schedule the week, find posts worth replying to and read real analytics from the X API. $29/mo after the trial, everything included.

Try BuzzyX free →See pricing7-day free trial. Card required, $0 today, cancel in Settings.

Share

All posts →

All posts