# RemoveAISlop Knowledge Base

17 articles. Fetch one on its own at `/api/v1/docs?id=<article-id>`, or the index at `/llms.txt`.

# How is RemoveAISlop different from Grammarly and QuillBot?

> Grammarly checks correctness and QuillBot swaps synonyms. We rewrite the cliché vocabulary, flat sentence rhythm and formulaic openers that make text read as machine-written, and leave your facts alone.

*Category: Pre-Sale & Comparisons · Article ID: diff-from-grammarly · Updated: 2026-08-23*

---

## Short answer

Grammarly checks whether your sentence is correct. We check whether it sounds like a machine wrote it. Those are different problems, and a sentence can fail ours while passing theirs perfectly.

| Tool | What it changes | What it leaves behind |
|---|---|---|
| Grammarly | Spelling, punctuation, grammar, tone hints | AI phrasing. *"Delve into the rich tapestry of modern commerce"* is flawless English, so it passes clean. |
| QuillBot and article spinners | One word at a time, from a thesaurus | Meaning. Synonym swaps mangle jargon, product names and numbers. |
| RemoveAISlop | Cliché vocabulary, sentence rhythm, formulaic openers and CTAs, **plus** spelling and the mechanical grammar mistakes a proofreader catches | Judgement calls about comma style, and plagiarism checking. |

### What we actually change

* **Vocabulary.** 722 over-indexed terms, each carrying a reliability tier rather than a flat penalty, so one *robust* in a technical sentence is not treated like *a symphony of innovation*. The full index is in [the Guidebook](/docs).
* **Rhythm.** LLMs settle into 14 to 18 word sentences and stay there. We measure that as burstiness and break up genuine run-ons, but we will not manufacture variation in prose that is already uniform. That needs words you did not write, and we do not add those.
* **Bookends.** Formulaic openers ("In today's fast-paced world") and fake engagement CTAs ("What are your thoughts?") get replaced or cut. Both carry the heaviest penalties in the scorer.

### What we do not touch

Numbers, names, quotes, links and claims pass through unchanged. That is the deliberate difference from a spinner: if a rewrite alters one of your metrics, treat it as a bug and send us the draft.

### Can it replace Grammarly outright?

For the final check before you publish, yes. Spelling, grammar and slop all run in one pass, and none of them needs a second subscription.

Two things it honestly does not do:

* **Plagiarism and citation checking.** That needs an index of the web to compare against. We do not have one and are not going to pretend otherwise.
* **Comma style.** Genuinely ambiguous, and as much house style as rule. We stay quiet rather than argue about it.

Everything else on a proofreader's list (misspellings, homophones, apostrophes, agreement, verb forms, doubled words, spacing) is covered, and covered without sending your draft to a model.

### Where we are the wrong tool

* You want text that defeats an AI detector. We optimise for reading like a person, which usually moves detector scores, but we do not promise a number on someone else's classifier.
* You want the draft written for you. We rewrite what you already have.

**Related:** slop-score-explained, why-not-zero-after-cleaning, quickstart-guide

---

# What happens to the text I paste in?

> Your draft never leaves our server and is never written to a database. Not as a policy that depends on a setting. The model clients that could have sent it were deleted.

*Category: Pre-Sale & Comparisons · Article ID: privacy-guarantee · Updated: 2026-08-24*

---

## Where your text goes

Nowhere. Your draft is processed in memory on our own server and is never sent to a third party, because there is no code left that could send it.

That is a stronger claim than it was, and it is worth saying why it changed. This app used to carry a Gemini and an OpenAI client that would activate if an API key were configured. Neither ever ran in production, but the code existed, and a privacy policy that depends on a setting is a policy you have to take on trust.

**We deleted the clients.** Detection and rewriting are pattern-based and run entirely on our infrastructure. Every de-slop still returns a `provider` field for API compatibility; it now has exactly one possible value, `heuristic`.

### Why a tool like this should not use a model

Three reasons, and only the first is about privacy.

* **Your draft stays yours.** Nothing to send means nothing to retain, subpoena or leak.
* **The same draft gives the same result.** A model rewrite is non-deterministic. Run it twice, get two answers. Rules do not do that.
* **A model would invent.** Asked to remove a cliché, a language model will happily write a replacement fact to fill the gap. Our engine stops wherever a fix would require inventing something, which is why it hands some decisions back to you.

A tool whose whole job is removing the fingerprints of a language model has no business sending your writing to one.

### What we store, and for how long

* **Your drafts**: not written to any database. They exist in server memory for the length of one request.
* **Usage counters**: a per-day count against an identifier derived from your IP address and browser user agent. No draft text is attached to it. It resets at midnight UTC.
* **Support tickets**: the email, subject and message you type into the form on this page are stored so an admin can reply to you. Treat a ticket as ordinary email. Do not paste anything confidential into one.
* **Voice samples**: used to build the persona for your session and not added to any shared or public training set.

### Before you paste client work

> If you are under an NDA that forbids third-party processing, this is straightforward: there is none. Your draft is handled by our server and no other. Open a ticket if you need that confirmed in writing for a compliance file. We would rather put it in an email you can keep than have you rely on a marketing page.

**Related:** api-quickstart, voice-cloner-best-practices

---

# What is the refund policy, and how do I actually get one?

> Full refund within 30 days of the charge, on any Creator or Agency plan. Open a billing ticket with the account email and invoice date. You do not have to give a reason.

*Category: Pre-Sale & Comparisons · Article ID: refund-policy · Updated: 2026-08-23*

---

## 30 days, no reason required

Any Creator or Agency charge can be refunded in full within 30 days of the date it was taken.

### How to request one

1. Open a ticket on this page with the category **Billing & Subscriptions**, or reply to the receipt email.
2. Include the **email address on the account** and the **invoice date**. That is everything we need.
3. We issue the refund to the original payment method. Your bank posts it in roughly 5 to 10 business days, which is the part outside our control.

### What happens to the account

* Pro features stop when the refund is issued, not at the end of the billing period.
* The account drops to the free tier rather than being deleted, so you keep 5 de-slops a day.
* Saved voice personas stay on the account.

### What is not covered

Renewals more than 30 days old. That said, if a renewal caught you off guard, open a ticket anyway and say so. We would rather sort it out than hold you to a date.

**Related:** billing-seats-and-devices, vat-invoices

---

# Quickstart: de-slop your first draft

> Paste a draft, pick one of 12 voice personas and a target format, then read the flags before you copy. No account needed for the first 5 rewrites each day.

*Category: Quickstart & Formatting · Article ID: quickstart-guide · Updated: 2026-08-23*

---

## Five steps

1. **Paste the draft** into the editor on the [home page](/) or in [Pro Studio](/dashboard). One line or a full article both work.
2. **Pick a voice.** There are 12 personas grouped into 5 families: Founders & Builders, Writers & Storytellers, Strategy & Execs, Tech & Architecture, and Marketing & Career. Every card carries a sample sentence, so you can hear the voice before you commit to it.
3. **Pick a format.** LinkedIn, X, Reddit and SEO blog get different line lengths, paragraph breaks and bullet rules.
4. **Press SMASH THE AI SLOP.** You get the rewrite, a before and after slop score, and the list of flags that fired.
5. **Read the flags before you copy.** Each one names the exact phrase and why it was penalised. This is the step people skip, and it is the one that teaches you to stop writing the pattern in the first place.

### Choosing a voice quickly

| You are writing about | Start with |
|---|---|
| Something that shipped or broke, with real numbers | **The Gritty Builder** |
| Revenue, solo-founder lessons, no hype | **Calm Bootstrapper** |
| A strategy framework for a leadership audience | **Big Brain Exec** |
| Why the popular take is wrong | **The Contrarian** |
| A technical deep dive | **The Engineer** |

If none of the 12 sound like you, train the [Voice Cloner](/help) on two or three of your own posts instead.

### What the free tier gives you

5 de-slops per day, resetting at midnight UTC, with no account required. The details are in [Free tier limits](/help).

**Related:** free-tier-limits, slop-score-explained, formatting-rules-colons-arrows

---

# Free tier limits: what counts as a credit and when it resets

> 5 drafts per day, reset at midnight UTC, tracked against your IP and browser rather than an account. Re-checking a draft you are still editing does not count again, and browsing the Guidebook is free.

*Category: Quickstart & Formatting · Article ID: free-tier-limits · Updated: 2026-08-23*

---

## The numbers

| | Free | Creator | Agency |
|---|---|---|---|
| De-slops per day | 5 | Unlimited | Unlimited |
| Posts per bulk CSV run | 5 | Unlimited | Unlimited |
| Browser activations | 1 | 3 | 15 |
| Team seats | 1 | 1 | 5 |

### What spends a credit

* A rewrite from the home page, Pro Studio, the Chrome extension, the MCP `deslop_post` tool, or `POST /api/v1/deslop`. One credit each, whatever the length of the text.

### What counts against the five

* **A different draft.** Checking a piece you have not checked today spends one.
* **Not an edit.** Re-checking a draft you are already working on costs nothing, however many times you do it. The studio re-checks as you type, and that never spends a credit. What counts is the sixth *different* draft.
* **A rewrite of a draft you already checked** still spends a credit of its own, because rewriting is the paid half.

### What is free without limit

* **Checking in the Chrome extension.** It runs on your own machine and sends nothing to underline a phrase, so there is nothing to meter. The five a day applies to checks in the studio, which run on our servers, and to whole-draft rewrites from anywhere.
* Reading the [Guidebook](/docs) and this knowledge base.
* Your saved word lists, and every setting.

### When it resets

At **00:00 UTC**, not 24 hours after your first use. If you are in UTC+10 your allowance refills mid-morning; if you are on US Pacific time it refills in the afternoon.

### How we identify you without an account

The counter is keyed to a value derived from your IP address and browser user agent. Two practical consequences:

* Switching browser or network can hand you a fresh allowance. We are not going to pretend otherwise.
* A shared office IP with the same browser build can share a counter. If your team is hitting the limit as a group, that is what is happening, and a Creator plan is the fix.

### When you hit the limit

The API answers **HTTP 429** with `limitReached: true`. Nothing is lost. Your draft is still in the editor.

**Related:** quickstart-guide, billing-seats-and-devices, bulk-csv-guide

---

# Bullets, colons and formatting: the rules and how to override them

> Arrows, dots, dashes or numbering: bullet style is a control, not a persona trait. Colons only close an introductory teaser, and the Buzzword Filter decides whether single-word jargon survives.

*Category: Quickstart & Formatting · Article ID: formatting-rules-colons-arrows · Updated: 2026-08-24*

---

## The punctuation rules the engine follows

Formatting is one of the loudest AI tells. Bullet-stuffing every line, or chaining a colon onto every heading, reads as machine output even when the words are fine. The engine applies a hierarchy instead.

### Colons

Allowed on the line that sets up what follows, and nowhere else:

> Here is what happened when we ran this in production:

Chained or duplicated colons inside sub-bullets get stripped. A colon in the middle of a sentence is left alone.

### Bullet markers are yours to set

Each persona carries a default marker: `→` for the Founder and Builder voices, `•` for most others, numbering for the framework tones such as *Big Brain Exec*.

That is a **default, not a rule**. Which character starts a list item is house style, not a property of the voice you write in, so **Pro Voice Tuning → Bullet Style** sets it once and every persona respects it:

| Setting | Result |
|---|---|
| Match my voice | The persona default, as above |
| `-` Dash | `- Structured data present` |
| `•` Dot | `• Structured data present` |
| `→` Arrow | `→ Structured data present` |
| `—` Em dash | `— Structured data present` |
| `1.` Numbered | `1. ` `2. ` `3. `, restarting at each new list |

Left on *Match my voice*, an arrow still means an actionable takeaway rather than decoration. An arrow on every line makes all of them look equally important, which means none of them do.

### Format changes the rules too

The same persona formats differently per target. LinkedIn gets short paragraphs with line breaks between them, X gets tighter lines, and the SEO blog format keeps longer paragraphs intact.

### What else changes when you switch persona

Formatting is the visible part, but four things change per persona:

| Lever | What it does |
|---|---|
| **Sentence length** | Long sentences are split at their own conjunction. *Punchy* caps at 18 words, *Balanced* at 26, *Considered* leaves them alone. Set by the Sentence Pacing dial, not the persona. |
| **Register** | Conversational personas use contractions (*it's*, *don't*); formal ones (*Big Brain Exec*, *Staff Tech Architect*, *Data Essayist*) expand them back out. |
| **Paragraph density** | Tight personas put one idea per line for scannability. Flowing ones (*Visionary Founder*, *Viral Storyteller*, *Indie Coffee Chat*, *Data Essayist*) keep full paragraphs. |
| **Word choice** | Each persona prefers different words for the same idea. The same sentence becomes "dig into" for the Builder, "examine" for the Exec, and "poke at" for the Witty Creator. |

Two consequences worth knowing. On a very short draft with no long sentences and no contractions, several personas will land close together. There is simply less for the levers to act on. And none of them invent a hook, a closer or a statistic: every transform is meaning-preserving, so nothing appears in your output that was not in your draft.

### Overriding any of this

The three **Pro Voice Tuning** dials change the rewrite directly, and they are saved to your account rather than to the browser, so they follow you between the studio and the extension:

* **Bullet Style**: the marker table above.
* **Buzzword Filter**: *100% Zero Clichés* removes every formulaic phrase **and** every over-produced single word. *Keep Industry Jargon* removes the phrases but leaves individual terms of art alone. That second mode exists because *robust* is a real word in statistics, *delve* is ordinary in archaeology, and *ecosystem* is precise in software. Clichés go, your own vocabulary stays.
* **Sentence Pacing**: caps run-on sentences by breaking them at their own conjunction. *Punchy* at 18 words, *Balanced* at 26, *Considered* not at all.

### Why there is no "hook style" or "ending style" dial

There used to be. They offered things like *Cinematic Real Scene* and *Decisive Bottom Line*, and they did nothing at all, because doing them means **writing an opening or an ending that is not in your draft**.

That is the line this tool does not cross. We remove formulaic openers and engagement-bait CTAs, because subtraction is always safe, but choosing what replaces them is yours. A dial that promised otherwise was promising a rewrite we will not do, so it was removed rather than left as decoration.

The same honesty applies to **Sentence Pacing**: it breaks genuine run-ons, and it will not manufacture rhythm in prose that is already uniform. Where every sentence lands at 14 to 18 words, the clauses usually share a subject, as in *"The system processes requests and returns results"*, and splitting that means inserting a word you never typed. Varying rhythm there stays a human job, and it is the fastest edit you can make yourself: find your three longest sentences and cut each in half.

Beyond the dials, edit the output. The rules are defaults for the first pass, not constraints on your copy. Nothing re-formats after you type. If a rule is consistently wrong for your writing, open a ticket with a before and after example, since that is the kind of report that actually changes the engine.

**Related:** quickstart-guide, diff-from-grammarly

---

# Spelling, grammar and proofreading: what we check, and what we deliberately do not

> Every draft is proofread alongside the slop check: spelling, homophones, missing apostrophes, subject-verb agreement, wrong verb forms. Rule-based, so no model ever sees your text, and proofreading never affects your slop score.

*Category: Quickstart & Formatting · Article ID: grammar-and-proofreading · Updated: 2026-08-23*

---

## Two checks, one pass

Every draft gets read twice, for two different questions:

* **Slop detection** asks *did a machine write this?*
* **Proofreading** asks *is this correct?*

You get both, and they are reported separately. That separation is deliberate. See the bottom of this page for why mixing them would give you a worse answer.

### What the proofreader catches

| Category | Example | Correction |
|---|---|---|
| Missing apostrophes | "we dont ship on Fridays" | don't |
| their / they're / there | "their going to loose there customers" | they're · lose · their |
| your / you're | "your welcome" | you're |
| its / it's | "its a big deal" | it's |
| then / than | "better then the old one" | than |
| "of" after a modal | "I should of known" | should have |
| Wrong verb form | "the team have went" | have gone |
| Past tense without an auxiliary | "we seen the numbers" | we saw |
| Subject-verb agreement | "each of the reports were sent" · "it don't work" | was · doesn't |
| Repeated words | "the the report" | the |
| a / an | "a apple" · "an house" | an apple · a house |
| Spacing and punctuation | "held , then" · "wait!!!" | held, then · wait! |
| Misspellings | "I recieve alot of seperate reports" | receive · a lot · separate |

Corrections are applied when you de-slop, and shown individually in the extension so you can take them one at a time.

### How the spell-check avoids arguing with you

A spell-checker lives or dies on what it stays quiet about, so this one is built around the silences:

* **British and American both count.** *Colour*, *organise*, *centre*, *defence* and *travelling* are correct here. A US-only dictionary reports five errors in that sentence.
* **Modern words are in.** The standard dictionaries predate *roadmap*, *onboarding*, *ecommerce*, *backlink*, *webhook* and *frontend*. We add them, because they are what you actually write.
* **Names, code and links are skipped.** Anything capitalised mid-sentence, in backticks, in a URL or file path, in `camelCase`, ALL CAPS, or containing a digit is left alone.
* **Your dictionary wins.** A word you add is never questioned again, on any device.

Two levels of confidence, and only one of them is ever applied for you. Common misspellings with a single sane correction (*recieve*, *definately*, *seperate*) are fixed automatically. Anything else is flagged with suggestions and left for you to choose, because *teh* is one letter away from *ten* and *the*, and only you know which you meant.

### What we deliberately do not do

* **Plagiarism and citations.** That needs an index of the web to compare your draft against. We do not have one.
* **Comma placement.** Genuinely ambiguous, and more style than rule.
* **Passive voice.** Not an error, and the advice is usually wrong.

We would rather be quiet than confidently wrong. A false grammar flag tells you a correct sentence is broken, and two of those cost more trust than ten missed typos.

### No model reads your writing

The proofreader is rules, not a language model. Same input, same output, every time, and nothing is sent anywhere. That matters more here than it sounds: a tool whose whole job is removing the fingerprints of a language model should not be sending your draft to one.

### Why grammar does not change your slop score

This is the part that surprises people. **Flawless grammar is itself a weak signal of AI writing.** Human drafts have typos; generated text usually does not.

So a draft with three apostrophe mistakes is *more* likely to be human, not less. Folding grammar into the slop score would punish exactly the thing that reads as real. You get two numbers because they are two different questions, and a good draft can legitimately score zero on one and not the other.

**Related:** slop-score-explained, diff-from-grammarly, quickstart-guide

---

# What the slop score means, and why yours might be 0

> The score runs 0 to 100 and combines flag weight with slop density, so it is proportional to length. Here are the four grade bands and what each detector penalises.

*Category: Scoring & API · Article ID: slop-score-explained · Updated: 2026-08-23*

---

## The bands

| Score | Grade shown |
|---|---|
| 0 to 15 | No AI clichés found |
| 16 to 40 | Light AI Patterns |
| 41 to 75 | Moderate AI Tone Detected |
| 76 to 100 | Heavy AI Slop Detected |

### How the number is built

Every term in the 722-word index carries a **reliability tier**, because the evidence is not all equally strong:

| Tier | Weight | What it covers | Example |
|---|---|---|---|
| 1: conclusive | 35 | Chat-artifact leakage. On its own, proof of AI output. | "As an AI language model" |
| 2: strong | 20 | Phrases with measured post-LLM frequency spikes, AI-signature fiction names | "vibrant tapestry", *Elara* |
| 3: cluster | 10 | Multi-word formulas: puffery, hedges, engagement bait | "stands as a testament to" |
| 4: weak alone | 2 | Single over-produced words | *delve*, *robust*, *many* |

Those penalties are combined with **density**, flagged terms as a share of total words, so the score is proportional to length rather than a raw tally. Three clichés in a 60-word post score far higher than the same three in a 2,000-word article. It is the concentration that reads as machine-written.

### Why single words rarely move your score

Tier-4 terms are ordinary English. *Many*, *significant* and *robust* are not mistakes. They are only evidence when they are **over-produced**. So they score nothing at all unless the text trips a cluster gate: at least 3 distinct tier-4 terms **and** a tier-4 density above 1.5% of total words. Below that they are ignored entirely rather than nudging you toward a false accusation.

When tier-4 terms do count, the result carries caveats naming the known false-positive classes: non-native English writers, legal and scientific boilerplate, and heavily-structured writers all trip these markers legitimately.

### Rhythm is scored separately

Burstiness is sentence-length **standard deviation divided by mean**. Human prose sits around 0.6 to 1.2; LLM output collapses to 0.2 to 0.4. Below 0.40 the text is flagged as metronomic regardless of vocabulary. This is what catches an article whose words are all fine but whose sentences are all the same length.

### Everything that actually runs

The panel in the app shows five headline numbers, which undersells it. Five statistics out of roughly 780 rules is a summary, not the whole check. Here is the complete list.

**Vocabulary: 722 terms, four tiers.** 28 conclusive, 38 strong, 265 cluster, 391 weak-alone. Graded as above, so one *robust* in a technical sentence is not treated like *a symphony of innovation*.

**Sentence patterns: 27 rules.** This is the structural half, and it catches what no word list can:

| | |
|---|---|
| Negative parallelism | "It is not just X, it is Y" |
| Apophasis countdown | "Not better charts. Not more data." |
| Tricolon autopilot | "what happened, why it happened, and what to do next" |
| Participial significance tail | "..., marking a shift in how teams work" |
| Pseudo-profound closer | "That is really the whole shift." |
| Question-fragment pivot | "The result? Chaos." |
| Grand-scene opener | "In today's fast-paced world..." |
| Signposted recap | "In conclusion, to sum up..." |
| Clipped one-line cadence | one-sentence paragraphs, stacked |

Plus: not-only-but-also, stop-X-start-Y, false ranges, listicle-in-a-trench-coat, wh-cleft delay, elevated copula dodge, significance inflation, hedge stacking, both-sides non-answers, vague attribution, false exclusivity, invented concept labels, imagine/picture-this hooks, challenges-and-prospects templates, mechanical anaphora, inanimate agency, elegant variation and colon-hinged titles.

**Formatting and behaviour: 22 checks.** Pasted assistant preambles ("Here is the article you requested:") and sign-offs ("I hope this helps!"), chat-artifact leakage, markdown leaking into plain text, hidden Unicode, bold-phrase-colon bullets, excessive boldface, listicle-ification, excessive sectioning, emoji used as structure, horizontal-rule confetti, auto-appended recap boxes, uniform paragraph blocks, Title Case headings, curly quotes in plain text, unfilled placeholders, AI tool URL fingerprints, reader flattery, reflexive disclaimers, internal duplication, press-release tone, and two absence-based checks: no first-hand experience, no concrete specifics.

**Statistics.** Burstiness, mean sentence length, sentence-length variance, em-dash density per 1,000 words, type-token ratio, specificity density, hedge density and decorative emoji count.

**Editing reports**, also separate, and about *your* habits rather than a model's. Sticky sentences (more connecting words than content), echoes (a word repeated close to itself, with your subject nouns excluded), sentences opening the same way three times in a row, words you lean on in this draft, and a sentence-length chart. A hand-written draft can score 0% slop, read as "Very easy", and still show five findings here. None of it is evidence a machine wrote it, all of it is worth a second pass.

**Readability**, reported separately and never counted against your slop score. Flesch Reading Ease and Flesch-Kincaid grade, the same two numbers Word and Yoast report, so they mean the same thing here, plus the share of three-syllable words and a count of sentences over 25 words. It is a measurement, not a target: a post for engineers legitimately reads at grade 13, and the same score on a landing page for small-business owners is a problem. Only you know which you are writing.

**Spelling and grammar.** 25 grammar rules plus a 49,000-word dictionary accepting both US and British spellings. Reported on its own axis. See [Spelling, grammar and proofreading](/help?article=grammar-and-proofreading) for why it never touches the slop score.

### Why an obviously AI-written article can still score low

Worth understanding before you trust a low score.

Every rule above is deliberately guarded to stay quiet when it is not sure, because a false accusation costs more trust than a miss. Tier-4 words need a cluster before they count at all. Structural rules check genre first, so reference documentation and procedural writing are not punished for being plain. Quoted and cited text is demoted rather than flagged.

The consequence is real: writing that is careful, specific and varied in rhythm can be model-written and score low, because at that point it no longer carries the habits we measure.

> **A low score means no known pattern fired. It does not mean the writing is human.** It means there is nothing left for us to fix. Read it yourself before you ship it.

### Why quoting a cliché flags it

The scorer matches text, not intent. An article *about* the phrase "delve into the rich tapestry" gets penalised for containing it. That is a known false positive, and it is the right trade. The alternative is a scorer that can be talked out of a match.

### Reading the flags

Each flag returns the matched text, its category, the reason, the weight, and the character offsets in your draft, so the interface can highlight it in place.

**Related:** why-not-zero-after-cleaning, diff-from-grammarly, api-quickstart

---

# Why the cleaned draft is not 0%

> A cleaned draft that still reads 15 or 20% is not the tool giving up. What is left is what could not be changed without inventing a fact, and those are decisions only you can make.

*Category: Scoring & API · Article ID: why-not-zero-after-cleaning · Updated: 2026-08-23*

---

## The short version

Everything we could fix **without changing what you meant** is already fixed. What is left needs a decision only you can make.

That boundary is deliberate, and it is the same one that protects your numbers, names and quotes.

### A worked example

A 100% draft cleaned down to 21%. Here is what stayed, and why.

> ...opening large value for **stakeholders** worldwide. As we start this exciting **journey**, we invite industry leaders to examine our complete **ecosystem**...

| Left behind | Why we stopped |
|---|---|
| *stakeholders* | Investors? Customers? Your team? Regulators? Each is a different claim. Picking one for you would change what the sentence says. |
| *journey* | Sometimes filler, sometimes exactly right: "customer journey" is a real term. |
| *ecosystem* | Legitimate in a technical context, puffery in a marketing one. Only you know which this is. |
| Monotonous rhythm | Varying sentence length means splitting and merging sentences. That rewrites your argument, not your wording. |

Every one of those is offered in the buzzword list with alternatives. Click a word and choose. What we will not do is choose for you.

### The rule behind it

> We stop wherever a fix would mean inventing a fact.

This is the same rule that makes the rest of the tool safe to run on client work. It is why a de-slop never alters a metric, a product name, a person's name, a quotation, a URL or a line of code. A spinner that swaps synonyms everywhere will get you a lower number and a draft that says something you did not mean.

If a rewrite ever does change one of your facts, that is a bug. Send us the draft.

### What a residual score is telling you

* **Under 15%**: done. The remainder is judgement calls you may well decide to keep.
* **15 to 30%**: a few context-dependent words and probably flat rhythm. Ten minutes of your own editing finishes it.
* **Above 30% after cleaning**: unusual. Normally it means the draft is heavy on structural patterns that need real rewriting, or it is short enough that a couple of flags dominate the density. Try pasting more of it.

### Fixing the rhythm yourself

The one thing we deliberately will not automate. It is also the fastest to fix by hand:

1. Find your three longest sentences.
2. Cut each one in half at the natural join.
3. Leave one of the halves very short. Four or five words.

That alone usually moves burstiness from the 0.30 range into the 0.60s, which is the single largest structural difference between edited human prose and an unedited model draft.

**Related:** slop-score-explained, diff-from-grammarly, quickstart-guide

---

# Using the HTTP API: de-slop and analyse from your own code

> Two endpoints. POST /api/v1/deslop rewrites and spends a credit, POST /api/v1/analyze scores. Both are unlimited with your key; without one, analyse allows five drafts a day. Your key is in Settings.

*Category: Scoring & API · Article ID: api-quickstart · Updated: 2026-08-23*

---

## Getting a key

Your key lives in [Settings & Billing](/settings) under **Developer API Keys**. It looks like `removeaislop_live_…`. Send it as a bearer token. The usage counter keys off it, so calls are attributed to your plan rather than to the IP address they came from.

### Rewrite a draft

```bash
curl -X POST https://removeaislop.com/api/v1/deslop \
  -H "Authorization: Bearer removeaislop_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "In todays fast-paced digital landscape, we must delve into the tapestry of growth.",
    "tone": "professional",
    "format": "article"
  }'
```

| Field | Default | Notes |
|---|---|---|
| `text` | required | The draft. A non-string or empty value returns HTTP 400. |
| `tone` | `builder` | Any of the 12 persona ids, such as `bootstrapper`, `thoughtLeader`, `contrarian`, `engineer`. |
| `format` | `linkedin` | `linkedin`, `twitter`, `reddit`, `blog`. |
| `customVoice` | empty | The measured voice in use, as JSON from the Voice Cloner. Empty when a named voice is in use. |
| `voices` | `[]` | Every measured voice kept on the account, one per name, up to ten. |
| `clients` | `[]` | Agency: client workspaces, each a name with tone, format, voiceName, tuning and house style replacements. Up to 25. |
| `brandName` | empty | Agency: the name printed on a client report. |

The response carries `cleanedText` plus `beforeScore`, `afterScore`, `slopReduction`, `flagsRemoved`, `remainingCredits` and `provider`.

### Score without spending a credit

`POST /api/v1/analyze` takes the same `text` field and returns the score, grade, flags and stats. It does not rewrite. Without a key it allows five distinct drafts a day; send your key and it is unlimited, which is what makes it usable for a linting step in CI or an editor plugin.

### Errors worth handling

| Status | Meaning |
|---|---|
| 400 | `text` was missing or not a string |
| 429 | Daily limit reached. The body sets `limitReached: true` |
| 500 | The rewrite failed; the message is in `error` |

### Batching

For more than a handful of drafts, use `POST /api/v1/bulk` with an `items` array rather than looping this endpoint. See [the bulk CSV guide](/help).

**Related:** free-tier-limits, slop-score-explained, bulk-csv-guide

---

# Installing the Chrome extension

> Load the unpacked extension from apps/extension in any Chromium browser. It adds a live slop badge to the post box on LinkedIn, X, Substack, Medium, Typefully, Taplio, ChatGPT and Claude.

*Category: Chrome Extension · Article ID: chrome-extension-install · Updated: 2026-08-23*

---

## Install

1. Open `chrome://extensions/` in Chrome, Edge, Brave or another Chromium browser.
2. Turn on **Developer mode**, top right.
3. Click **Load unpacked**.
4. Select the `apps/extension` folder.
5. Open one of the supported sites and click into the post box. A floating badge appears in the bottom-right corner of the editor.

### Where the badge appears

The content script runs on LinkedIn, X (and twitter.com), Substack, Medium, Typefully, Taplio, ChatGPT and Claude. It attaches to standard editors: `contenteditable` regions, Quill, Draft.js and common post textareas. That covers the main composer on each of those sites.

### The badge colours

| Colour | Score | Meaning |
|---|---|---|
| Green | under 25 | Reads as human |
| Amber | 25 to 59 | Some AI patterns |
| Red | 60 or above | Heavy AI patterns |

Scoring happens as you type and never spends a credit. Only pressing the fix button does.

### The backend it talks to

The extension calls `http://localhost:3000` by default, which is the dev server address. If that host is unreachable it **falls back to the local pattern engine bundled in the extension** rather than failing. You still get scoring and a rewrite, just without the server-side model pass. Point it at your deployed instance in the extension options if you are not running locally.

**Related:** chrome-extension-troubleshooting, billing-seats-and-devices

---

# The badge is not showing up on the post box

> Almost always one of four causes: the tab was open before you installed, the site is not in the supported list, the editor is a custom widget the content script cannot see, or your device slots are full.

*Category: Chrome Extension · Article ID: chrome-extension-troubleshooting · Updated: 2026-08-23*

---

## Work through these in order

### 1. The tab predates the install

Content scripts only inject into pages loaded after the extension was enabled. **Reload the tab.** This is the cause perhaps four times in five, and it also applies after you update or reload the unpacked extension.

### 2. The site is not one we run on

The badge appears only on LinkedIn, X and twitter.com, Substack, Medium, Typefully, Taplio, ChatGPT and Claude. On anything else, nothing injects and there is no error. That is expected, not a fault. Paste into [Pro Studio](/dashboard) instead.

### 3. The editor is not one we can attach to

We attach to `contenteditable` regions, Quill, Draft.js and common post textareas. A few in-page composers (some newsletter embeds and comment widgets) use a custom element or a cross-origin iframe that a content script cannot reach into. If the badge shows on the main composer but not a specific box, this is why. Send us the URL and we will look at the selector.

### 4. Your device slots are full

Free allows 1 browser activation, Creator 3 and Agency 15. Past the limit, new browsers stop activating. Revoke a device you no longer use under **Seat & Browser Activations** in [Settings](/settings).

### Still nothing?

Open the page console and look for `Backend API unreachable`. That message means the extension could not reach its API host and quietly switched to the bundled local engine. Scoring still works, so it is not the cause of a missing badge, but it does explain a rewrite that comes back weaker than the web app's.

If none of these fit, open a ticket with the site URL, your browser and version, and anything logged in the console.

**Related:** chrome-extension-install, billing-seats-and-devices

---

# Connecting RemoveAISlop to Claude Desktop and Cursor over MCP

> Add one entry to your MCP config and restart. You get three tools: analyze_slop, deslop_post and get_banned_vocabulary.

*Category: Claude & Cursor MCP · Article ID: mcp-claude-setup · Updated: 2026-08-23*

---

## Claude Desktop

1. Open your config file:
   * **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
   * **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
2. Add the server entry, using an **absolute path** to the repo. MCP servers do not inherit a working directory, so a relative path fails silently:

```json
{
  "mcpServers": {
    "removeaislop": {
      "command": "node",
      "args": ["/absolute/path/to/repo/packages/mcp-server/bin/mcp.js"]
    }
  }
}
```

3. Restart Claude Desktop fully. Quit it, do not just close the window.

On Windows, write the path with either forward slashes or doubled backslashes. A single backslash inside a JSON string is an escape character and will break the file.

## Cursor

Same entry, in `.cursor/mcp.json` in your project or `~/.cursor/mcp.json` for every project. Reload the window afterwards.

## The three tools you get

| Tool | What it does | Spends a credit |
|---|---|---|
| `analyze_slop` | Scores text 0 to 100 and returns the flags behind the score and the burstiness reading | No |
| `deslop_post` | Rewrites a draft. Takes `text`, optional `tone` (default `professional`) and `format` (default `article`) | Yes |
| `get_banned_vocabulary` | Returns the full list of flagged words, phrases and structural patterns | No |

Because `analyze_slop` and `get_banned_vocabulary` are free, a useful pattern is to have the assistant score its own draft and consult the vocabulary list before it writes, rather than rewriting afterwards.

## If the tools do not appear

* Run the command by hand first: `node /absolute/path/to/repo/packages/mcp-server/bin/mcp.js`. It should start and wait on stdin. Anything else (a module error, a bad path) is the real problem, and the client will not show you it.
* Confirm `node` resolves for a GUI app. Launcher-installed Node sometimes is not on the PATH that Claude Desktop inherits; use the absolute path to the binary if so.
* Check the JSON parses. A trailing comma silently disables the whole config.

**Related:** api-quickstart, slop-score-explained

---

# How seats and browser activations work

> A seat is a person; an activation is a browser that person is signed in on. Creator is 1 seat across 3 browsers, Agency is 5 seats across 15.

*Category: Billing & Seats · Article ID: billing-seats-and-devices · Updated: 2026-08-23*

---

## Seats versus activations

They are different things, and mixing them up is the usual reason a plan looks wrong:

* A **seat** is a person with their own login.
* An **activation** is one browser on one machine where that person is signed in.

| Plan | Price | Seats | Browser activations | Voice library |
|---|---|---|---|---|
| Free | n/a | 1 | 1 | Personal |
| Creator | $9.99/mo | 1 | 3 | Personal |
| Agency | $29/mo | 5 | 15 | Shared across the team |

Three activations covers the normal case of a work desktop, a laptop and a home machine. They can all be active at once. This is not a one-at-a-time licence.

### Managing devices

**Seat & Browser Activations** in [Settings & Billing](/settings) lists every active browser. Revoke one to free the slot immediately; that browser's extension stops working on its next request.

### When to revoke

* You have hit the limit and a new browser will not activate.
* You used a machine that is not yours any more.
* A device you do not recognise is listed: revoke it, then change your password.

### Agency specifics

The 5 seats are independent logins, not shared credentials. The shared voice library means a persona trained by one team member is available to the rest, which is the main reason agencies take the plan over several Creator subscriptions.

**Related:** free-tier-limits, chrome-extension-troubleshooting, vat-invoices

---

# Downloading invoices and adding a VAT or company tax ID

> Invoices are self-serve under Invoice History in Settings. Adding a VAT number is still a manual step. Open a billing ticket and we will reissue.

*Category: Billing & Seats · Article ID: vat-invoices · Updated: 2026-08-23*

---

## Downloading an invoice

1. Go to [Settings & Billing](/settings).
2. Scroll to **Invoice History**.
3. Click any invoice date to open and download the receipt.

Every charge appears there, including the first one, and receipts stay available after you cancel.

## Adding a VAT or company tax ID

Being straight with you: this is not self-serve yet. Open a ticket with the category **Billing & Subscriptions** and include:

* the email address on the account
* your company's legal name and billing address
* the VAT or tax ID, with its country prefix

We reissue the affected invoices with those details on them. Send it before you file the expense rather than after. A reissued invoice is simpler than a corrected filing.

Self-serve tax details are on the roadmap. Until they ship, this page would be lying if it told you the field existed.

**Related:** billing-seats-and-devices, refund-policy

---

# Batch de-slopping a CSV of drafts

> Upload a CSV with a text or content column and get back every row rewritten, with before and after scores. Free accounts are capped at 5 rows per run.

*Category: Bulk CSV · Article ID: bulk-csv-guide · Updated: 2026-08-23*

---

## Preparing the file

One draft per row. The importer looks for a column named `text` or `content`; if neither exists it treats the first column as the draft.

Two optional columns give you per-row control, which is the reason to use bulk rather than the editor:

| Column | Effect |
|---|---|
| `tone` | Persona for that row, overriding the batch default |
| `format` | Target format for that row, overriding the batch default |

So a single file can send founder-voice LinkedIn posts and exec-voice blog intros through in one run.

## Running the batch

1. Click **Bulk CSV** in the top navigation or from Pro Studio.
2. Drag the file in and set the default tone and format for rows that do not specify their own.
3. Press **Run Batch De-Slop**. Rows process in order, and empty rows are skipped rather than counted.
4. Press **Download Cleaned CSV**.

## What comes back

Each row returns the original text, the cleaned text, the tone and format used, `beforeScore`, `afterScore` and `slopReduction`. Keeping the original alongside the rewrite is deliberate. It makes the batch reviewable, and you should review it before scheduling any of it.

## Limits and cost

* **Free accounts are capped at 5 posts per run.** Over that, the whole request is rejected with HTTP 429 and `limitReached: true`, so nothing partially processes.
* Each row that is rewritten spends one credit.
* Large files run row by row and take roughly as long as the sum of the individual rewrites. Leave the tab open.

## Feeding a scheduler

The output is standard RFC-4180 CSV with quoted fields, so it imports into Buffer, Hootsuite or Typefully directly. If your scheduler expects one specific column, delete the rest after downloading. We would rather return the scores and let you drop them than hide the data.

For drafts already in your own system, skip the CSV round trip and call `POST /api/v1/bulk` with an `items` array. See [the API guide](/help).

**Related:** free-tier-limits, api-quickstart

---

# Training the Voice Cloner on your own writing

> Around 300 words of your own writing is enough. Give it both a short social post and a longer excerpt, and never feed it anything AI helped you write.

*Category: Voice Cloner · Article ID: voice-cloner-best-practices · Updated: 2026-08-23*

---

## What the cloner reads

From your samples it extracts four things: your average sentence length and how much it varies, the vocabulary you actually reach for, your formatting habits, and how you open and close a piece. About **300 words** is enough for all four. More is not better. It averages your voice out.

## Getting a good sample

1. **Use posts that landed.** Pick 2 or 3 that got real replies, not the ones you liked writing most. Engagement is a rough signal, but it beats your own taste here.
2. **Nothing AI-assisted.** A sample that was itself cleaned up by ChatGPT teaches the engine the cadence you are trying to escape. This is the single most common way people get a disappointing persona.
3. **Fill both tabs.** The **Social** tab teaches hook pacing and line breaks; the **Article** tab teaches how you carry a paragraph and transition between ideas. A persona trained on social posts alone writes choppy long-form.
4. **Keep your quirks in.** Lowercase openings, a sign-off you always use, a habit of one-word paragraphs. These are the parts that make output sound like you rather than like a category.

## Reading the result

After training you get an analysis of what it found: average words per sentence, rhythm variance and the vocabulary markers it picked up. If the numbers do not look like you, say a 24-word average when you write in short bursts, then the samples are the problem, not the engine. Swap them and retrain.

## When to retrain

When your writing genuinely changes: a new job, a new audience, a new subject. Otherwise leave it. A persona does not decay.

Samples are used to build the persona for your session and are not added to any shared or public training set. See [what happens to the text you paste in](/help).

**Related:** quickstart-guide, privacy-guarantee