← Home
🎯 Find the pain · Fix the pain

User Pain Radar

An AI agent that discovers user pain points across 11+ platforms, categorizes them, scores monetization potential, and generates priority-ranked opportunity reports β€” then a live tracker to mark each pain solved.

What it does

User Pain Radar searches the internet for complaints, frustrations and unmet needs about any topic you give it. It:

πŸ”

Searches 11+ platforms

Reddit, Twitter/X, Instagram, Facebook, Hacker News, Product Hunt, Stack Overflow, Amazon, App/Play Store, news media and forums.

πŸ’¬

Reads comments

Dives into comment sections, reply threads and discussions where the real pain points live.

πŸ“Š

Categorizes findings

Groups pain into actionable themes β€” Pricing, Communication, Quality, Trust, and more.

πŸ’°

Scores monetization

Rates each category for pain intensity (1–10) and monetization potential (1–10).

πŸ’²

Suggests pricing

Recommends service tiers from evidence β€” per-project, hourly, or retainer models.

πŸ“‹

Generates reports

Priority-ranked opportunity reports with scores, verdicts and pricing recommendations.

Documentation

πŸš€ Quick start β€Ί

Prerequisites

  • Python 3.7+ (for utility scripts β€” no pip installs needed)
  • An LLM-powered coding assistant with web search and browser capabilities

Installation

Option 1 β€” npx from GitHub

npx github:heysourin/user-pain-radar add heysourin/user-pain-radar

Option 2 β€” Manual clone

git clone https://github.com/heysourin/user-pain-radar.git
# Copy the agents/ folder into your project

Supported tools

ToolHow to trigger
Antigravity@user-pain-radar mention in chat
Claude CodeReference the skill file or paste its contents
Cursor / OtherAdd agents/user-pain-radar.md as a system prompt / context file

Usage

@user-pain-radar find pain points about "project management tools"
@user-pain-radar search for complaints about "home cleaning services"
@user-pain-radar what are people struggling with in "online tutoring"

Output

pain_points_radar.md β€” master research log with priority-ranked opportunities, categorized pain points, scores and pricing recommendations.

πŸ“‚ File structure β€Ί
<root directory>/
β”œβ”€β”€ agents/
β”‚   β”œβ”€β”€ user-pain-radar.md          # Agent skill file (core instructions)
β”‚   └── utils/
β”‚       β”œβ”€β”€ append_results.py       # Append results to master MD file
β”‚       └── check_duplicates.py     # Check if topic was already researched
β”œβ”€β”€ pain_points_radar.md            # Master results file (auto-created)
└── README.md                       # This file
βš™οΈ How it works β€Ί

When triggered with a topic, the agent runs four phases: web search (12 targeted queries per platform), deep dive (reads posts AND comments), analysis & categorization (scores pain Γ— monetization), and save (writes the report).

Search strategy

PlatformWhat it searches for
Reddit"frustrated", "hate", "wish", "deal breaker"
Instagram"scam", "worst service", "waste of money"
Facebook"terrible service", "never again", "rip off"
Twitter/X"hate", "broken", "annoying"
Hacker News"frustrating", "problem", "alternative"
Amazon1–2 star reviews, "don't buy", "returned it"
App/Play Storelow-rated reviews, "crash", "doesn't work", "terrible"
Product Hunt"complaint", "missing", "wish it had"
Stack Overflow"workaround", "hack", "no way to"
News MediaTechCrunch, The Verge β€” "controversy", "backlash"
Blogs & Forumsgeneral complaints, frustrations, "I wish" posts

Comment reading

The agent always reads comments, not just posts β€” expanding collapsed Reddit replies, scrolling Instagram/Facebook chains, reading full Twitter threads, sorting Amazon by "Most Critical", and checking developer responses on the App/Play Store.

πŸ€– Agent workflow & skill spec β€Ί

Identity: You are User Pain Radar, an LLM-agnostic agent that finds and analyzes user pain points across the internet. When triggered with a topic, follow four phases in order.

Phase 1 β€” Web search (12 queries)

Run a separate web search per platform, replacing {topic}:

Reddit:        site:reddit.com "{topic}" (frustrated OR annoying OR hate OR wish OR "pain point" OR "deal breaker" OR complaint)
Hacker News:   site:news.ycombinator.com "{topic}" (problem OR issue OR frustrating OR alternative)
Twitter/X:     site:twitter.com OR site:x.com "{topic}" (hate OR annoying OR wish OR broken OR complaint)
Instagram:     site:instagram.com "{topic}" (frustrated OR scam OR disappointed OR "waste of money" OR "worst service")
Facebook:      site:facebook.com "{topic}" (complaint OR frustrated OR "terrible service" OR "never again" OR "rip off")
Product Hunt:  site:producthunt.com "{topic}" (review OR complaint OR missing OR "wish it had")
Stack Overflow:site:stackoverflow.com "{topic}" (workaround OR hack OR "no way to" OR frustrated)
Amazon:        site:amazon.com "{topic}" review ("1 star" OR "2 star" OR "waste of money" OR "don't buy" OR defective)
App/Play:      ("{topic}" app review) site:apps.apple.com OR site:play.google.com ("1 star" OR bug OR crash OR "doesn't work")
News Media:    "{topic}" (controversy OR backlash OR criticism OR outage OR recall) site:techcrunch.com OR site:theverge.com
News & Blogs:  "{topic}" (complaint OR frustration OR "pain point" OR "I wish" OR "why can't") (blog OR article OR news)
Forums:        "{topic}" forum (complaint OR frustration OR "pain point" OR "I wish" OR "why can't")

Phase 2 β€” Deep dive: read posts AND comments

⚠️ Comment reading is critical β€” most pain points live in comments, not posts.

PlatformWhat to read
RedditPost + all comment threads; expand collapsed/downvoted replies; sort Top/Controversial
InstagramCaption + scroll ALL comments and reply chains
FacebookPost + all comments; expand "View more"; check Most Relevant & Newest
Twitter/XTweet + full reply thread; check quote tweets
Hacker NewsSubmission + full comment tree (often the most insightful source)
AmazonSort by "Most Critical"; read review text + helpful replies
App/Play StoreSort by lowest rating; read developer responses too
Product HuntProduct description + discussion thread
Stack OverflowQuestion + all answers + comment threads; accepted answers with caveats are goldmines
News / BlogsArticle + reader comments (Disqus, inline)
ForumsFull thread including ALL pages of replies

For each pain point, record: description, source URL, platform, intensity (low/medium/high) and 1–2 direct quotes.

Phase 3 β€” Scoring rubric

Pain intensity (1–10): 1–3 mild annoyance ("would be nice") Β· 4–6 clear frustration, actively seeking alternatives Β· 7–10 rage-quit level, "never again".

Monetization potential (1–10) weighs four factors: willingness to pay (already paying for workarounds / switching), market-size signals (how many threads), existing-solutions gap, and switching cost (lock-in).

Verdict: πŸ† TOP OPPORTUNITY = Pain β‰₯ 7 AND Monetization β‰₯ 7 Β· ⭐ Worth exploring = Pain β‰₯ 5 OR Monetization β‰₯ 5 Β· πŸ’€ Low priority = both below 5.

Phase 4 β€” Save (JSON β†’ Markdown)

Write agents/utils/_temp_results.json, then generate the report via the Python util. Schema:

{
  "topic": "the topic searched",
  "timestamp": "ISO 8601 timestamp",
  "categories": {
    "Category Name": {
      "pain_intensity": 8,
      "monetization_potential": 7,
      "suggested_pricing_tier": "Mid-ticket Service ($500-5,000/project)",
      "reasoning": "Why this tier, based on evidence",
      "pain_points": [
        { "pain_point": "1-2 sentence description",
          "source_url": "https://...",
          "platform": "Reddit",
          "intensity": "high",
          "quotes": ["Direct quote 1", "Direct quote 2"] }
      ]
    }
  },
  "summary": "Executive summary (2-4 sentences)",
  "metadata": { "sources_searched": 11, "pages_visited": 45, "pain_points_found": 67 }
}

Important notes

  • Go deep β€” visit as many relevant pages as possible; quantity AND quality matter.
  • Read comments β€” never skip them; they contain the real pain points.
  • Be specific β€” "the app crashes when uploading files >10MB" is a pain point; "the app is bad" is not.
  • Use exact quotes β€” they add credibility and specificity.
  • Create custom categories when a clear pattern doesn't fit the defaults.
  • Be honest with scores β€” base them on evidence found, don't inflate.
  • Note the platform β€” HN vs Instagram complaints can signal different market segments.
🏷️ Categories & pricing tiers β€Ί

Categories (service-business focus)

CategoryExamples
πŸ’° Pricing & ValueHidden fees, unclear quotes, overcharging
πŸ“ž Communication & ResponsivenessGhosting, slow replies, poor updates
⭐ Quality & DeliverablesMissed specs, inconsistent work
⏰ Reliability & TimelinessMissed deadlines, no-shows
🀝 Trust & TransparencyBait-and-switch, misleading promises
πŸ“‹ Onboarding & ProcessConfusing intake, poor handoff
πŸ›‘οΈ Support & AftercareNo follow-up, no warranty
🎨 UX/UI IssuesBad booking flow, poor website
πŸ”§ Missing CapabilitiesServices / features not offered, capability gaps
⚑ Performance & ReliabilityBugs, crashes, slowness (digital / SaaS-adjacent)
πŸ“¦ Product Quality & DurabilityDefects, wear, build quality (from product reviews)
πŸ”— Integration & CompatibilityInterop issues, API limits
🏷️ CustomAny other emerging pattern β€” named descriptively

Pricing tiers

TierModelWhen
πŸ’š Free / Lead Magnet$0Free consultation to acquire clients
πŸ’› Low-ticket$50–500/project Β· $25–75/hrSmall one-off tasks
🟠 Mid-ticket$500–5K/project Β· $75–200/hrProfessional services
πŸ”΄ High-ticket$5K–25K/project Β· $1K–5K/moComplex engagements
🟣 Premium$25K+/project · $5K+/moStrategic partnerships
🐍 Python utilities β€Ί

All utilities use Python stdlib only β€” no pip installs required.

append_results.py

Appends research results from a JSON file to the master Markdown file (deduplication by URL + text hash, prepend/newest-first, auto-create).

python agents/utils/append_results.py --input agents/utils/_temp_results.json --output pain_points_radar.md

check_duplicates.py

Checks if a topic has already been researched.

python agents/utils/check_duplicates.py --topic "project management tools" --results-file pain_points_radar.md
πŸ”’ Security notes β€Ί

User Pain Radar is not a web service. It ships a local installer (bin/cli.js), two local Python scripts, and the agent prompt run by your AI assistant. There is no HTTP server, listening port, public endpoint, or outbound network call in the tracked code.

Common askStatus
Rate limiting on public endpointsN/A β€” nothing listens on a network.
Brute-force / credential-stuffing preventionN/A β€” no login, password, session, or token to brute-force.
Remove hard-coded API keysN/A β€” the code contains no keys; it uses the host assistant's own capabilities.
Input validation & sanitizationImplemented (see below).

Hardening applied (OWASP-aligned)

  • OS command injection (bin/cli.js): clone uses execFileSync('git', […]) β€” no shell spawned; -- prevents option injection; the repo ref is allowlist-validated.
  • Untrusted JSON β†’ Markdown (append_results.py): 5 MB size guard, type checks, bounds caps, score clamping to 0–10, Markdown/table-injection sanitization (forged dedup markers neutralized), and URL sanitization (only http(s) emitted).
  • Read-path DoS guard (check_duplicates.py): skips the scan if the results file exceeds 25 MB.

If you wire this skill into a hosted service that does expose endpoints, add rate limiting and authentication at that layer β€” it does not belong in these local scripts.

If you add authentication later β€” brute-force checklist

None of this applies to the current code (there's no auth), but if a fork adds a login or token check, protect that surface (OWASP A07 β€” Identification & Authentication Failures):

  • Throttle attempts per identifier and per IP β€” escalating delay / temporary lockout after N failures (e.g. 5–10), with a cooldown.
  • Prefer exponential backoff over hard lockout where account-lockout DoS is a concern.
  • Constant-time secret comparison (crypto.timingSafeEqual / hmac.compare_digest) so timing can't leak how close a guess was.
  • Hash passwords with a slow, salted KDF (argon2id / bcrypt / scrypt) β€” never store or compare plaintext.
  • Generic failure messages ("invalid credentials") β€” never reveal which field was wrong.
  • CAPTCHA / step-up / MFA after repeated failures, and alerting on spikes.
  • Log auth failures (without logging the attempted secret) for monitoring.

Handling secrets, if you ever add them

  1. Read from an environment variable (process.env.X / os.environ["X"]).
  2. Keep it in a git-ignored .env; commit only a .env.example with placeholder values.
  3. Never embed a key in client-side / shipped code, and rotate immediately if one is ever committed β€” git history retains it, so rotation is the only real fix.
πŸ“œ License & credits β€Ί

MIT β€” use it however you want. Project: github.com/heysourin/user-pain-radar β†—.

πŸ“… Research log β€” "project management tools"

11 platforms searched 74 pages visited 51 pain points found 2026-06-25

Across 11+ platforms, the loudest and most emotional complaints about project management tools cluster around two themes: chronic slowness/unreliability (Jira, ClickUp, Asana, Wrike, Trello all described as painfully slow, freezing, crashing, or losing data) and aggressive/opaque pricing (Atlassian's 2024–25 increases of 124–233%, Monday.com's seat-bucket and AI-bundle upsells, Asana's hidden 2-seat minimum). A strong secondary cluster is overwhelming complexity and onboarding pain. These map cleanly to high-value service opportunities: implementation/optimization consulting, migrations, fractional admin/training, and custom integration work.

🩹 Pains resolved
0 / 0

Tick the small box on any pain point once your product/service has solved it β€” so users no longer feel it. Progress is saved in this browser.

πŸŽ‰ Every pain point is marked resolved β€” users no longer need to be in pain!