Skip to content

๐ŸŽฏ Discover software product ideas by mining Reddit for user pain points. AI-powered analysis with Gemini.

License

Notifications You must be signed in to change notification settings

lefttree/reddit-pain-points

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

6 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽฏ Reddit Pain Point Discovery Tool

Discover software product ideas by mining Reddit for user pain points. AI-powered analysis with Google Gemini.

Python FastAPI React SQLite License: MIT

Why This Tool?

Finding product ideas shouldn't be guesswork. Every day, thousands of people describe their frustrations on Reddit โ€” "I wish there was...", "Why isn't there a tool for...", "I'd pay for something that...". These are validated pain points from real users.

This tool automates the discovery process:

  • Scrapes targeted subreddits for posts expressing frustration or unmet needs
  • Uses AI to extract structured insights (pain point, audience, market size, solutions)
  • Ranks opportunities by a composite score so you can focus on the best ones
  • Presents everything in a clean, filterable dashboard

Stop building products nobody wants. Start with real pain.

How It Works

  1. Scrapes posts and comments from 12+ target subreddits (r/SaaS, r/startups, r/Entrepreneur, etc.)
  2. Filters for pain-point language ("I wish", "frustrated", "need a tool", etc.)
  3. Analyzes each match with Google Gemini to extract structured insights
  4. Ranks opportunities by a composite score (engagement ร— severity ร— market potential)
  5. Displays everything in a clean, filterable dashboard

Features

  • ๐Ÿ” Smart Scraping โ€” Targets 12+ subreddits with pain-point keyword matching
  • ๐ŸŒ No Auth Scraping โ€” Public API mode, no Reddit credentials needed
  • ๐Ÿค– AI Analysis โ€” Claude or Gemini extracts pain points, audiences, solutions, market estimates
  • ๐Ÿ“Š Opportunity Scoring โ€” Composite score based on engagement, severity, and market size
  • ๐Ÿท๏ธ Auto-Categorization โ€” Productivity, Dev Tools, Business, Marketing, etc.
  • ๐Ÿ”ฅ Trending View โ€” See what's hot right now
  • ๐Ÿ”Ž Search & Filter โ€” By subreddit, category, score, keywords
  • ๐Ÿ“ฅ Export โ€” CSV and JSON export
  • ๐Ÿš€ One-Click Scrape โ€” Trigger scrapes from the dashboard UI
  • ๐ŸŽฎ Demo Mode โ€” Try the dashboard with sample data, no API keys needed
  • โฐ Scheduled scraping (cron jobs)
  • ๐Ÿ“ง Email/Slack alerts for high-score opportunities
  • ๐Ÿ“ˆ Trend detection over time
  • ๐ŸŒ Multi-platform support (Hacker News, Twitter/X, Indie Hackers)
  • ๐Ÿท๏ธ Custom keyword lists
  • ๐Ÿ“Š Analytics dashboard with charts

Quick Start

Try It Instantly (Demo Mode)

No API keys needed โ€” explore the dashboard with sample data:

git clone https://github.com/lefttree/reddit-pain-points.git
cd reddit-pain-points

# Backend
cd backend
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
python cli.py demo    # Load 10 sample pain points
python cli.py serve & # Start API on :8000
cd ..

# Frontend
cd frontend
npm install
npm run dev           # Start UI on :5173

Open http://localhost:5173 and explore!

Quick Start with Real Data (No Reddit Account Needed)

Only need an LLM API key โ€” scrape Reddit without credentials:

git clone https://github.com/lefttree/reddit-pain-points.git
cd reddit-pain-points
cp .env.example .env
# Add your LLM key to .env (either one):
#   ANTHROPIC_API_KEY=sk-ant-...   (Claude, recommended)
#   GOOGLE_API_KEY=AIza...          (Gemini)

cd backend
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt

python cli.py scrape --public           # Scrape Reddit (no auth needed!)
python cli.py analyze                   # Analyze with AI
python cli.py serve &                   # Start API
cd ../frontend && npm install && npm run dev  # Start UI

Full Setup (With Reddit API + LLM)

1. Prerequisites

2. Install & Configure

git clone https://github.com/lefttree/reddit-pain-points.git
cd reddit-pain-points

# Copy and fill in your credentials
cp .env.example .env
# Edit .env โ€” at minimum set one LLM key

# Install backend
cd backend
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
cd ..

# Install frontend
cd frontend
npm install
cd ..

3. Run the Scraper

cd backend

# Scrape Reddit + analyze with AI (full pipeline)
python cli.py run --public              # Public API (no Reddit credentials)
python cli.py run                       # With Reddit API credentials

# Or run steps separately:
python cli.py scrape --public           # Scrape via public API
python cli.py scrape                    # Scrape via Reddit API (needs credentials)
python cli.py analyze                   # Analyze unanalyzed posts with LLM
python cli.py scrape -s "SaaS,startups" # Specific subreddits
python cli.py stats                     # View database stats

4. Start the Dashboard

# Option A: Quick start (both services)
./run.sh

# Option B: Manual
cd backend && python cli.py serve &    # API on :8000
cd frontend && npm run dev &           # UI on :5173

Open http://localhost:5173 to browse discovered pain points.

Example Output

Here's what an analyzed pain point looks like:

๐ŸŽฏ Pain Point: "No simple tool to aggregate feature requests from multiple
   channels (email, Slack, support, social) for small teams"

๐Ÿ“Š Opportunity Score: 82/100
๐Ÿ”ฅ Severity: 4/5
๐Ÿ‘ฅ Audience: Small SaaS founders and product managers
๐Ÿ“ˆ Market Size: Large

๐Ÿ’ก Product Ideas:
   1. Lightweight feature request aggregator with email/Slack/Twitter integrations
   2. AI-powered request deduplication and ranking tool
   3. Simple voting board with multi-channel intake automation

๐Ÿ” Existing Solutions: Canny, Productboard, Nolt, Fider
๐Ÿ“Œ Source: r/SaaS ยท โฌ† 187 ยท ๐Ÿ’ฌ 43 comments

Project Structure

reddit-pain-points/
โ”œโ”€โ”€ backend/
โ”‚   โ”œโ”€โ”€ api.py           # FastAPI REST API
โ”‚   โ”œโ”€โ”€ scraper.py       # Reddit scraper (PRAW)
โ”‚   โ”œโ”€โ”€ analyzer.py      # Gemini LLM analyzer
โ”‚   โ”œโ”€โ”€ database.py      # SQLite management
โ”‚   โ”œโ”€โ”€ config.py        # Configuration
โ”‚   โ”œโ”€โ”€ cli.py           # CLI interface
โ”‚   โ”œโ”€โ”€ demo_data.py     # Sample data for demo mode
โ”‚   โ””โ”€โ”€ requirements.txt
โ”œโ”€โ”€ frontend/
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ App.jsx      # Main React app
โ”‚   โ”‚   โ”œโ”€โ”€ main.jsx     # Entry point
โ”‚   โ”‚   โ””โ”€โ”€ index.css    # Tailwind styles
โ”‚   โ”œโ”€โ”€ package.json
โ”‚   โ””โ”€โ”€ vite.config.js
โ”œโ”€โ”€ data/                # SQLite database (auto-created)
โ”œโ”€โ”€ docs/
โ”‚   โ””โ”€โ”€ DESIGN.md        # Architecture & design doc
โ”œโ”€โ”€ .env.example         # Template for credentials
โ”œโ”€โ”€ run.sh               # Quick start script
โ””โ”€โ”€ README.md

API Endpoints

Method Endpoint Description
GET /api/pain-points List pain points (filterable, paginated)
GET /api/pain-points/:id Single pain point detail
GET /api/stats Dashboard statistics
GET /api/trending Trending pain points
GET /api/categories Categories with counts
GET /api/subreddits Subreddits with counts
GET /api/export?format=csv Export data
POST /api/scrape Trigger scrape run
GET /api/scrape/status Scraper status

Auto-generated docs at http://localhost:8000/docs (Swagger UI).

Configuration

All config via .env:

# LLM API Key (at least one required for analysis)
ANTHROPIC_API_KEY=sk-ant-...            # Claude (recommended)
GOOGLE_API_KEY=AIza...                  # Gemini
LLM_PROVIDER=auto                       # "auto" (default), "claude", or "gemini"

# Reddit API (optional โ€” use --public flag to skip)
REDDIT_CLIENT_ID=your_client_id
REDDIT_CLIENT_SECRET=your_client_secret

# Optional
SUBREDDITS=SaaS,startups,Entrepreneur  # Override target subreddits
SCRAPE_LIMIT=50                         # Posts per subreddit per feed
DATABASE_PATH=data/painpoints.db        # Database location

Reddit App Setup

  1. Go to https://www.reddit.com/prefs/apps
  2. Click "create another app..."
  3. Choose "script" type
  4. Set redirect URI to http://localhost:8080
  5. Copy the client ID (under app name) and secret

Default Subreddits

The scraper targets these 12 subreddits by default:

Subreddit Focus
r/SaaS SaaS product discussions
r/startups Startup challenges & needs
r/Entrepreneur Business pain points
r/smallbusiness Small business struggles
r/webdev Web development frustrations
r/programming Developer tooling gaps
r/productivity Workflow & productivity issues
r/selfhosted Self-hosting needs & gaps
r/sideproject Side project builders' needs
r/indiehackers Indie maker challenges
r/digitalnomad Remote work pain points
r/nocode No-code/low-code limitations

Override via .env: SUBREDDITS=SaaS,startups,yourSubreddit

๐Ÿ’ก Suggest new subreddits! Open an issue or PR to add subreddits you think are valuable.

Pain Point Keywords

The scraper searches for posts containing these 31 keywords/phrases:

Category Keywords
Wishes "i wish", "wish there was", "why isn't there", "doesn't exist"
Frustration "frustrated", "annoying", "so annoying", "drives me crazy", "hate when", "sucks", "terrible", "worst part"
Seeking "looking for", "need a tool", "anyone know of", "is there a", "recommend a", "help me find", "what do you use for", "looking for something", "can't find"
Alternatives "alternative to", "tired of"
Validation "would pay for", "shut up and take my money", "deal breaker"
Feedback "pain point", "struggle with", "feature request", "broken", "waste of time"

๐Ÿ’ก Suggest new keywords! If you know domain-specific phrases that signal pain points, open an issue or PR.

Analysis Categories

Discovered pain points are auto-categorized into:

Productivity ยท Developer Tools ยท Business ยท Communication ยท Finance ยท Health ยท Education ยท Marketing ยท Design ยท Data & Analytics ยท Automation ยท Other

Roadmap

  • Scheduled Scraping โ€” Cron-based scraping with configurable intervals
  • Alerts โ€” Email/Slack notifications when high-scoring opportunities are found
  • Multi-Platform โ€” Extend to Hacker News, Twitter/X, Indie Hackers, Product Hunt
  • Trend Detection โ€” Track pain points over time, detect emerging trends
  • Custom Keywords โ€” User-defined keyword lists for domain-specific discovery
  • Team Features โ€” Bookmarks, notes, and collaboration on opportunities
  • Analytics Dashboard โ€” Charts and visualizations for scraping history

Tech Stack

  • Backend: Python, FastAPI, PRAW (optional), SQLite
  • Frontend: React 19, Vite, Tailwind CSS
  • Analysis: Claude (Anthropic) or Gemini (Google) โ€” auto-detected

Contributing

Contributions are welcome! See CONTRIBUTING.md for guidelines.

License

MIT โ€” see LICENSE for details.

About

๐ŸŽฏ Discover software product ideas by mining Reddit for user pain points. AI-powered analysis with Gemini.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published