Blog · AI
— AI··11 min read

How to write AI prompts that produce on-brand content

Joona Heinonen· Choco Media · Rovaniemi

The gap between AI output that could have come from anywhere and AI output that sounds like your brand comes down to how the prompt is written. At Choco Media, AI prompts for content are not treated as one-liners — they’re structured documents that encode voice rules, format constraints, and audience context so the model can do its job without a human correcting every output. This post covers the exact structure we use, with worked examples for the formats content teams use most.

This is for marketing teams and in-house content leads who are already using AI in their writing process but getting inconsistent results. You’ve probably noticed that some outputs are almost right and some are completely off, and you can’t always predict which you’ll get. That inconsistency is a brief problem, not a model problem. The models are capable — the instructions just aren’t specific enough.

By the end you’ll have a prompt structure that produces consistent, on-brand output for blog posts, social content, and email copy, along with the specific additions that make the difference between a prompt that works once and one that works reliably.

Why most content prompts fail

The most common prompt we see when teams share their AI workflows is something like: “Write a LinkedIn post about our new feature. Keep it professional but engaging.” That instruction is not a brief — it’s a category. A model receiving that prompt has no idea what professional means to your brand, what engaging looks like in your voice, how long the post should be, whether it should start with a hook or a statement, or what the post should make the reader feel or do.

The model fills all of those gaps with its training data. Its training data contains millions of LinkedIn posts from thousands of different brands. The output is statistically average across all of them — competent, inoffensive, generic.

The fix is not a better model. The fix is a prompt that answers all those questions before the model has to guess. Every gap in the brief is a guess, and every guess degrades the output slightly. Four or five guesses and you’re reading something that sounds like a press release from a company you’ve never heard of.

The four-layer prompt structure

We build every content prompt in four layers. Each layer answers a different class of question. When all four are present, the output is consistently close enough that editing is a pass, not a rewrite.

Layer 1: Role and context

Tell the model who it is and what the broader context is. Not “you are a copywriter” — that’s still too generic. Be specific: “You are writing on behalf of a small Finnish marketing agency that works with ambitious B2B and DTC brands. The agency is called Choco Media. The voice is calm, direct, first-person plural, and honest. No hype.”

This layer sets the frame for everything that follows. It’s also the one most teams skip entirely, which is why their outputs read like they were written by a generic agency rather than their specific one.

Layer 2: Output specification

Define exactly what you want: format, length, structure, and delivery. For a LinkedIn post: maximum 180 words, short paragraphs (1–3 sentences each), no hashtags, no emoji, open with a statement not a question, close with a concrete takeaway not a CTA. For a blog introduction: 3 paragraphs, first paragraph contains the target keyword, no rhetorical questions, no “In today’s fast-paced world”.

Format specs feel tedious to write. They’re the single highest-leverage part of the prompt. A model that knows the format will almost always hit it. A model that doesn’t will produce something structurally wrong that requires reformatting before it can be edited for voice.

Layer 3: Negative constraints

List the specific words, phrases, and patterns your brand doesn’t use. This layer does more work than the positive voice description. “Do not use: game-changer, revolutionary, unlock, supercharge, leverage (as a verb), in the realm of, delve, tapestry, navigating the landscape.” Each one of those is a phrase that AI models overuse and that flags content as AI-generated to anyone who reads a lot of it.

Add brand-specific prohibitions. If your brand never uses exclamation marks, say so. If you don’t use passive voice, say so. If you write “we” not “our team”, say so. The more specific the constraints, the less the model has to guess.

Layer 4: The specific task

Only now do you state what you actually want written — and here too, be more specific than you think necessary. Don’t say “write a LinkedIn post about our content repurposing workflow”. Say: “Write a LinkedIn post taking the angle that most teams’ repurposing fails because they treat it as a creative task rather than a system task. Draw from the section about the production sequence. The post should leave the reader with a concrete action they can take this week.”

The angle, the source material, and the desired reader outcome are three separate decisions. Delegating all three to the model produces the path of least resistance — usually a neutral summary of the source material, not a post with a point of view.

Worked example: blog introduction

Here’s the full prompt we’d use for a blog post introduction on a topic like “how to structure a Meta Ads account”:

You are writing for Choco Media, a small Finnish AI-first marketing agency. Voice: calm, direct, first-person plural (“we”), no hype, no corporate jargon. Do not use: revolutionary, unlock, supercharge, game-changer, delve, leverage (verb), “in today’s landscape”, “in the realm of”. Write three paragraphs. Paragraph 1: open with the target keyword “Meta ads account structure” in the first sentence, state who the post is for and what they will leave with. No rhetorical questions. Paragraph 2: context for why this matters — one specific failure pattern, described concretely. Paragraph 3: what the post covers and in what order. No “I will cover” — use “this post covers”. Maximum 200 words total. Topic: how to structure a Meta Ads account for a €5k/month budget.

That prompt is 140 words for a 200-word output. That ratio feels wasteful until you compare the output to what a 10-word prompt produces. The 10-word version requires a rewrite. The 140-word version requires a light edit.

Worked example: social post

For a LinkedIn post taking an opinion angle from a published blog post:

Layer 1 (role/context): same as above — establish the voice and brand once at the top of the prompt.

Layer 2 (format): “Maximum 160 words. Paragraph breaks every 1–2 sentences. No hashtags. No emoji. No question in the opening line. Open with a direct claim. Close with one practical sentence — not a question, not ‘let me know your thoughts’.”

Layer 3 (negative constraints): same brand prohibitions, plus “Do not summarise the blog post. Do not reference the blog post. Write as if this is a standalone observation.”

Layer 4 (task): “Write a LinkedIn post arguing that the reason most teams’ AI content output sounds generic is a brief problem, not a model problem. The specific claim: every gap in the brief is a guess, and five guesses produce average content. Draw from the section on the four-layer prompt structure. The reader should leave thinking they need to rewrite their prompt template, not switch models.”

The result will be on-brand, structurally correct, and have a point of view — because the brief had one. Our AI content creation service is built on this kind of brief-first approach, applied across blog, social, and email for clients who want consistent output without managing the prompting themselves.

Building a reusable prompt library

The four-layer structure works for a single output. It becomes a force multiplier when layers 1–3 are stored as static templates that don’t change between runs, and only layer 4 varies per piece.

We maintain a prompt library with one template per content format: blog intro, blog section, LinkedIn post (educational), LinkedIn post (opinion), LinkedIn post (practical), email snippet, short-form video script, Twitter/X thread. Each template has layers 1–3 pre-filled. Layer 4 is a placeholder that gets replaced each time.

The library lives in Notion, with one page per format and the template in a copy-paste block at the top. New team members can use it without training. Freelancers can use it without a briefing call. The brand voice is encoded in the template — the brief writer just fills in the angle and the source material.

If you want a starting point, our post on building a prompt library your team will actually use covers the structure in more detail, including the 12 example prompts we use most in client work.

Few-shot examples: the single highest-impact addition

Everything above improves consistency. One addition improves quality: including an example of output you’d actually publish, right before the task instruction.

A few-shot example is a real piece of content from your brand that demonstrates what good looks like — not a description of what good looks like, but the thing itself. A 150-word LinkedIn post you’ve already published. A blog intro you’re proud of. Two sentences from an email that captured the voice perfectly.

Include it in the prompt with a label: “Here is an example of a LinkedIn post in our voice: [paste]. Write the new post in the same voice and structure.”

The model will calibrate to the example rather than to its general training data. The effect is significant — voice-specific patterns that take three paragraphs of description to explain are picked up immediately from a single real example. This is the technique most teams skip because it requires finding and saving good examples, which is low-urgency work that never gets done.

One practical fix: whenever you edit AI output and the result is something you’d publish, save that output. One sentence in a Notion doc: “Good LinkedIn example — opinion angle — [paste].” Over six months you’ll accumulate a calibration library that makes your prompts substantially better than any competitor using the same model.

Where prompts break down: edge cases to plan for

Even well-structured prompts produce failures in predictable situations. Knowing where they occur lets you add targeted fixes rather than lengthening every prompt.

Topic-voice mismatch

When the topic is technical or data-heavy, models tend to shift register — becoming more formal, more passive, more like a white paper. Add a specific instruction in layer 3: “Even when the topic is technical, maintain the same register as the voice examples. Write as if explaining to a colleague, not presenting to a board.”

Calls to action

Models default to generic CTAs: “Contact us today”, “Learn more”, “Reach out”. These are almost always wrong for brands with a specific voice. Name the exact CTA pattern you want, or prohibit CTAs entirely and write them manually. It’s faster than fixing them in every output.

Lists vs. prose

Without a format spec, models default to bullet lists because they’re easy to generate. If your brand writes in prose, make that explicit in layer 2. If you want a mix, specify when lists are acceptable and when they’re not.

Opening lines

The model’s default opening patterns — “In today’s competitive landscape…”, “Are you struggling with…”, “Content marketing is evolving…” — are the most visible markers of generic AI content. Prohibit them by name in layer 3, and give one example of how your brand actually opens a piece.

How to test a new prompt before using it in production

Before adding a new template to your library, run it three times on different topics. A prompt that produces good output once may fail on certain subject matter. Three runs reveals the patterns — if two of three outputs have the same failure mode, there’s a gap in the brief, not bad luck.

Evaluate each output on three questions only: Does it sound like us? Is the format correct? Would I publish this after a light edit? If the answer to all three is yes on two of three runs, the template is ready. If not, identify which layer failed and fix it.

This testing discipline is the difference between a prompt library that works and one that atrophies. Templates that haven’t been tested against failure cases get abandoned after the third bad output. Templates that were tested and refined get used for years. Our AI automation for marketing teams post covers a broader framework for deciding which workflows are worth systematising and which aren’t — repurposing prompt templates is one of the clearest wins.

If you’d like to talk through how to build this for your specific brand and content types, get in touch — we run prompt library builds as part of our onboarding for content clients.

— Work with Choco Media

Want posts like this working for your business?

10–40 SEO + AI-optimised blog posts a month, researched, senior-edited and published straight to your site. Built to rank on Google and get cited by ChatGPT, Claude and Gemini.

See plans — from €199/mo →
No start-up fee · Price locked for 12 months · Cancel any time after
← All storiesNext story →
— Free tips, monthly

Get the playbook, for free.

One short letter a month — the prompts we use, the campaigns that worked, the AI tools worth the time. No sales pitch, just field notes.

— Want us to do it for you?

Hire the agency.

AI-accelerated content, paid media, brand and web — delivered by one small team that talks to itself. Currently taking on a handful of clients each quarter.

Book a call