Kevin Wan, founder of Xtrades
Case Study · AI Automation & Bots Botify.
Fintech · Trading Community

I built the market-scan and AI-moderation bots behind a $1M/yr trading community.

Four months of automation for Xtrades — a Discord-based trading community that's paid its members $2.5M+ — from a Selenium scan-scraper to a policy-based AI moderator trained on 5,000+ real messages.

Client
XtradesKevin Wan, Founder & CEO
Industry
Fintech
Trading Community
Engagement
Apr – Jul
2025
Core Stack
Python · Selenium
Discord · OpenAI

A Booming Trading Community, Run by Hand

Xtrades — an AI-powered trading community recently valued around $24M — runs one of the more active trading communities on Discord, with thousands of traders sharing setups, calls, and market moves in real time, all day. But two things underneath it were still fully manual, and both capped how far it could scale.

Market scans had to be posted by hand. Every trading day, the community expected fresh watchlists — hot options, high-volume penny stocks, short-squeeze candidates — pulled from a paid screener, formatted, and dropped into the right channels at the right times. Done manually, it was slow, easy to forget, and impossible to keep consistent across multiple servers.

Moderation lived entirely on human moderators. Keeping a fast-moving trading channel on-topic and rule-compliant meant someone was constantly reading and deleting messages — more than 5,000 of them already removed by hand. It didn't scale, and it burned out the team.

"We are seeking a developer to assist with web scraping for automated posts in our Discord bot, and implementing an AI-driven moderation tool… to ensure a safe community environment."

— Kevin Wan, Founder & CEO, Xtrades

The mandate: automate both, run them 24/7, and make the moderation smart enough to trust with a live community.

Xtrades Case Study · BotifyPage 02

Two Bots That Run the Community's Busywork

1

Automated market-scan posting bot

A Python bot logs into the community's paid screener, pulls five custom daily scans, screenshots each one, and builds a clean ticker call-out list — then routes each one into its own Discord channel across multiple servers on a market-timed schedule. It runs 24/7 on a DigitalOcean server, version-controlled on the client's GitHub, so the watchlists show up on time whether anyone's awake or not.

How the scan bot works
🔒
Log in
Paid screener, Elite session
🖥
Selenium
Real browser, beats anti-bot
📸
Capture
5 scans → image + tickers
Schedule
Market-timed slots
💬
Post
Right channel, every server
Runs unattended 24/7 on a cloud server — no human in the loop.
Xtrades Case Study · BotifyPage 03
Delivered watchlist post
A live watchlist auto-posted to the community, complete with ticker call-outs.
Options scan
One of the scans the bot captures and posts daily — pulled live from the screener behind a login.
Xtrades Case Study · BotifyPage 04
2

An AI moderator trained on the community's own rules

Rather than a blunt keyword filter, the moderation bot reads each new message the way a human mod would. Using the client's library of 5,000+ previously-deleted messages as ground truth, it scores every incoming message against a written policy — with a rolling window of recent messages for context — then flags rule-breakers for deletion, issues Discord timeouts, and can be loosened whenever it gets one wrong.

Admins stay in control without touching code: custom Discord commands let them whitelist or blacklist words per server on the fly, so each community can set and tune its own rules in seconds.

Flagged message Compliant message
The moderator in production: a rule-breaking message flagged for deletion with a reason (left) beside a compliant one it lets through (right).
How the AI moderator decides
💬
New message
Posted in channel
📚
Policy + context
Rules + last few messages
🧠
OpenAI classifier
Trained on 5,000+ examples
Decision
In milliseconds
Compliant → message stays
Violation → delete + auto timeout
Admins tune it live with whitelist / blacklist commands — no redeploy needed.
Xtrades Case Study · BotifyPage 05
3

A community-activity ranking bot

A companion bot tracks how many messages each member sends in a given channel and ranks them by activity — surfacing the community's most engaged traders so the team can recognise and reward them.

Three Ways to Build the Moderator — One Right Answer

AI moderation is easy to get wrong: too strict and it deletes good messages and angers real members; too loose and it's useless. So the approach wasn't guessed — it was chosen with the client, weighing three real options on accuracy, cost, and how easily the rules could change later.

Option A

Train a local model

Build and train a model in-house on the deleted-message set, with no external API in the loop.

✗ Weaker accuracy, hard to adjust
Option B

Fine-tune OpenAI

Fine-tune a model on the 5,000+ deleted messages, then call it on every new message.

✗ Costly to retrain as rules shift
Chosen
Option C

Policy-based classifier

Feed a written policy plus recent context to the OpenAI API and let it judge each message against the rules.

✓ Most accurate, rules change anytime

"I believe the 3rd option can achieve more accuracy since we can change the policy as we want."

— Waqass, design notes
Xtrades Case Study · BotifyPage 06

Getting Past the Anti-Bot Wall — and a Mid-Project Reset

The screener didn't want to be scraped. Standard HTTP requests got blocked by its anti-bot defenses, so the data simply wouldn't come out the normal way.

"I did face some issues, like the website implementing security to prevent bots from scraping, but I used Selenium to mimic the browser behaviour. Hence, I can now scrape the info."— Waqass, build notes

The fix was to stop pretending it was a data feed and drive a real, logged-in browser session — full headless-browser emulation via Selenium — so the bot behaves like an actual Elite user, session, login and all.

The harder part wasn't technical. Midway through, with the AI-moderation approach still being researched, the client flagged the pace directly:

"I know you are capable of doing this right… please do not make this a bad experience for me."— Kevin Wan

Instead of getting defensive, the response was to de-risk it for him — offer to return the already-released milestone, and hold all further payments until he was satisfied the work was done. The tension cleared, the moderation bot shipped, and the relationship kept going.

Xtrades Case Study · BotifyPage 07

Shipped, Live, and Rehired

5
Daily Scans Automated
5,000+
Messages Trained On
24/7
Live Uptime
3+
Servers Automated
  • Both systems shipped and ran live in production — the scan bot posting branded watchlists across servers daily, the AI moderator flagging rule-breakers in real time.
  • The client paid a bonus on top of the agreed scope — a rare vote of confidence for a fixed-price build.
  • The engagement continued into ongoing bot maintenance, and the client re-engaged again months later for more work on the same systems.
  • A mid-project pacing conflict was resolved by conversation rather than escalation — and the relationship came out stronger for it.
How it stays live 24/7
🔧
GitHub
Version-controlled on client's repo
DigitalOcean
Always-on cloud server
🤖
Both bots
Scans + moderation
💬
Discord
Live across every server
Xtrades Case Study · BotifyPage 08

A Vote of Confidence, Mid-Build

"

I will compensate you generously… I know you are capable of doing this right.

— Kevin Wan, Founder & CEO, Xtrades

Have a community, a data feed, or a moderation problem that should run itself?

Book a call with Botify →
Xtrades Case Study · BotifyPage 09