Home/Blog/AI
// blog · ai

Building AI-powered whitelisting for a Discord bot

June 27, 2026 · by Wax

Whitelisting a serious-roleplay server is a bottleneck. Every applicant writes a wall of text about their character and their understanding of the rules, and a tired admin reads all of it at 1am and rubber-stamps or rejects based on vibes. It doesn’t scale and it isn’t consistent. So I built the reading half into our Discord bot with the Claude API — carefully.

What the AI does — and what it doesn’t

The bot does not approve or deny anyone. That’s the whole design principle. What it does is read: it takes an application, checks it against our actual ruleset, and produces a structured assessment — does this person understand metagaming, do they describe realistic character motivation, are there red flags — plus a short rationale and a suggested tier. A human sees that summary next to the raw application and makes the call in one click.

This is the difference between a chatbot and an agent, and the line I care about: the model informs a decision, a person owns it. For anything with real consequences for a real member, that’s non-negotiable.

Prompt design is the actual product

The quality lives entirely in the system prompt. I give the model the server rules verbatim, a rubric with explicit examples of strong and weak answers, and a strict output format so the bot can parse the result reliably. Asking for structured output — a fixed set of fields rather than free prose — is what makes it dependable enough to render into a Discord embed. If you’ve read my note on using the Claude API in a business, this is that pattern applied: clear system prompt, server-side key, structured response, human at the end.

The safety rails that matter

Three of them. The API key lives server-side in the bot’s environment, never in client code. The model’s output is treated as a recommendation, logged, and always human-reviewed. And the prompt is version-controlled, because “we changed the rubric and approvals got weird” is a real failure mode you want to be able to diff.

Was it worth it?

Review time per application dropped hard, and — more importantly — the assessments got consistent, because the same rubric reads every applicant at 1am and 1pm. That’s the honest use of AI in a product: not replacing the judgment, removing the toil around it. If that’s the kind of integration you want in your own product or community, it’s what I build.