
How to Humanize AI Copy in Sanity CMS Without Generic Fields
ChatGPT fills Sanity fields with interchangeable SaaS mush. Lock schema field jobs and approved claims first. Humanize one field type at a time after the content model is true.
Sanity copy fails when every string field could sit on a competitor’s site with the logo swapped. ChatGPT is excellent at that failure mode: seamless solutions in heroTitle, passionate teams in seoDescription, and a CTA that says “Get started” in primaryCtaLabel.
Human Writes is the voice pass after the schema map and claim sheet are true. You are not polishing vibes - you are making each field do its job without inventing proof. Editors care whether the Studio fields stay short, specific, and publishable.
Related hubs: product marketing copy, WordPress homepage copy, Webflow SaaS homepage, agency scale.
Schema map before ChatGPT
Paste your actual field names. Example marketing page document:
| Sanity field | Typical type | Job of the copy |
|---|---|---|
heroTitle | string | One promise; often ~40–70 chars |
heroSubhead | text | Who + outcome; not a second H1 |
primaryCtaLabel | string | Verb + object (“Book a demo”) |
seoTitle / seoDescription | string | Search snippet; not hero paste |
featureCards[].title | string | Benefit per card |
featureCards[].body | text | One proof or limit |
body | portable text | Long-form; sectioned |
ogImage.alt | string | Accessible description of real art |
If you use page builder arrays (sections[] with hero, logoCloud, pricingTeaser), map each _type the same way. Empty modules with AI filler are worse than fewer sections.
For claim-sheet discipline outside CMS constraints, see product marketing copy. Builder parallels: WordPress, Webflow.
What AI Sanity drafts get wrong
| Pattern | Fix |
|---|---|
| Same paragraph in title, SEO, and card | Write to field job and length |
| Invented social proof in portable text | Delete or replace with approved quotes |
| CTA labels that are full sentences | Short button language |
seoDescription as keyword dump | One readable snippet |
| Ignoring validation / max length | Draft inside Studio limits |
Lock the claim sheet (field-aware)
| Field group | Your entry |
|---|---|
| Audience + offer | Who buys; what they get |
| Approved proof | Named clients, metrics they signed off |
| Product nouns | Exact feature names from the schema enums |
| Hard limits | Char caps from validation |
| What you will not invent | Logos, percentages, case studies |
| Locale notes | en-US vs other markets if localized |
Prompt: “Fill only these Sanity fields from the claim sheet. Respect character limits. Different copy per field. No invented metrics. Return as labeled field values, not one essay.”
Before and after
AI mush (one blob dumped into three fields):
heroTitle: Empowering teams to unlock seamless growth at scale
seoDescription: Empowering teams to unlock seamless growth at scale with innovative solutions
featureCards[0].body: We empower teams to unlock seamless growth at scale every day
After schema map + one pass per field:
heroTitle: Invoice chase ends before Friday
seoDescription: Human Writes helps B2B finance teams cut follow-up email time - see how scan and humanize fit your draft workflow.
featureCards[0].body: Syncs with the fields your editors already use; no new proof invented in Studio.
Second set is field-specific. Titles, SEO, and cards are not clones.
Portable text vs string fields
Strings (heroTitle, CTA) | Portable text (body) | |
|---|---|---|
| Risk | Overlong / keyword stuffed | Even hedged essays |
| Humanize | One short pass | Section by heading |
| Keep sacred | Product names, limits | Headings that match IA |
| Studio tip | Validate length | Prefer H2 blocks editors expect |
Do not paste an entire marketing PDF into body and ask the model to “Sanity-ify” it. Chunk by section document or by sections[] item.
Workflow
- Export or screenshot the schema fields and validation rules you will fill.
- Fill the claim sheet; strike unapproved proof.
- Draft field-by-field (hero → SEO → cards → body).
- One Human Writes pass per field group for voice.
- Paste into Sanity; fix anything that fails validation.
- Preview the front end - Studio length ≠ rendered layout.
- Disclose AI use if the client contract requires it (ethics checklist).
Bottom line
Sanity publishing is a schema test, not a blank-page essay. Lock field jobs and approved claims first. Then polish voice one field type at a time. Human Writes helps the second step - not inventing testimonials inside featureCards.