In the age of AI, trusted content matters more than ever. So we made a badge you can install on your website that says a human stands behind your content, along with a button for readers to say otherwise. This can be installed in the footer of your website, to indicate to readers that you stand behind your content. It's open source. Try it today.
This one is real. Flag this page and the report comes to us at hello@soulcraftagency.com. We stand behind what we publish, so hold us to it.
This gets muddled constantly, and the muddle is what makes most anti-slop tools useless. Slop is not a technology. Slop is content nobody stands behind.
A person can write slop by hand: the padded listicle, the SEO page that answers nothing, the press release stretched to fill a word count. And a careful writer can use every model available and publish something worth a reader's time.
The tell was never the tool. It is whether anybody was accountable for what went out. That is what the badge claims, and the button is how a reader tests the claim.
Paste it wherever you want the badge to appear. Reports arrive as email. That is the whole setup.
<!-- Reports land in your inbox --> <script src="https://soulcraftagency.com/notslop/v1.js" data-notslop data-to="you@yoursite.com"></script>
The badge appears where you dropped the script. It reads Not Slop, which is a statement you are making in public about your own page.
Next to it sits a quiet link: seems like slop? A reader who disagrees picks a reason, adds a note, and sends it. No account, no login.
It reaches you, not a ranking system. You read it. If it holds up, you fix the page. A badge nobody can challenge is worth nothing.
Soulcraft never sees them. There is no database on our end, because there is no database.
Simplest path. The reader's mail client opens with everything prefilled. Nothing to host.
data-to="you@site.com"
POSTs clean JSON to any URL you control. Wire it to Slack, a webhook, Airtable, whatever you already use.
data-endpoint="/api/slop"
Configure neither and it runs in demo mode. Reports stay in the reader's browser. Useful for trying it out.
(no attribute)
// What your endpoint receives { "url": "https://yoursite.com/blog/the-page", "title": "The Page Title", "reason": "All padding, no substance", "comment": "Six paragraphs before the actual answer.", "email": "reader@example.com", "ts": "2026-07-31T18:04:11.204Z", "v": "1.0.0" }
All optional. The defaults are the ones we would pick for you.
| Attribute | Default | What it does |
|---|---|---|
data-to | none | Email address that receives reports. Opens the reader's mail client with the report prefilled. |
data-endpoint | none | URL that receives a JSON POST. Takes priority over data-to. Uses sendBeacon, falls back to fetch. |
data-label | Not Slop | The claim on the badge. Try Written by a human or Reviewed by a person. |
data-trigger-label | Seems like slop? | The challenge text next to the claim. |
data-theme | auto | auto, light, or dark. Auto follows the reader's system setting. |
data-position | inline | inline puts it where the script sits. corner pins it bottom-right. |
data-accent | terracotta | Any CSS color, so the badge matches your palette instead of ours. |
Want it somewhere specific? Add data-notslop-mount to any element and the badge renders inside it. For single-page apps, call NotSlop.mount() yourself and append the returned host wherever you like.
In July 2026, LinkedIn added a "seems like AI slop" button to every post. The reports feed classifiers that quietly demote low-quality content in the feed. Inside a closed platform with a ranking algorithm, that works. There are teeth.
Copy it straight onto the open web and it falls apart. A publisher who bolts a complaint box onto their own pages is inviting insults with nothing on the other end. The people who would install it are the people who least need it, and the people who need it never will.
So we turned it around. The claim comes first, which is why a publisher installs it at all. The challenge is what makes the claim mean anything. And the report goes home to the person who can actually fix the page.
A badge nobody can dispute is a sticker. A badge anyone can dispute is a standard.
The dialog carries one line: Not Slop is a free tool from Soulcraft. A reader sees it after they open the panel. That is the entire ask, and the MIT license means you can delete it.
What the widget will never do is put a hidden link on your page. No injected anchors, no invisible markup, no schema written into your document, nothing your visitors cannot see. Widget links are a documented link scheme and search engines discount or penalize them. Building a tool about content accountability that quietly manipulates your page would be the joke writing itself.
If you want to link back on purpose, that is a different thing entirely, and we would love it. Here is a snippet you can put in your footer or colophon.
<!-- Optional. Only if you mean it. --> <p>Slop reporting by <a href="https://soulcraftagency.com/notslop/">Not Slop</a>, a free tool from <a href="https://soulcraftagency.com/">Soulcraft</a>. </p>
No, and that matters. The badge claims a person is accountable for the page, not that no software touched it. We build content systems for a living and we use these tools every day. The line we hold is that a human reads, edits, and signs off on what goes out. Anyone claiming the tool itself is the problem has not looked closely at the slop humans produce unassisted.
Wherever you point them. Email with data-to, your own URL with data-endpoint, or nowhere at all if you configure neither. Soulcraft never receives your reports and there is no account to create. The script makes zero network requests unless you give it an endpoint.
The widget limits each reader to one report per page per day, carries a hidden honeypot field, and throws away anything submitted faster than a person could type. More to the point, reports are private notes to you rather than a public score, so there is nothing to game. No leaderboard means no incentive to attack it.
About 6KB gzipped over the wire, no dependencies, and it renders inside a Shadow DOM. Your CSS cannot reach into it and it cannot leak out into yours. We tested that by throwing * { font-family: Comic Sans MS !important } at it. The source ships unminified on purpose, so you can read every line before you trust it.
Yes, and MIT licensed. Download the file and self-host it if you would rather not depend on us being online. That is not a loophole, it is the intended use.
No. Nothing is injected into your page: no anchors, no markup, no schema, nothing a visitor cannot see. The only credit is one visible line inside the report dialog, and you can delete it under the license. Hidden widget links are a known link scheme that search engines discount anyway, and building that into a tool about content accountability would be absurd.
Because the invitation is the signal. Anyone can write "human-written" in a footer. Very few will put a working complaint button next to it. The button is the proof, and readers can tell the difference.
Soulcraft builds AI search visibility on real authority: structure, original data, named authors, content that earns the click. No fabricated signals, ever.