
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.
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."
The mandate: automate both, run them 24/7, and make the moderation smart enough to trust with a live community.
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.
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.
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.
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.
Build and train a model in-house on the deleted-message set, with no external API in the loop.
✗ Weaker accuracy, hard to adjustFine-tune a model on the 5,000+ deleted messages, then call it on every new message.
✗ Costly to retrain as rules shiftFeed 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."
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.
I will compensate you generously… I know you are capable of doing this right.
Have a community, a data feed, or a moderation problem that should run itself?
Book a call with Botify →