Fix Claude's Em Dash Problem With One Prompt Line
The em dash has become the fastest way to get your content flagged as AI-generated. A recent Reddit post in r/ClaudeAI — with over 1,250 upvotes and more than 220 comments — captured the frustration perfectly: em dashes have flooded AI output so thoroughly that even human writers are now second-guessing their own punctuation choices. The poster pointed out that the same norm-shift is happening with emoji in commit messages; repos are quietly dropping them because AI has colonized the convention. The em dash is the writing equivalent of a watermark, and Claude applies it by default.
The good news: you can kill it with a single line in your system prompt.
What you need
You need access to Claude — either through the API or Claude.ai’s system prompt field. No libraries, no special setup. If you’re using the API, you’re adding one key to your system parameter. If you’re in the UI, you’re editing the custom instructions block.
Step 1: See the problem
Run a Claude generation with no style instructions at all. Ask for something typical — a product description, a blog intro, a Slack message draft. Count the em dashes.
User: Write a two-paragraph product description for a project management app.
A raw response from Claude with no system prompt will typically look like this:
TaskFlow keeps your team aligned — no matter how complex the project.
Built for async-first teams, it handles dependencies, deadlines, and
handoffs so nothing slips — and everyone knows what's next.
Whether you're running a two-person startup or a 50-person org —
TaskFlow scales with you. Real-time updates, clean reporting, and
integrations with the tools you already use — all in one place.
Four em dashes in two paragraphs. That’s the default state.
Step 2: Add the fix
Add this single line to your system prompt:
Avoid em dashes (—). Use commas, periods, or restructure the sentence instead.
That’s it. With the Claude API, your request payload now looks like this:
{
"model": "<your-preferred-claude-model>",
"max_tokens": 1024,
"system": "Avoid em dashes (—). Use commas, periods, or restructure the sentence instead.",
"messages": [
{
"role": "user",
"content": "Write a two-paragraph product description for a project management app."
}
]
}
The same prompt now produces something like:
TaskFlow keeps your team aligned, no matter how complex the project.
Built for async-first teams, it handles dependencies, deadlines, and
handoffs so nothing slips. Everyone always knows what's next.
Whether you're running a two-person startup or a 50-person org,
TaskFlow scales with you. Real-time updates, clean reporting, and
integrations with the tools you already use. All in one place.
No em dashes. The sentences restructure themselves naturally because the model is genuinely trying to avoid the character, not just swap it for something else.
Step 3: Make it stick across a project
If you’re building anything that uses Claude for content generation — a writing assistant, a documentation tool, a customer-facing chatbot — bake this into your base system prompt template so it applies everywhere:
BASE SYSTEM PROMPT:
You are a helpful writing assistant.
Style rules:
- Avoid em dashes (—). Use commas, periods, or restructure the sentence instead.
In code, the structure looks like this regardless of which client library you use:
system = BASE_SYSTEM_PROMPT
messages = [{"role": "user", "content": user_message}]
# pass system and messages to your Claude API call
The style block is its own section, easy to expand. You’re already building a style guide — you just don’t have all the rules yet.
Where this breaks
The fix works most of the time. Em dashes are the most visible AI tell, but they’re not the only one — a full style guide approach (covering the rest of the patterns) is a deeper project worth doing properly.
Next steps
The em dash fix is the quick win. The upcoming long-form video will cover building a complete Claude output style guide — one that suppresses the full range of AI tells, not just the most obvious punctuation habit.
For now, add the one line. It’s a quick change and it makes a visible difference immediately.
← Back to blog