Claude rewrote my resume and I couldn't send it. The polish was perfect; the voice wasn't mine.
So I built this. It strips the AI residue and leaves the rest alone.
Demo · Quick start · Features · Research · Comparison · FAQ · Non-technical guide
| Before (stock AI output) | After /unslop |
|---|---|
| I am writing to express my profound enthusiasm for the Marketing Coordinator position at Acme Corp. With over five years of experience **navigating the dynamic landscape** of digital marketing, I am confident that my **comprehensive skill set and passion for innovation** make me a **robust** candidate. I am particularly drawn to Acme's **cutting-edge** approach, and I would welcome the opportunity to **delve into** how my background aligns with your team's goals. | Five years in digital marketing, most of it in small teams where nobody else writes the landing pages, so I end up doing it. I saw your Marketing Coordinator posting yesterday. The part about running campaigns end-to-end instead of handing them off to an agency is what pulled me in — that's the work I actually like. |
| ### Five modes `subtle` keeps the shape, scrubs the fingerprints. `balanced` is the default. `full` rewrites with opinion. `voice-match` mimics a sample. `anti-detector` does the burstiness and specificity moves that move GPTZero scores. | ### Preservation that actually holds Code blocks, inline code, URLs, headings, YAML frontmatter, tables, blockquotes — byte-identical on the way out. Deterministic mode fails the run if anything drifts. LLM mode gets the same preservation list as an explicit instruction. Also catches the newer tells: curly quotes, knowledge-cutoff disclaimers, vague attributions, title-case headings, repeated `- **Label:**` bullet stacks. | ### Six assistants, one source Claude Code, Cursor, Windsurf, Cline, Gemini CLI, OpenAI Codex. The same skill loads in each one through whichever loading mechanism the platform supports. Single source of truth, synced by CI. |
| ### Real detector feedback Opt-in CLI flag scores text against the TMR detector (99.28 % AUROC on RAID, 125 M RoBERTa), escalates through the mode ladder, prints what it tried. | ### Persistent voice-match Save a numeric profile from a sample of your own writing — sentence-length variance, contraction rate, pronoun ratios. Reuse across sessions. No text samples are stored, so the tool can't learn to flatter you over time. | ### Pairs with Custom Styles Anthropic Custom Styles sets the ceiling at generation; unslop catches residue afterwards. The ICLR 2026 Antislop paper formalizes that split. |
| ### Surprisal-variance reading `--surprisal-variance` returns the DivEye signal — per-token log-probabilities from a local `distilgpt2`. Flat AI prose lands near 0.6–0.9; literary human prose often exceeds 1.5. |
### Reasoning-trace sanitizer
Strip ` |
### Mode gating `--no-structural`, `--no-soul`, and `--no-audit` turn off the newer aggressive passes for highly formal content (legal, compliance). Per-file opt-outs via HTML comments. |