To get a good blog post introduction from AI, stop asking for "an introduction" and instead give the model four things in one prompt: a role, a specific audience, a single angle or tension, and a named hook type — then cap the length and ban the openers you hate.
The reason most AI intros come out flat is that "write an introduction" is an instruction with no constraints, so the model defaults to the safest, most average opening it has seen a million times: a broad statement about how the world is changing.
Constraints are what force it off that default. A prompt that says "You are a skeptical procurement manager writing to a peer; open with the moment a vendor demo went wrong; 60 words; no sentence may start with 'In today's'" will beat "write a good intro" every single time, not because the model got smarter, but because you removed its escape routes.
The mechanism behind this is worth understanding, because it lets you fix bad intros yourself. Language models generate text by predicting what plausibly comes next, and generic openers are the highest-probability continuation of a vague request. Every constraint you add — audience, angle, hook type, word count, banned phrases — narrows the probability space and pushes the output toward something specific.
Audience matters most because it changes vocabulary and assumed knowledge: an intro written for a CFO reads nothing like one written for a first-time founder. Angle matters second, because a post needs a reason to exist. If you cannot state the tension your post resolves in one sentence, the model cannot either, and you will get a summary instead of a hook.
Hook type is the third lever. Naming it explicitly (a surprising number, a short scene, a direct question, a contrarian claim, a before-and-after) stops the model from drifting into the bland middle.
Here is a full worked prompt you can adapt. "You are a freelance bookkeeper writing for solo freelancers who just got their first 1099. Angle: they think quarterly taxes are optional until the first penalty hits.
Write a 70-word blog introduction. Open with a short scene of someone opening a letter from the IRS. Do not use the words 'navigate', 'landscape', 'journey', or 'in today's world'.
Do not start with a definition. End with a one-sentence promise of what the post delivers. Tone: plain, slightly wry, no exclamation marks."
Notice what each clause is doing. The role sets vocabulary. The audience sets assumed knowledge.
The angle supplies the tension. The scene hook forces a concrete image instead of an abstraction. The banned words block the model's favourite filler.
The promise sentence gives the reader a reason to keep going. If the first draft still opens weakly, do not rewrite the whole prompt — change one variable at a time, usually the hook type, and regenerate. That single-variable approach is the fastest way to learn what your model responds to.
Where this advice breaks down: it costs you a few minutes of thinking before you type, and that thinking is the actual work. If you do not know your audience or your angle, no prompt template will save you — you will just get a well-formatted generic intro. Very short intros (under 40 words) are also hard to control this way, because there is not enough room for the model to establish a scene and still land the promise; in that case pick one job only.
And prompts are not portable across models in a guaranteed way. Different assistants weight instructions differently, so a prompt tuned for one may need the banned-word list moved to the top for another. Treat the template as a starting point you tune, not a formula.
If your problem is that the draft reads stiffly even when the structure is right, the fix is a separate editing pass rather than a longer prompt — see How do I stop AI from writing content that sounds like a robot wrote it? for that step.
One last tip: keep a personal swipe file of intros you actually liked, and paste two of them into the prompt as style examples. Showing beats describing, and it is the single fastest upgrade to output quality.