When I’m not writing C code on a keyboard, I’m usually playing C chords on a keyboard. As a software engineer who is also a musician, Reverb.com is one of my favorite places to scroll for music gear. Lately though, I have found myself looking at the platform a little differently. I thought it was just me, until I recently watched a video on YouTube about how serious the problem had become:
This got me thinking about why this is such an interesting case study for engineers building systems at scale. And this is not just a Reverb problem. We see the same pattern on Facebook Marketplace, OfferUp, and other online marketplaces too.
Scams on these platforms are nothing new. But what has changed is how much smarter the scammers have become. It used to be easier to spot fake listings and shut them down. Now they have found loopholes, adapted to existing safeguards, and learned how to make fraudulent listings look more convincing. That is what makes this problem so interesting from an engineering point of view. Fighting scammers is a constant cat-and-mouse game. And in a time when AI is becoming part of almost every serious technical conversation, it makes sense to ask how we can use it to our advantage here too.
In the video, he broke down several of the methods scammers are using, and I think that part matters because it gives software engineers a clearer sense of what they are actually designing against.
He talked about how scammers reuse photos from legitimate listings. Instead of using stock photos or faking the gear themselves, scammers are lifting high quality photos and descriptions from legitimate, older listings, then copying and pasting the original descriptions, including highly specific nuances about the gear, making the fraudulent listing look entirely authentic.
As I was watching the video and hearing him explain that, the first thing that came to mind was image hashing. If a seller uploads photos, the platform could hash those images and compare them against a database of previously sold items. If there is an exact match, or the same file shows up again in a suspicious context, the listing could be blocked or at least flagged right away. But once you think about how easily someone could get around that by screenshotting, cropping, resizing, or slightly editing the image, this starts to feel like a perfect use case for CNNs. Instead of relying on the file being identical, CNNs can look at the actual visual features of the image and still catch likely duplicates even after small changes.
What makes it even crazier is the volume. It is not just fake images and copied descriptions here and there, they upload so many listings that the whole platform gets flooded with fake postings. And that is where legitimate sellers end up suffering too, because now a real listing can look fake just because of the environment around it. And that is where it gets tricky. Some real shops genuinely do post a lot of gear. So how do you tell the difference? When is it normal seller activity, and when is it a signal that something is off?
We could start with something basic like rate limiting to catch and slow down accounts that suddenly start mass-uploading listings. But that only takes you so far. Some legitimate sellers really do post a large number of items. Some businesses upload inventory in batches. Some accounts may look unusual without actually being malicious. That is where things get tricky. Once you lean too heavily on hard-coded rules, you run into the same software engineering problem my AI professor talks about: rule based systems need a corresponding rule for every possible situation. In the real world, that starts to fall apart pretty quickly.
This is where we could introduce machine learning techniques. More specifically, this feels like a good use case for anomaly detection. Instead of hard-coding every possible suspicious pattern, the platform could learn what normal seller behavior looks like over time and then flag accounts whose behavior sharply breaks from that baseline. That way, engineers are not trying to write a rule for every edge case. The model is learning from real marketplace behavior and spotting what looks abnormal.
The reason scammers upload so many listings at once is because they know the reporting system gets overwhelmed. “But how?” you may ask. Trogley explains in his video that the platform’s manual reporting system is flawed. When a user spots a fake listing and reports it, the support staff has to investigate the claim. However, the system is flawed because a single report is rarely enough to get a listing pulled down. The staff typically requires “three or four good reports per listing” before they actually take action and remove the fraudulent post. Reverb also does not have 24/7 active moderation staff policing the site, so fraudulent listings are usually only removed when somebody gets back in the office.
By understanding the limits of the human support staff, scammers have perfected their strategy. They know that if they upload 400 fake pieces of gear at 7:00 PM, there is no staff online to investigate them. Furthermore, they know it is practically impossible for the well-intentioned community to manually find and report every single one of those 400 listings three or four times each before the staff returns to the office the next morning. This guarantees that their fake listings will stay live on the site for at least 12 to 14 hours, giving them plenty of time to trick an unsuspecting buyer.
Because this problem is layered, the response has to be layered too. One defense cannot hold against a loophole like this. So instead of treating reporting as a simple numbers game, the platform should treat it as part of a larger fraud detection system.
Part 1: We could consider using a supervised machine learning classifier that treats a single user report as just one feature among many. If one user reports a listing, the model can instantly weigh that report against other data points (like account age, unusual price conversions, and urgency cues in the listing text). If the model calculates a high probability of fraud, it can pull the listing down immediately rather than waiting for an arbitrary quota of human reports.
Part 2: AI agents equipped with Model Context Protocol could be deployed to act as automated first responders. This helps with the already huge workload the human staff has to deal with, as well as helps cover outside office hours. When a buyer reports a listing, the agent could be triggered to immediately investigate the claim without waiting for human staff to return to the office. For example, the agent could automatically run the reported listing’s photos through a reverse image search to see if they were stolen from older sales. If a match is found, the agent executes the action to freeze the account.
Part 3: Since scammers rely on flooding the platform after 6:00 p.m. when moderation staff is absent, We can adjust the agents’ evaluation metrics to prioritize recall during these hours. By tuning the system for high recall at night, a single user report could be enough to automatically hide a listing until human staff can verify it the next day, ensuring the platform remains safe.
From a software engineering point of view, this comes down to dependability. If buyers cannot trust what they are seeing, the platform starts to break long before it actually goes offline. A marketplace can still be up and full of listings, and still fail at the thing that matters most if users no longer trust it. If a marketplace cannot reliably protect buyers from abuse, then availability and features do not mean much, because trust is already slipping. And once trust slips, future use slips with it.
At the same time, this is also a good reminder that engineers still have to think like engineers. AI can help with detection, classification, prioritization, and speed. But it does not remove the need for systems level thinking. If anything, it raises the bar. The real challenge is knowing where AI helps, where human judgment still matters, and how to design the whole system so trust can actually hold under pressure.