Dec 2025 — Jul 2026

In-Chat Abuse Detection System

I helped build a system that detects escrow-payment-evasion abuse in Bungaejangter's in-chat feature using an open-source LLM. It sanctioned 50% more abusive users than the legacy system, driving a shift to secure payment and growing escrow transaction volume — this walks through how it was built.

4.6× Abuse Detection Volume Sanctioned Users +49.5%

Situation

Bungaejangter's secure payment (escrow) system charges sellers a 6% fee on the item price. To avoid this fee, we found a number of sellers sharing personal identifying information — phone numbers, bank accounts — directly in chat. Transactions that bypass secure payment expose buyers to potential fraud, so we had already defined this as abuse and were running detection and sanctions for it. But our existing rule-based detection couldn't keep pace with increasingly sophisticated evasion patterns — coded language, images — so the detection logic needed an upgrade. So we introduced an LLM-based detection system that interprets chat context to judge evasion patterns.

Task

  1. Contextual reasoning: Evasion patterns evolve in real time, so instead of a system built on a model trained on static data, we needed an LLM-based system that could interpret context and make a judgment call at inference time.
  2. Precision first: Falsely flagging a normal conversation as abuse causes immediate, direct harm to a good-faith user, while a missed detection can be addressed incrementally later — so the decision was made to prioritize minimizing false positives.
  3. Operational flexibility: We planned to start with hourly batch inference and gradually move to real-time inference once operations stabilized. That meant we needed an event-driven architecture that would work for both batch and real-time inference.

Action

Result

bunjangFootLocker
Active 10 hours ago
Brooks Glycerin GTS 22 Wide (2E) 265mm
Brooks Glycerin GTS 22 Wide (2E) 265mm
₩90,000Check transaction info
Shipping ₩3,500
View product details
11:01 PM
Hello, I'd like to purchase this.
네 판매중입니다
초콜릿 원재료 국민 메신저 아시죠
거기서 거래하면 수수료만큼 빼드려요
제 상점명 검색해서 와주세요
LLM Detection Result
Reason: The seller referenced KakaoTalk indirectly through wordplay, then shared their store name as an identifier for the buyer to search for them there.
Verdict: Abuse
🙂 Type a message
Reconstructed from an actual abuse case.
bunjangFootLocker
Active 10 hours ago
Brooks Glycerin GTS 22 Wide (2E) 265mm
Brooks Glycerin GTS 22 Wide (2E) 265mm
₩90,000Check transaction info
Shipping ₩3,500
View product details
11:01 PM
Hello, I'd like to purchase this.
개 8164마리 키웠고
닭 6761마리 잡았다
무ㅈr 주세요
LLM Detection Result
Reason: The seller appears to have shared identifying information (8164, 6761) encoded as a phone number, split across messages to evade text filters.
Verdict: Abuse
🙂 Type a message
Reconstructed from a different type of actual abuse case. Read together, the digits spell out a phone number — split across messages and disguised as unrelated statements to evade text-based filters.
➡️ 108,164÷6,761
15.998225115
This is an example of a mobile phone number starting with 010 with the leading zero removed, hidden within a calculator screenshot.

This section summarizes how the in-chat abuse detection system — built together with the internal operations team responsible for user sanctions and dispute resolution — performed once it went live.

The legacy system relied on regex matching against a database of banned phrases and an OCR model. This approach couldn't handle new abuse patterns that hadn't already been catalogued. The new system instead detects abuse patterns based on the LLM's judgment, which let it successfully catch patterns it had never seen before — during the parallel run, it detected 4.6× more abuse attempts than the legacy system.

After the gradual rollout began, users the LLM system flagged as abusive were sanctioned automatically under existing operational rules. If a sanctioned user appeals, the operations team reviews the case and decides whether to approve it. We defined this appeal-approval rate as the system's false-positive rate and monitored it closely. Because the daily false-positive rate stayed consistently low, we decided to fully replace the legacy system — this system now runs as the standard pipeline judging abuse across every chat on Bungaejangter.

After full rollout, the number of users sanctioned without a successful appeal increased 49.5% over the legacy system. Later analysis showed that some of these users, in subsequent sales, stopped evading secure payment and switched to escrow instead — and that shift produced a meaningful increase in transaction volume. Transactions that had been happening outside the secure-payment system were pulled back inside it, which we consider a meaningful business outcome.