We all know people use AI to write their texts. And we all know they tend to have a similar feel to them. There is something with those texts that makes them look like other texts. We instinctively feel that there is something about them that just smells AI. But what is it?
I asked Claude, ChatGPT, and Gemini to generate a bunch of blog posts, product announcements, and emails on different topics. I looked at them for a while, trying to see what the similarities were, before I realized that I should just ask Claude to read them to find the recurring patterns.
So I asked Claude and Claude found 32 patterns. They match what we’ve all been noticing when reading thing online for the past months. Any human might write “it’s worth noting” once. But when “it’s worth noting” and “at the end of the day” and three em-dashes and a “simple yet powerful” all appear in the same paragraph, maybe it wasn’t written by a human.
Or maybe it was written by a human, but readers will still think it was written by an AI.
In any case, here are the 32 patterns that the AI found:
Instant tells
Those are the easiest ones to spot. We will pick up on them by just glancing at the text.
| Pattern | Example | Fix |
|---|---|---|
| Em-dash overuse. Dashes bolting parenthetical asides onto sentences. One per document maybe is fine, but not more. | “Our framework — which we spent months refining — offers developers — regardless of experience — a better workflow.” | “Our framework offers developers a better workflow. We spent months refining it.” |
| “Not X, it is Y” constructions. Contrastive framing where the negation adds nothing. | “This is not about speed, it is about reliability.” | “This is about reliability.” |
| Filler phrases. Phrases that carry zero meaning. AI models love them: “it’s worth noting”, “delve into”, “leverage”, “nuanced”, “landscape.” | “It’s worth noting that we leveraged a nuanced approach to navigate the compliance landscape.” | “We built the compliance checks into the deploy pipeline.” |
| Marketing language. Adjectives that seem to sell instead of describe. “Powerful”, “seamless”, “revolutionary”, “game-changing.” These words mean nothing because they describe anything. | “A powerful, seamless solution that revolutionizes your workflow.” | “It runs your deploys in parallel and cuts wait time from twelve minutes to two.” |
| Generic openings. Opening sentences that could begin any article ever written. | “In today’s rapidly evolving digital landscape, developers face unprecedented challenges.” | “Our deploy pipeline broke three times last week. Same root cause each time.” |
| Paired adjectives with “yet.” “Simple yet powerful.” “Elegant and robust.” Pick the one that matters. | “A lightweight yet comprehensive testing framework.” | “A testing framework that runs the full suite in four seconds.” |
| “Excited to announce” openers. Instead of just stating what happened. | “We’re thrilled to announce the launch of our new API!” | “The new API shipped today. Here’s what changed.” |
| “Whether you’re X or Y” false inclusivity. Pretending to address two audiences when you’re addressing one. | “Whether you’re a startup founder or an enterprise architect, this tool fits your needs.” | “If you’re running a small team and your deploy takes longer than your lunch break, keep reading.” |
| Faux-conversational pivots. “Here’s the thing:”, “Let me be clear:”, “The truth is:” Filler before the actual point. | “Here’s the thing: most teams don’t actually need microservices.” | “Most teams don’t actually need microservices.” |
| Corporate cliches. “Move the needle”, “growth mindset”, “synergy”, “paradigm shift.” These existed before AI, but AI amplified them. | “We’re doubling down on our growth mindset to move the needle on developer experience.” | “We’re making the CLI faster. That’s it.” |
| Triple-value lists. Three abstract virtues in a row. Sounds principled (but rarely says anything). | “We believe in transparency, innovation, and excellence.” | “We publish our incident reports within 24 hours, including what went wrong and what we’re fixing.” |
Weakeners
These don’t scream AI, but AI tends to write them, so it piles up.
| Pattern | Example | Fix |
|---|---|---|
| Rhetorical questions as section openers. Questions filling the space where a statement should go. | “What if you could deploy with zero downtime?” | “Zero-downtime deploys used to require a custom load balancer. Now the standard tooling handles it.” |
| Passive voice as habit. “It was found that…”, “it was determined…” | “It was determined that the memory leak originated in the cache layer.” | “We traced the memory leak to the cache layer.” |
| Excessive hedging. AI hedges because it’s trained to be non-committal. The result reads like someone afraid to state a fact. | “It could be argued that perhaps this approach might not be ideal for all use cases.” | “This breaks on datasets over 10GB.” |
| Meta-references. Text referring to itself. The reader knows they’re reading the post. | “In this article, we’ll explore five strategies for reducing build times.” | “Five changes cut our build time from eight minutes to ninety seconds.” |
| Mechanical transitions. “Furthermore”, “Moreover”, “Additionally.” Feels like you couldn’t connect two ideas naturally. | “The API is fast. Moreover, it handles errors gracefully. Furthermore, it scales horizontally.” | “The API is fast. It also recovers from failures on its own and scales horizontally without config changes.” |
| Bold emphasis in body copy. Wrapping phrases in bold to highlight selling points. | “Deploy with zero configuration and instant rollbacks.” | “It deploys without config files. Rolling back takes one command.” |
| Scare quotes. Quotation marks for emphasis around ordinary words. | “The tool ‘seamlessly’ integrates with your existing stack.” | “The tool reads your existing config files. No migration step.” |
| Section-end summaries. Restating what was just said. AIs do this maybe because they were trained on textbooks. | [three paragraphs about caching]… “As we can see, caching is an effective strategy for improving performance.” | End after the last substantive point. Trust the reader. |
| Exclamation mark clusters. More than one per paragraph. The excitement feels performed. | “The results were incredible! We saw a 3x improvement! The team was thrilled!” | “We saw a 3x improvement. Nobody expected that.” |
| Repetitive “You” sentence starters. 3+ consecutive sentences starting with “You.” | “You open the dashboard. You click deploy. You wait for the build. You check the logs.” | “Open the dashboard, click deploy, wait for the build. The logs update in real time.” |
| Hashtag blocks. #CamelCase hashtags appended to text (particularly for social media posts). | “Just shipped our new feature! #DevOps #CloudNative #BuildInPublic #StartupLife” | Delete them. |
| Emoji as emphasis. Decorative emoji used for energy instead of words. | “Just launched! 🚀🔥✨ Check it out! 💯” | “Just launched. Here’s the link.” |
| Uncontracted forms. “It is”, “do not”, “is not” throughout. | “It is important to note that you do not need to configure this manually. It is handled automatically.” | “You don’t need to configure this manually. It’s handled automatically.” |
| Heading emoji. Decorative emoji at the start of markdown headings. ChatGPT does this a lot. | ”## 🚀 Getting Started” | ”## Getting started” |
| Informal corporate slang. Metaphorical jargon passed off as casual. “Unpack this”, “deep dive”, “low-hanging fruit.” | “Let’s unpack this and do a deep dive into the low-hanging fruit.” | “Three changes fix most of the problem. Start there.” |
| Internet cliches. Phrases from a few years ago that were mined by the AIs. “Hits different”, “chef’s kiss”, “rent-free”, “let that sink in”, “you can’t unsee it”, “tell me you X without telling me you X.” | “Once you spot the em-dash habit, you can’t unsee it. The way every model defaults to it hits different.” | “Once you spot the em-dash habit, you start seeing it everywhere. Every model defaults to it.” |
Statistical patterns
Those are a little more subtle.
| Pattern | Example | Fix |
|---|---|---|
| The word “very.” Weakens specificity. Humans use it too, but AI uses it as a default intensifier on everything. | “The response times were very fast.” | “Response times averaged 12ms.” |
| Typographic quotes. Curly quotes instead of straight. Most keyboards produce straight quotes but AI models often output curly ones. | “Hello world” (curly) | “Hello world” (straight) |
| Repetitive word use. Same word 3+ times in a short span. AI repeats a word until the context window moves on. | “The framework provides a robust foundation. This robust architecture ensures robust performance.” | “The framework provides a solid foundation. The architecture holds up under load.” |
| Sentence length uniformity. 4+ consecutive sentences of similar word count. AI tends to produce metronomic lengths. | Four consecutive 15-word sentences in a row. | Mix short and long deliberately. |
| Repeated thematic points. AIs seem to re-derive their thesis in every section instead of advancing the argument. | Three sections each opening with a variant of “any one of these means nothing, but together they signal AI.” | Make the point once, in the strongest place. Cut or replace the weaker restatements with claims that move the piece forward. |
What to do about it?
One old-school trick is to write by hand. But even when we do write by hand, our own context windows may have been poisoned by all the AI texts that we read everywhere. So people may think our texts were written by an AI even if they weren’t.
So I built two tools that do it automatically: an in-browser slop detector where you paste text and get instant feedback, and a Claude Code skill called deslop-text that catches and fixes these in your working files.
Those tools work equally well if your text was written by hand or by an AI.
Adam Dunkels, PhD
Can we Vibe Code a Smart Home Device with Matter?