Local AI Automation
Local AI

Clone Your Writing Voice With a Local AI Style Profile

"Write naturally" gets you robot prose. Feed a local model your own samples and turn them into a reusable style profile instead.

Piyabhum Sornpaisarn4 min read
Share
Pixel art robot feeding handwritten pages into a glowing home server displaying the Ollama llama logo, which outputs pages in the same handwriting style

You paste last month's blog post into a model, type "rewrite this in my voice," and get back something that sounds like a customer-service intern apologizing for the wifi. Polite. Balanced. Completely not you.

The problem is not the model's writing ability. The problem is that "my voice" means nothing to it. You asked for an impression of a person it has never met. Generic instructions produce generic prose — that's why so much AI writing lands in the same flat, corporate-safe middle ground.

The fix is to stop asking for adjectives and start handing over data: real samples of your writing, analyzed into a concrete style profile the model can follow like a spec sheet. This post shows how to do that — and how to run the whole pipeline locally with Ollama so your drafts never leave your machine.

Direct answer

To make AI write in your voice, feed it 5–10 real samples of your own writing and have it produce a technical style profile: your average sentence length, punctuation habits, vocabulary preferences, and structural patterns. Then reuse that profile as a reusable system prompt. Asking for a "natural tone" fails because "natural" is subjective — a profile built from your actual work defines exactly what your natural sounds like.

Why "Write Naturally" Produces Robot Prose

When you ask for "natural" or "friendly," the model has to guess what those words mean for you. It can't. So it plays the statistical middle: safe sentence rhythms, hedged claims, "delve," "moreover," and a conclusion that thanks you for reading. Grammatically perfect, personality-free.

Think of it like hiring a ghostwriter. "Make it sound like me" gets you a guess. Handing them ten of your essays and an hour to study them gets you a draft you'd almost sign. Same model, different inputs.

The narrowing you need is from two vague goals to one specific one:

Vague instructionWhat the model doesProfile-based instructionWhat the model does
"Sound natural"Averages everyone; sounds like no one"Avg. sentence 14 words; 1 in 5 under 6 words"Copies your rhythm
"Be friendly"Corporate-safe warmth"Use concrete analogies; one per section, drawn from cooking"Copies your actual move
"Write like a blogger"Genre pastiche"Open with a specific failure, never a definition"Copies your structure

Step 1: Gather and Analyze Your Samples

Collect 5–10 pieces you actually wrote — a mix of formats is best: blog posts, emails you were happy with, social threads, README files. The model is looking for the habits that survive across all of them, because those habits are your voice.

Run the analysis locally with Ollama so the raw samples never leave your machine:

ollama pull llama3.1
ollama run llama3.1 "You are a forensic writing analyst. Read the samples below and report:
1. Average sentence length and the variation pattern
2. Punctuation habits: dashes, semicolons, parentheses, exclamation frequency
3. Signature vocabulary: words overused, words never used
4. How openings usually start (story, claim, question?)
5. How transitions and endings behave
Quote real examples for each finding. SAMPLES: $(cat samples.txt)"

The key phrase is quote real examples. Without quotes, you get invented generalities. With quotes, the analysis is anchored to evidence.

Step 2: Turn the Analysis Into a Style Profile

The raw analysis is a report. A style profile is a specification — instructions precise enough that a stranger could imitate you. Have the model convert one into the other:

{
  "voice_profile": {
    "cadence": "short first sentence under 8 words; long explanatory second; occasional one-word sentence for emphasis",
    "punctuation": "dashes for asides, no semicolons, rare exclamation marks",
    "vocabulary": {
      "use": ["concrete", "actually", "quiet", "messy"],
      "ban": ["delve", "leverage", "moreover", "game-changer"]
    },
    "structure": {
      "opening": "a specific scene or failure, never a definition",
      "paragraphs": "1-4 sentences; one idea each",
      "ending": "a plain summary sentence, no call-to-action hype"
    },
    "perspective": "first person, admits mistakes, teaches from them"
  }
}

This file is the deliverable. It is now your voice in portable form — and unlike your memory of your own style, it's explicit and versioned.

Step 3: Apply It as a Reusable System Prompt

With Ollama, set up a Modelfile so every session starts already knowing you:

FROM llama3.1
SYSTEM """
You write exclusively per this voice profile:
- Cadence: short opener, long second sentence, occasional one-word punch
- Punctuation: dashes for asides, no semicolons
- Ban: delve, leverage, moreover, game-changer
- Openings: specific scene or failure, never a definition
- Endings: plain summary sentence, no hype
If uncertain between two phrasings, choose the plainer one.
"""
ollama create myvoice -f Modelfile
ollama run myvoice "Draft a post about why we moved our invoicing to a local model"

Now "write in my voice" is no longer a request — it's the model's default state.

Finding Your Voice If You're Not Sure You Have One

Everyone who has written more than a few thousand words has one. Look for three things in your past work:

  • Cadence: read a paragraph aloud. Fast and conversational, or slow and deliberate?
  • Vocabulary: precise jargon because you enjoy accuracy, or plain metaphors because you want to be understood?
  • Perspective: do you argue from stories or from data?

Your answers become the first three lines of the profile. The sample analysis fills in the rest.

One Core Profile, Per-Platform Filters

Keep a single master profile, then add small platform overlays:

master_profile: myvoice.json
overlays:
  newsletter:
    inherit: master
    adjust: "slightly longer paragraphs allowed; one analogy per section"
  twitter:
    inherit: master
    adjust: "no analogies; verbs first; cut every optional word"
  docs:
    inherit: master
    adjust: "drop first-person; keep the cadence and banned-words list"

The habits stay yours everywhere; only the packaging adapts. That consistency is what makes a voice recognizable across platforms in the first place.

Maintenance: Refresh, Don't Rewrite

Your voice drifts as you write more. Every couple of months, add the new pieces to your sample set and regenerate the profile. Diff the two versions:

ollama run myvoice "Compare voice_profile_v1.json and voice_profile_v2.json; list what changed and quote examples"

Small drift is fine — that's growth. Big drift means either you've genuinely changed style or the new samples weren't representative.

Frequently Asked Questions

Why doesn't asking for a "natural tone" ever work?

"Natural" is different for everyone, so the model retreats to a neutral, polite average — which reads as robotic. A profile built from your samples replaces the subjective adjective with measurable habits the model can copy.

How many writing samples do I need?

Five to ten diverse pieces is a good floor: mix emails, posts, and messages. What matters is consistency — the model should find the same habits showing up across all of them.

Do I need to fine-tune a model for this?

No. A style profile in the system prompt gets most of the way there for a fraction of the effort, and you can edit it in seconds. Fine-tuning only makes sense once you have hundreds of thousands of words and prompt-based imitation still isn't close enough.

Can I use the same profile with cloud models?

Yes — the profile is just text and travels anywhere. But doing the sample analysis locally with Ollama keeps your raw unpublished writing off third-party servers, which matters if the samples include private or client material.

Wrap-Up

Generic AI prose isn't a model limitation — it's an input problem. Hand the model ten of your own pieces, extract a profile that states your cadence, punctuation, vocabulary, and structure in plain terms, and load it as a reusable system prompt. The output stops being an apology from a stranger and starts being a draft you'd nearly sign. Your voice was never missing; it just hadn't been written down yet.

Newsletter

Get the next guide in your inbox

New articles plus the workflow files from each guide — and instant access to the free download library.

No spam. Unsubscribe anytime.

Related posts

Local AI

Map It First: Design Workflows Before You Automate Them

Automating an unmapped process just repeats the mess faster. Document reality, name an owner for every output, bound automation by risk — then hand the runbook to people or AI agents.

4 min readmap workflow before automation