Matchmaking,
Automated.

Retire your manual cupids. Red Panda is the first fully-automated AI matchmaking system that gives your moderation team their free time back.

🐼
💖 Zero Manual Labor

Blind Swiping UI

Stop forcing staff to read intros by hand. Users navigate their queue using native Discord buttons inside private tickets.

Likes are 100% secret until the feeling is mutual, triggering an instant match ping without any staff intervention.

🎋 Enterprise Safety

AI-Powered Fences

Our backend relies on strict age math and Groq AI parsing. Creeps and NSFW intros are blocked instantly.

Underage users are automatically hard-locked and staff is pinged before the profile ever enters the public pool.

☕ Active Servers

24h Private Cafes

When two people match, the bot generates a temporary private text channel just for them, managing all permissions.

To kill the awkward silence, Cupid’s AI reads both profiles and drops a custom Icebreaker based on shared hobbies!

How to Use Red Panda Matches

A complete walkthrough from setting up your profile to finding your perfect match.

🎫 Step 1: Open Your Dashboard

Head over to your server's matchmaking lobby and click the 💖 Open Matchmaking Dashboard button on the instructions panel. The bot will instantly create a private text channel just for you. This is your personal dashboard—no one else can see it!

📝 Step 2: Create Your Intro

To enter the matchmaking pool, you need to tell the bot about yourself. Copy your server's intro template, fill it out, and paste it into your ticket. Crucially, your template must contain the arrow symbol (`➤`) and the word `AGE` (or `ᴀɢᴇ`) for the bot to recognize it.

➤ AGE: 21
➤ GENDER: Female
➤ LIKES: Video games, hiking, red pandas
...

Our AI Cupid will read your profile to ensure it is safe and appropriate. Once approved, your swiping begins instantly!

💖 Step 3: The Swiping Interface

Once your profile is saved, the bot will display potential matches one by one. You will use the interactive buttons below their profile to navigate:

☕ Step 4: The Private Cafe

If you Express Interest in someone and they like you back, it's a match! The bot will instantly create a "Cafe" channel just for the two of you.

💔 Step 5: Managing Matches & Your Profile

Need to unpair? If you aren't feeling the vibe with a match, just return to the main public lobby and click the 💔 Request Unpair button. This opens a private support thread for staff to safely close your cafe.

Profile Management: Want to check your stats or edit your bio? Use the `/my-profile` command inside your ticket. If you ever want to leave the matchmaking pool entirely, simply click the 🗑️ Delete Dashboard button in your ticket.

Under the Hood

Curious how the magic actually happens? Here is a look at the code powering the Red Panda matching ecosystem.

1. AI Profile Parsing

Instead of forcing users to fill out complicated web forms, we let them type naturally in Discord. When a user submits an intro, we send the raw text to a highly optimized Groq LLM.

The AI extracts their exact age, normalizes their hobbies into clean arrays, and flags any toxic or NSFW content before it ever touches the database.

# Using Groq to parse Discord text into JSON
async def analyze_intro(text):
    prompt = f"Extract age, gender, likes, and dislikes from: {text}"
    response = await client.chat.completions.create(
        model="llama3-8b-8192",
        messages=[{"role": "user", "content": prompt}],
        response_format={"type": "json_object"}
    )
    return json.loads(response.choices[0].message.content)

2. The Strict Match Filter

When you click "Swipe", the bot doesn't just show you random people. It runs a lightning-fast mathematical check using Python Set Theory.

It verifies that your ages are within the safe limit, ensures your genders match each other's preferences, and permanently hides profiles if your "Likes" intersect with their "Dislikes".

# Normalizing arrays to Python Sets for O(1) comparison
my_likes = set(x.lower() for x in me['likes'])
their_dislikes = set(x.lower() for x in target['dislikes'])

# Hard Dealbreaker Check
if my_likes.intersection(their_dislikes):
    continue # Skip this profile instantly

# Require at least one shared hobby
shared = my_likes.intersection(their_likes)
if len(shared) >= 1:
    matches.append(target)

3. Generating the Private Cafe

When a mutual "Right Swipe" happens, the bot takes over server administration. It creates a temporary, locked text channel that only the two users (and staff) can see.

To break the ice, the bot passes those shared hobbies back to the AI to write a completely customized, fun conversation starter.

# Setting locked channel permissions
overwrites = {
    guild.default_role: discord.PermissionOverwrite(read_messages=False),
    user1: discord.PermissionOverwrite(read_messages=True),
    user2: discord.PermissionOverwrite(read_messages=True)
}

# Creating the Cafe
cafe = await category.create_text_channel(
    name=f"☕・cafe-{match_id}",
    overwrites=overwrites
)

await cafe.send(f"You both love {shared_hobby}! {ai_icebreaker}")

Command Glossary

Everything you need to run the matchmaking ecosystem.

Player Commands

/open-ticket Player
Opens a private swiping dashboard. Blocked if the user is currently in a match or already has a ticket open.

/my-profile Player
Shows the user their active profile embed, their Discord account age, and their total Vouches (Green Flags).

/time-left Player
Checks the remaining time on a 24-hour private cafe match.

/request-unpair Player
Opens a private Support Ticket pinging staff to safely dissolve a match.

Staff Commands

/pair @user1 @user2 Staff
Manually pairs two users and instantly generates a Private Cafe and AI Icebreaker for them.

/unpair @user1 @user2 Staff
Instantly deletes a private cafe channel and sends an unpair log to the designated tracking channel.

/investigate @user Staff
Pulls a highly detailed, private dossier on a user, displaying their Watchlist status, Discord account age, current active pair, and raw saved intro.

/watchlist, /watchlist-add & /watchlist-remove Staff
Manage the server's internal watchlist to keep track of suspicious users.

Admin Commands

/setup Admin
The master configuration command. Links 12 different categories, channels, and roles to the bot database so it knows where to build cafes and send logs.

/spawn-community-panel Admin
Drops a permanent UI message containing buttons for users to "Open a Support Ticket" or "Apply for Staff".

Advanced Staff Training Guide

Standard operating procedures for managing the Red Panda matchmaking ecosystem.

📋 Enforcing the Profile Template

To ensure the AI perfectly parses user introductions, your community must follow a strict format. While you can lightly customize the template for your server, you must adhere to these absolute rules:

Here is the standard template you should provide to your server:

➤ ᴀɢᴇ ﹕
➤ ꜱᴇxᴜᴀʟɪᴛʏ﹕
➤ ɢᴇɴᴅᴇʀ﹕
➤ ʟɪᴋᴇꜱ :
➤ ᴅɪꜱʟɪᴋᴇꜱ﹕
➤ ᴛɪᴍᴇᴢᴏɴᴇ﹕
➤ ᴇxᴛʀᴀ﹕

﹌﹌﹌﹌ ʟᴏᴏᴋɪɴɢ ꜰᴏʀ ? ﹌﹌﹌﹌
➤ ꜱᴇxᴜᴀʟɪᴛʏ﹕
➤ ɢᴇɴᴅᴇʀ :
➤ ʟɪᴋᴇꜱ﹕
➤ ᴅɪꜱʟɪᴋᴇꜱ﹕
➤ ᴛɪᴍᴇᴢᴏɴᴇ﹕
➤ ᴇxᴛʀᴀ﹕

🚨 Handling "Underage" Auto-Flags

When a user types an age under 13, the bot's AI instantly catches it. The bot removes their typing permissions, renames their ticket to underage-[name], and pings the `@staff` role in your designated staff channel.

🚩 Handling "Toxicity" Auto-Flags

If the Groq AI detects NSFW content, slurs, or harassment in a user's intro, it blocks the profile from saving, renames the ticket to flagged-[name], and sends a log to your staff channel.

🕵️ Deep Dive Investigations

If a user is reported via the UI "Report" button, or if they are acting suspicious, use the `/investigate @user` command. This will generate a private embed visible only to you.

👁️ Managing the Watchlist & Ticket Bans

The Watchlist is a server-wide memory bank. If a user is being creepy but hasn't broken a strictly bannable rule, put them on the watchlist using `/watchlist-add`.

💔 Processing Unpair Requests

Users who want out of a match but are uncomfortable talking to their partner will click "Request Unpair", automatically opening an unpair-[name] support ticket.

📜 Terms of Service (ToS)

Last Updated: April 10, 2026

By using Red Panda Matches (the "Bot"), you agree to these Terms of Service. If you do not agree, do not use the Bot.

1. Age Requirement

You must be at least 13 years old (or the minimum age of digital consent in your country) to use this Bot. The Bot utilizes AI to estimate age based on user-provided introductions. If you are found to be underage, your profile will be immediately locked, your access will be revoked, and you will be reported to server staff. Falsifying your age is a direct violation of these terms.

2. User Conduct & Safety

You agree to use this Bot respectfully and safely. You may not:

Safety Disclaimer: Red Panda Matches is an automated matchmaking tool. We do not perform background checks on users. You are solely responsible for your interactions with other users. Always practice safe online habits.

3. AI Processing Disclaimer

The Bot utilizes artificial intelligence (AI) to parse your profile introductions and generate icebreakers. By using the Bot, you acknowledge that:

4. Moderation & Termination

The developer of Red Panda Matches and the administrative staff of the Discord servers utilizing the Bot reserve the right to ban users, delete profiles, or restrict access to the Bot at any time, for any reason, without notice.

5. Limitation of Liability

Use this Bot at your own risk. To the maximum extent permitted by law, the developer(s) of Red Panda Matches shall not be held liable for any direct, indirect, incidental, or consequential damages resulting from your use of the Bot, including but not limited to emotional distress, data loss, or harmful interactions with other users.

🔒 Privacy Policy

Last Updated: April 8th, 2026

This Privacy Policy explains how Red Panda Matches collects, uses, and protects your data.

1. Data We Collect

To provide matchmaking services, the Bot collects and stores the following information:

2. How We Use Your Data

Your data is used strictly to operate the Bot's core features:

3. Third-Party Services

We do not sell your data. However, your data is securely processed by the following third-party services to make the Bot function:

4. Data Retention and Deletion

Your data is kept for as long as your profile remains active in the matchmaking pool.

5. Contact

If you have questions about your data, or need to request manual data deletion, please contact the Bot Developer.