LLM-Enhanced Trust and Safety Platform for E-commerce Content Moderation

whatnot · E-commerce · 2023 · source Agentic: no · promotional bias: med · source-backed · extracted with prompt 0.5.6 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: Marketplace trust and safety

Whatnot needed to detect scams, harassment, and other trust-and-safety violations that unfold across conversations rather than as isolated messages.

Constraints:

Architecture

Whatnot upgraded its rule-engine foundation into a Rule Engine++ pattern: user signals such as messaging patterns and account age qualify which cases go to an LLM, conversation history and known scam patterns are passed in a structured prompt, the LLM returns JSON likelihood and explanation fields, and the existing rule engine combines those scalar outputs with account and behavior signals to close, act, or escalate. The broader T&S stack follows gather, evaluate, and enforce phases with Kafka-backed product-access updates after confirmed action.

Diagram confidence: explicit (topology described by the source).

flowchart LR
  Signal_qualifiers["Signal qualifiers"] --> LLM_evaluation_layer["LLM evaluation layer"]
  Conversation_history["Conversation history"] --> LLM_evaluation_layer
  Known_scam_patterns["Known scam patterns"] --> LLM_evaluation_layer
  OCR_attachment_input["OCR attachment input"] --> Conversation_history
  LLM_evaluation_layer --> Centralized_rule_engine["Centralized rule engine"]
  Centralized_rule_engine --> Enforcement_matrix["Enforcement matrix"]
  Enforcement_matrix --> Ops_team["Ops team"]
  Centralized_rule_engine --> Kafka_product_access_updates["Kafka product-access updates"]
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
Centralized rule engine Existing trust-and-safety enforcement backbone for structured signals, heuristics, and policy actions. LLM evaluation layer, Enforcement matrix, Kafka product-access updates
Signal qualifiers Messaging patterns, account age, and related signals that decide when a conversation should be analyzed by an LLM. Conversation history, LLM evaluation layer
Conversation history Direct messages and interactions, including timestamps and sender IDs, used to provide scam context. LLM evaluation layer
Known scam patterns Documented platform scam behaviors embedded in the LLM prompt. LLM evaluation layer
LLM evaluation layer Zero-shot/few-shot model evaluation that returns likelihoods and explanations for scam or policy violations. Signal qualifiers, Conversation history, Centralized rule engine
Enforcement matrix Policy layer that combines LLM outputs and structured signals to recommend close, act, or escalate. Centralized rule engine, Ops team
Ops team Human investigation/action path for escalations and temporary actions. Enforcement matrix
OCR attachment input Additional input path added when scammers use text embedded in images. Conversation history, LLM evaluation layer
Kafka product-access updates Event mechanism for reflecting confirmed enforcement actions in product access. Centralized rule engine

Data flow

The system gathers event data, user data, order history, ML outputs, logs, and conversation histories. Qualifying accounts are sent to the LLM with direct messages, interaction history, and known scam patterns. The LLM returns scam_likelihood and explanation JSON, which is passed with additional signals into the rule engine. The rule engine recommends close, act, or escalate; confirmed actions notify users and update product access through Kafka.

3 supporting quotes
“We use different user signals (messaging patterns, account age) as qualifiers to determine which messages should be analyzed through LLMs.”article, stated
“Provide likelihoods (0-1) of scam, assessment notes in json format which can be consumed by a service”article, stated
“Once the action is confirmed, the user is notified of the violation and the system is updated to reflect product access changes (if any) through Kafka.”article, stated

Why this architecture

Whatnot preserves the rule engine's efficient structured enforcement while adding LLM context understanding where fraud patterns span multiple messages. The LLM produces scalar likelihoods and explanations that fit back into the existing enforcement matrix.

3 supporting quotes
“This hybrid architecture leverages the strengths of both systems: the rule engine's efficiency with structured data and the LLM's ability to understand conversational context and nuance.”summary, stated
“if we look at the entire exchange, the patterns become pretty evident. This is where LLMs have been immensely helpful”article, stated
“The raw data ($previous_ts_actions, $account_age etc.) and LLM insights ($scam_likelihood, $spam_likelihood, etc.) are passed through to our rule engine as scalar values”article, stated

Models used: LLMs · GPT-4 · zero-shot learning LLM predictions · few-shot learning LLM predictions · traditional ML content moderation models · OCR

Scale

Alternatives considered (roads not taken)

Use only the centralized rule engine

Rejected because: Scalar rules could not handle ambiguous conversational context.

“The rule engine operates within the confines of distinct scalar values, rendering it inadequate for navigating ambiguous scenarios and contextual comprehension.”article, stated

Moderate each message in isolation

Rejected because: Individual scam messages can appear benign, while the full exchange reveals the pattern.

“trying to predict the probability of a message being a scam using a single message is pretty difficult and has low precision.”article, stated
“Each message by itself may not be a strong indicator of potential fraud but by taking into account the overall conversation”article, stated

Let the LLM be the enforcement decision maker

Rejected because: Whatnot frames GenAI as a cognitive partner and routes LLM outputs through rule engine logic and human judgment.

“We aim to harness Gen AI’s potential as a cognitive partner (not a decision maker)”article, stated
“act (violation found with high confidence), or escalate (unsure if the violation is detected, needs a human review).”article, stated

Patterns

safety-policy-enforcement (safety)

LLM scam likelihoods and explanations are transformed into rule-engine signals for warnings, suspensions, escalations, and product-access changes.

“Rule engine takes into consideration multiple factors like previous violations, account age, etc. to recommend the action (warn, suspend, etc.).”article, stated
“Once the action is confirmed, the user is notified of the violation and the system is updated to reflect product access changes”article, stated

confidence-thresholding (routing)

The example enforcement rule combines a scam_likelihood threshold with account age, message frequency, and lifetime orders before action.

“scam_likelihood > 0.6 and account_age < X days and message_frequency > Y and lifetime_orders < Z”article, stated

human-in-the-loop-gate (governance)

The platform escalates uncertain cases and passes LLM output to ops for investigation or action.

“notify our ops team and pass along the LLM output (with likelihood and explanation) to investigate/action the user.”article, stated
“This human-in-the-loop approach ensures LLMs serve as thoughtful collaborators”article, stated

Tradeoffs

Augment the rule engine instead of replacing it.

Chose LLM-enhanced Rule Engine++ over A standalone LLM moderation system.

Rationale: The rule engine already handled structured data and enforcement, while LLMs added conversation-level context.

“Whatnot's approach was to augment their existing rule engine with LLM capabilities rather than replacing it entirely.”summary, stated
“By harnessing data and signals from multiple sources, this engine applies data-informed heuristics”article, stated

Use full conversation context for scam detection.

Chose Conversation-level LLM analysis over Single-message scam scoring.

Rationale: Scam intent emerges from the exchange pattern rather than any one message.

“trying to predict the probability of a message being a scam using a single message is pretty difficult and has low precision.”article, stated
“Each message by itself may not be a strong indicator of potential fraud but by taking into account the overall conversation”article, stated

Keep humans in the safety loop.

Chose Cognitive partner with human review/escalation over LLM as final decision maker.

Rationale: Trust and safety enforcement needs judgment, escalation, and confirmed actions rather than raw model decisions.

“Gen AI’s potential as a cognitive partner (not a decision maker), combining AI-driven insights with human judgment”article, stated
“escalate (unsure if the violation is detected, needs a human review).”article, stated

Gotchas (what bit them)

Message-level moderation missed scam trajectories.

Root cause: Fraudsters build trust across multiple benign-looking messages before moving users off-platform.

Resolution: Analyze the full exchange, account signals, attachments, and engagement history with an LLM before enforcement.

“These attempts usually start with an innocuous direct message either inquiring about a product that’s on sale or notifying users that they have won a Giveaway.”article, stated
“if we look at the entire exchange, the patterns become pretty evident.”article, stated

Structured rules could not reason over ambiguous context.

Root cause: The rule engine was built around distinct scalar values.

Resolution: Convert LLM contextual analysis into scalar likelihood and explanation outputs that the rule engine can consume.

“The rule engine operates within the confines of distinct scalar values, rendering it inadequate for navigating ambiguous scenarios and contextual comprehension.”article, stated
“The raw data ($previous_ts_actions, $account_age etc.) and LLM insights ($scam_likelihood, $spam_likelihood, etc.) are passed through to our rule engine as scalar values”article, stated

Attackers moved policy-violating text into images.

Root cause: Fraud tactics evolved to embed text in message attachments rather than normal text messages.

Resolution: Add OCR over message attachments and feed the extracted text as additional LLM input.

“new tactics are often used to circumvent our checks. For example, using text embedded in images rather than text messages.”article, stated
“We combat it by adding OCR to message attachments and using that as additional input to the LLMs.”article, stated

Evaluation

Whatnot evaluates the scam detector using scam attempt detection rate, time-to-detection, precision, recall, threshold-based rules, and human ops investigation for uncertain or actionable cases.

Metrics: over 95% scam attempt detection · within a few minutes · 96% precision · high recall · scam_likelihood > 0.6 example threshold

3 supporting quotes
“Using automated detection we are able to proactively detect over 95% of scam attempts on the platform within a few minutes.”article, stated
“We have seen 96% precision and high recall with the LLM output.”article, stated
“scam_likelihood > 0.6 and account_age < X days and message_frequency > Y and lifetime_orders < Z”article, stated

Outcomes

The source does not provide total message volume, but it gives operational metrics for scam detection rate, precision, and response time.

3 supporting quotes
“Using automated detection we are able to proactively detect over 95% of scam attempts on the platform within a few minutes.”article, stated
“This flow has now also expanded to enforce other policies like off-platform transactions and harassment.”article, stated
“We combat it by adding OCR to message attachments and using that as additional input to the LLMs.”article, stated