DEV Community

Cover image for Reddit Automod Removed Our Comments: A Post-Mortem
Cogumellum
Cogumellum

Posted on AI-assisted

Reddit Automod Removed Our Comments: A Post-Mortem

TL;DR: Two Reddit comments posted by low-karma accounts were removed within 30 minutes, pausing our r/OpenAI and r/LocalLLaMA loops for 7 days. We changed the loop to require karma 100+ and to treat posts as experiments, not brochures.

What happened

On 2026-09-11, the Reddit loop posted a comment on r/OpenAI. The comment ID was p98wxz3. Thirty minutes later, it was no longer visible to the public. The account posting it had karma 4. The removal happened within the hour — either automod or an active moderator. The comment used a checklist format that reads as AI.

On the same day, a comment on r/LocalLLaMA (ID p981es6) vanished under identical conditions: 30 minutes after posting, account karma 4, removed within the hour. r/LocalLLaMA's rules explicitly forbid AI content, and the community has a 'Low Effort Posts' rule.

Both removals were detected by a scout session reading from outside Reddit — the comments were no longer visible to the public. As a result, the loop paused r/OpenAI and r/LocalLLaMA for 7 days. r/LocalLLaMA was taken out for the loop on every account.

Earlier, on 2026-09-10, a brand community r/BEEFAPI was banned after two posts from a 1-day-old account with zero participation. And a second account was taken down after a post titled 'Introduction to' — that post failed all six of our content rules. The benchmark post from 09-09 survived.

karma of the accounts that got removed

Why it happened

The recorded cause for both comment removals is the same: the account had low karma, and the comment format read as AI. The communities have rules against AI content and low-effort posts. The account karma was 4. The removal happened within 30 minutes to an hour — consistent with automod or an active moderator.

For the r/BEEFAPI ban, the cause was a new account (1-day-old) with zero participation creating a brand community. That failed our internal checks D1, D6, D7, and D11.

For the 'Introduction to' post, the cause was pitch density: 35.9% versus 18.5% for the benchmark post that survived. The post failed all six content rules.

These are not platform-wide bans. They are specific community actions. Reddit communities enforce their own rules, and low-karma accounts with AI-looking content are easy targets for automod.

Karma checked before the queue

What we changed

We made four changes to the Reddit loop:

  1. r/OpenAI now waits until an account has karma 100+. The loop will not post from an account below that threshold. This is a direct response to the p98wxz3 removal.

  2. r/LocalLLaMA is out for the loop on every account. The loop will not post there at all. The community's rules forbid AI content, and the removal confirmed enforcement.

  3. Both communities paused for 7 days. The loop will not touch them for a week, giving time to adjust.

  4. Reddit posts are experiments, never brochures. We now measure pitch density. The benchmark post had 18.5% pitch density and survived; the 'Introduction to' post had 35.9% and was removed. We treat each post as a test (test B-077).

We also changed the loop's keywords. Added: model routing, api credits, switch models, openai compatible, multiple providers. Removed: none. The reason: these phrases match developers discussing routing setups, prepaid credits, and OpenAI-compatible gateways — the same audience we target. But the keyword change is about finding relevant threads, not about avoiding removals.

The proof for these changes comes from reddit/comentarios.json (comment visibility series) and plataforma/comunidades.json (community rules). The keyword change is recorded in reddit/palavras.json and reddit/eventos.jsonl.

How the karma-100+ gate works

The karma threshold is enforced before any comment is queued. The loop reads the account's karma from a cached profile snapshot (updated daily). If karma is below 100, the comment is not posted. This is a hard gate, not a warning. The gate applies per community: r/OpenAI requires 100+, while other communities may have different thresholds. The threshold was chosen because the removed comments came from accounts with karma 4. We do not know the exact karma cutoff that automod uses; 100 is our conservative starting point. The gate is logged in reddit/eventos.jsonl with the account ID and the karma value at decision time. If the account's karma drops below 100, the gate blocks posting until it rises again. This prevents a single low-karma account from triggering removals across the loop.

How we measure pitch density

Pitch density is the percentage of sentences in a post that mention the product, a link, or a call to action. We compute it with a simple script: split the post into sentences, count sentences that contain any of the product's keywords (e.g., 'BeefAPI', 'gateway', 'API credits'), and divide by the total number of sentences. The result is a number between 0% and 100%. The benchmark post had 18.5% pitch density and survived; the 'Introduction to' post had 35.9% and was removed. We now cap pitch density at 20% for Reddit posts. If a draft exceeds 20%, it is revised before posting. The measurement is recorded in the post's metadata and reviewed after publishing. This is a heuristic, not a guarantee. But it gives us a concrete number to track and adjust.

Pitch density: what survived

What this does NOT fix

Karma 100+ is not a guarantee. A high-karma account can still be removed if the content reads as AI or violates a rule. The karma threshold reduces one risk factor, not all.

Pausing r/LocalLLaMA for 7 days does not mean it will be safe after 7 days. The rule against AI content remains. The loop may never return there.

The pitch density target (18.5% vs 35.9%) is a heuristic from two data points. It does not prove that 18.5% is safe or that 35.9% is always removed. It is a signal, not a law.

The keyword additions do not prevent removals. They change which threads the loop finds. A thread about 'model routing' can still be in a community that removes AI content.

Finally, this fix is specific to Reddit. Other platforms have different rules and different enforcement. Do not assume the same karma threshold or pitch density applies elsewhere.

Read the post-mortem before you post

When the same fix would be wrong

If your goal is to participate in a community that explicitly allows AI content, requiring karma 100+ may be unnecessary. If your account already has high karma and a history of participation, a 7-day pause may be overkill. If your content is genuinely human-written and community-specific, a low pitch density may not be needed.

The fix assumes the problem is account credibility and content format. If the real problem is that the community simply does not want your product mentioned at all, no karma threshold or pitch density will help. In that case, the right fix is to leave that community alone.

What a reader can check in their own system

If you run any kind of automated posting or commenting, ask these questions:

  • What is the karma of the account you are posting from? Does the community have a minimum?
  • How quickly do you detect removal? We detected within 30 minutes by reading from outside. Can you do the same?
  • What is your pitch density? Count the sentences that mention your product or link versus the total. Is it above 20%?
  • Does your comment format look like a checklist or a template? Would a human write it that way?
  • Have you read the community rules? Do they forbid AI content or low-effort posts?
  • If you were removed, do you know why? Can you replay the post against the rules?
  • Are you pausing after a removal, or continuing to post? A pause gives you time to adjust.
  • Do you have a scout that reads from outside to verify visibility?

These are not claims about your system. They are questions to ask.

The bigger lesson

Automated posting on Reddit is fragile. Communities enforce rules, often automatically. Low-karma accounts and AI-looking content are easy targets. The fixes we applied — karma threshold, community removal, pauses, pitch density — are specific to our situation. They are not universal.

The recorded learnings show that we iterated: we changed the vision role to be unavailable instead of estimated (because it graded images it never received), we re-verify claims after publishing (because the pricebook changed from 20 to 21 models on the same day a post went out), and we measure art clipping on the Y axis (because 7 pieces were approved with text cut mid-word). These are all examples of tightening verification after a failure.

The Reddit removals fit that pattern: we detected the failure, identified the cause (low karma, AI-looking format), and changed the loop. The change is not perfect, but it is recorded and testable.

If you run similar automation, start by measuring. Count your removals. Check your account karma. Read the rules. Then change one thing at a time and verify.

Final note

The incidents described here are from our recorded learnings. They happened on specific dates with specific comment IDs. We changed our loop as a result. The changes are documented with proofs. We are sharing them because other developers running automation may face similar issues. But every community is different. What worked for us may not work for you. Test, measure, and adjust.


Disclosure: I work on BeefAPI.

Top comments (0)