1. Overview
This agent reviews product listings submitted to an online marketplace and returns an instant moderation decision: approve, reject, or escalate for manual review. Each decision includes the specific policy violations found and a seller-facing explanation written in clear, actionable language.
2. Business value
-
Speed: moderates listings in seconds instead of the minutes-to-hours a manual review queue requires, so sellers go live faster.
-
Consistency: applies the same policy rules to every listing, which eliminates reviewer-to-reviewer variance and reduces appeals.
-
Scalability: handles traffic spikes (holiday seasons, flash sale onboarding) without adding headcount.
-
Seller trust: provides specific, cited reasons for any rejection so sellers can fix and resubmit rather than guess what went wrong.
3. Operational context
-
When it runs: triggered every time a seller submits a new listing or edits an existing one.
-
Who uses it: marketplace operations teams, trust & safety teams, seller support.
-
How often: continuous, high-volume. Built for hundreds to thousands of listings per day.
4. Inputs
| Field | Type | Details |
|---|---|---|
| Product Title | Text | The listing title as submitted by the seller (e.g., "Women's Cashmere Sweater - Navy Blue") |
| Product Description | Text | The full listing description including features, materials, sizing, etc. |
| Product Category | Dropdown | Apparel / Electronics / Home & Garden / Health & Beauty / Toys & Games / Food & Beverage / Sports & Outdoors / Other |
| Listing Images | File (optional) | Product photos to check for watermarks, stock photo misuse, or inappropriate content |
5. Outputs
| Field | Contents | Format |
|---|---|---|
| Status | The moderation decision | approved, rejected, or escalated |
| Violations | Every policy breach found | Array of violation objects (see Appendix A for types) |
| Seller Explanation | What the seller sees | Plain-language explanation citing each violation and what to fix. Written in second person ("Your listing...") |
| Recommended Action | What the ops team should do | publish, remove, or manual_review |
| Confidence | How certain the decision is | high, medium, or low |
6. Execution steps
-
Validate inputs. Confirm Title and Description are non-empty. If either is blank, return a rejection with violation type
missing_required_info. -
Check for prohibited items. Scan title and description for references to weapons, drugs, counterfeit goods, recalled products, or hazardous materials using the prohibited terms list in Appendix A.
-
Check for offensive language. Flag profanity, hate speech, sexually explicit terms, or discriminatory language.
-
Check for misleading claims. Identify unsubstantiated phrases like "100% genuine," "official," "certified," "FDA approved," or "doctor recommended" that appear without verifiable context.
-
Check formatting compliance. Flag ALL CAPS titles, excessive punctuation (3+ consecutive
!or?), emoji-only descriptions, or descriptions under 20 characters. -
Check category-specific rules. Apply category-specific policies (e.g., Food & Beverage requires allergen disclosure; Health & Beauty cannot claim to cure diseases).
-
Aggregate violations. Compile everything found across steps 2-6.
-
Determine status:
-
Zero violations and high confidence →
approved -
One or more clear violations →
rejected -
Borderline or ambiguous cases (e.g., brand name that doubles as a common word, vintage items that could be counterfeit) →
escalated
-
-
Generate seller explanation. Write a clear, specific explanation for each violation. Include what rule was broken and what the seller should change.
-
Set recommended action. Map status to action: approved =
publish, rejected =remove, escalated =manual_review.
7. Validation checks
-
Every violation found must appear in both the violations array and the seller explanation. No silent flags.
-
Seller explanations must cite the exact text or phrase that triggered the violation, not generic messages.
-
Common words that happen to be brand names (e.g., "Apple" as a color, "Coach" as a verb) should be evaluated in context before flagging.
-
If a listing has multiple violations, document all of them. Don't stop after the first one.
8. Edge cases
-
Multilingual listings: if the listing contains non-English text, escalate for manual review. Don't auto-reject.
-
Empty description with images only: reject with
insufficient_description. Listings must have text descriptions. -
Vintage/secondhand claims: "Vintage" or "pre-owned" items making authenticity claims about luxury brands should be escalated, not auto-rejected.
-
Seller-provided certifications: if a seller mentions a certification (e.g., "USDA Organic"), escalate for verification rather than rejecting.
-
Duplicate listings: out of scope. Duplicate detection is handled separately.
9. Example
Input
-
Product Title: "GENUINE ROLEX WATCH - BEST PRICE!!!"
-
Product Description: "100% authentic Rolex Submariner. This is the real deal. Ships from warehouse. Certificate of authenticity available on request."
-
Product Category: Other
Execution
-
Step 5: title is ALL CAPS with excessive punctuation (3x
!) → violation:spam_formatting -
Step 3: no offensive language found
-
Step 2: no prohibited items found
-
Step 4: "100% authentic," "GENUINE," and "the real deal" are unverifiable authenticity claims for a luxury brand → violation:
misleading_claim -
Step 8: multiple clear violations → status:
rejected
Output
-
Status:
rejected -
Violations: [
spam_formatting,misleading_claim] -
Seller Explanation: "Your listing was not approved for two reasons: (1) The title uses ALL CAPS and excessive punctuation, which violates our formatting guidelines. Please rewrite the title in standard capitalization. (2) The phrases '100% authentic,' 'GENUINE,' and 'the real deal' are unverifiable authenticity claims. If you can provide proof of authenticity (authorized dealer documentation or verifiable certificate), please resubmit with that documentation attached."
-
Recommended Action:
remove -
Confidence:
high
Appendix A: Violation types
| Violation Type | Trigger Criteria | Severity |
|---|---|---|
prohibited_item | References to weapons, drugs, counterfeit goods, recalled items, hazardous materials | High |
offensive_language | Profanity, hate speech, slurs, sexually explicit language | High |
misleading_claim | Unverifiable authenticity, certification, or efficacy claims | Medium |
spam_formatting | ALL CAPS titles, 3+ consecutive punctuation marks, emoji-only text, descriptions under 20 characters | Low |
missing_required_info | Empty title or description | Medium |
category_violation | Breaks a category-specific rule (allergen disclosure, health claims, age restrictions) | Medium |
image_violation | Stock photos with watermarks, inappropriate imagery, no relation to product | Medium |
Appendix B: Decision matrix
| Violations Found | Highest Severity | Ambiguous? | Decision |
|---|---|---|---|
| None | n/a | No | approved |
| Any | Any | Yes | escalated |
| 1+ | High | No | rejected |
| 1+ | Medium | No | rejected |
| 1+ | Low only | No | rejected (with lower confidence) |

