01 The Problem
Craigslist’s Feedback, Flag Help, and Help Desk forums are full of unfiltered user complaints and suggestions, but none of it gets read systematically. Platform managers were relying on manual scanning to catch recurring problems, which meant frustrations around flagging, visibility, and moderation could sit unnoticed for months. I set out to turn those forums into a system that could surface real user pain points automatically.
02 The Approach
Core Question
What are users actually frustrated about, and can a model catch it without a human reading every post?
Scraping & Cleaning
Pulled ~900 posts, then cleaned and lemmatized the text.
Sentiment Fix
Ran VADER sentiment analysis, then added a frustration-keyword override to catch politely-worded complaints.
Topic Modeling
Used LDA to pull out 5 recurring complaint themes.
Clustering
Grouped posts by issue using TF-IDF + K-means (silhouette score ~0.51).
Classification
Trained 5 models, then combined the top 3 into a voting ensemble.
03 The Result
40.6% negative, 36% positive, 23.4% neutral
The keyword override caught complaints VADER missed.
Flagging, mobile, trust, spam, and design
Flagging frustration, mobile usability, listing trust, messaging spam, and platform design opinions.
Voting ensemble hit 74% accuracy and 0.73 F1
Beat any single model on its own.
92% recall on negative posts, 88% precision on neutral
Reliable at catching complaints without drowning in false neutrals.
04 Business Impact
Priority Fix
Post flagging and moderation transparency — the biggest complaint cluster.
Mobile Review
Usability complaints pointed to a dated mobile experience.
Spam Flag
Isolated messaging spam as a fixable, standalone issue.
Reusable Tool
Delivered the classifier so the team can auto-triage new posts going forward.
05 What I Learned
The keyword override mattered more than any modeling choice. Fixing one labeling issue improved everything downstream.