ScriptGrain makes ChatGPT better at being you
By Jack Stovell X · Instagram · LinkedIn · published 2026-09-20 · updated 2026-09-26
ChatGPT can write for you. It cannot measure you. ScriptGrain measures your voice as 45 attributes from writing you have already published, connects to ChatGPT, and scores every draft against the measurement, so the assistant you already use writes as you rather than as its average.
Start with the prompt builder below: paste your writing and get a system prompt written in measured numbers, ready for custom instructions or a project. The connector does the same with the full profile.
How to connect
Works with ChatGPT; the connector is added on the web, at chatgpt.com. Last checked 26 September 2026.
- Measure your voice. Create a free ScriptGrain account and paste three or more pieces you wrote (3,000 words works best). The profile usually takes under a minute and costs nothing.
- Connect. In ChatGPT on the web, turn on developer mode and add ScriptGrain as a custom app with the MCP server URL `https://mcp.scriptgrain.com/mcp`, then sign in with your ScriptGrain account when the consent page opens. OpenAI's help centre lists custom apps for Business, Enterprise and Edu workspaces, where an admin turns developer mode on; its developer documentation also lists Plus and Pro accounts. On a plan without them, paste the prompt the builder below produces into Custom instructions instead; it is the one-page version of the same measurement.
- Write, then score. Ask ChatGPT for a draft and name the profile: "Write a LinkedIn post about X in my ScriptGrain voice." ChatGPT calls `generate_content`, or drafts itself and calls `check_voice_match` to score the result. Ask it to polish anything under 0.8.
What changes
Without a profile, ChatGPT writes from a description: whatever you can say about your own style. Most of a voice is what you cannot say: contraction rate, clause ordering, how often you open with a question, the words you reach for without noticing. With ScriptGrain connected, ChatGPT writes from the measured profile and every draft comes back with a voice-match score and the exact features that moved. On-voice drafts score 0.85 to 0.95; a clearly different voice scores under 0.45. Paste any two pieces into the free off-voice check to see the same measurement with no account.
We compared three routes in our study ChatGPT vs a measured voice (SGR-002: one author, two briefs, one run each): GPT-5 on its own, GPT-5 with the prompt builder's one-page prompt, and drafts written through ScriptGrain from the profile. Scored against the author's measured voice, they averaged 0.74, 0.62 and 0.83. It is a small test, and the study, linked below, lists its limits.
What stays free
The profile, the connector, scoring any text against your profile, and comparing pieces with no profile at all are free on every plan. Generating drafts in your voice, polishing toward a target and the monthly voice monitor are paid.
What ChatGPT reads from the profile
ChatGPT doesn't get a summary. It gets the measurement. Forty-five attributes across eight layers: lexical, syntactic, tone and register, rhetorical, punctuation and format, function words, content patterns, quirks and cadence.
So what does that look like in practice? Average sentence length and its variance. Contraction rate. Comma density. Whether you reach for semicolons or dashes. Formality on a scale of 0 to 10. Confidence versus hedging. How you open (direct, hook, context), how you argue (evidence-first, conclusion-first, narrative), which words start your paragraphs, how you split "I", "we" and "you".
Most of that is invisible to you. You'd never write "I use 'but' over 'however' and open a third of my paragraphs with 'So'" in a style note. You just do it. The profile carries it anyway.
And it's read live. Every time ChatGPT drafts or checks something, it pulls the current profile through the connector, so the version it works from is the one you last saved. It's never a pasted prompt that goes stale. Useful tools it can call once connected include `get_profile`, `generate_content` (1 credit per draft), `check_voice_match` (free), `polish` and `save_edit` (free, and it feeds learning).
A drafting session, step by step
Say you've connected ChatGPT and you need a post on why your team dropped weekly status meetings. Start in plain language.
- Give the brief. "Write a LinkedIn post about dropping weekly status meetings, in my ScriptGrain voice. Four short paragraphs, no hashtags." Name the profile. Name the format. That's enough.
- Let it draft. ChatGPT either calls `generate_content` or writes the piece itself, then calls `check_voice_match` on the result.
- Read the score. You get a number from 0 to 1 and the per-feature deltas, each one a draft value set against your profile value. On-voice drafts typically land 0.85 to 0.95.
- Read the deltas, not just the number. A 0.82 with one big gap in sentence length tells you more than a 0.82 on its own.
- Polish or edit. Ask ChatGPT to polish toward a target; the default is 0.9. Or fix a line by hand and save the edit.
That last step matters. Saved edits are how the app learns. Your corrections aren't thrown away when the chat closes.
When a draft scores off voice
Fair enough, it happens. The score bands are a guide: partial matches sit around 0.5 to 0.8, and a clearly different voice falls under 0.45.
Don't rerun the same brief and hope. Open the deltas. They'll usually point at one or two culprits. Sentences far longer than yours. Hedging where you'd state the claim flat. Three commas per sentence where you use one. Each is a concrete thing you can name back to the assistant: "Shorten the sentences and cut the qualifiers."
If the score is partial, ask for a polish. It revises the draft toward the target and rescores it. If it's under 0.45, look at the brief first. A request for a formal whitepaper from someone whose samples are all casual newsletters is asking for a different voice, and the score will say so.
One more cause worth ruling out: thin source material. A profile needs at least one sample of 50 words or more, but three or more pieces and about 3,000 words is the recommendation. A profile built from one short post is a sketch.
And when you fix a draft by hand, save the edit. So the next draft starts closer.
Custom instructions and the profile together
These do different jobs, and mixing them up wastes space. Custom instructions are two free-text boxes: 1,500 characters each on Free and Go, 5,000 on paid plans. That's room for facts about you, and not much else.
Put these there: your role, your audience and the products you sell, plus the words you never use and whatever else ChatGPT should always know. Stuff like "I run a small consultancy, my readers are finance leads, never mention competitors by name."
Leave how you write to the profile. Sentence rhythm, contraction rate, how you open, how you land a point: measured, not described, and read live each time. Trying to squeeze that into 1,500 characters means guessing at your own habits and spending the whole box on it.
So the split is simple. Custom instructions say who you are and what you're writing about. The profile says how you sound when you write it. ChatGPT's own custom instructions are good at the first job; plenty of people need nothing more for facts. The profile covers the part a text box can't hold.
Use both and each one does less work, and does it better.
Questions
Do I need a paid plan to connect ScriptGrain to ChatGPT?
Not on the ScriptGrain side: the connector, the profile and voice-match scoring are on the Free plan, and paid plans add generation credits, polishing and the monthly voice monitor. Adding a custom app depends on your ChatGPT plan; the setup steps list the plans OpenAI names.
Does ChatGPT send my conversations to ScriptGrain?
No. ChatGPT calls ScriptGrain only when it uses a tool (score this text, generate this brief), and ScriptGrain receives only what that call contains. Your API key or sign-in token never appears in the conversation.
What is the voice-match score measuring?
Stylistic alignment: sentence rhythm, punctuation habits, pronoun mix, formality, argument structure and the rest of the measured attributes, compared feature by feature against your profile. It says whether the draft sounds like you, not whether it is any good.