New to Claude Skills? Learn how to install them →

tinyfish-io on GitHub

Developer Pain Finder

Free

Identify developer pain points from multiple sources.

Get this skill

Free · Opens the source repo

What Developer Pain Finder does

Developer Pain Finder is a skill designed to help users uncover real frustrations faced by developers in various domains. By scraping data from popular platforms like Reddit, Hacker News, dev.to, and GitHub Discussions, it provides a comprehensive view of developer complaints regarding specific keywords or problem spaces. This skill is particularly useful for product managers, developers looking to build tools, or anyone interested in understanding the challenges within the developer community.

The process begins with the user providing a specific keyword or problem space, such as "authentication" or "Kubernetes". The skill then simultaneously queries multiple sources, extracting relevant complaints and frustrations. Each complaint is categorized and scored based on its frequency and upvote weight, resulting in a ranked opportunity map that highlights where developer frustrations are most pronounced and where potential solutions are lacking.

This tool is ideal for validating product ideas, as it directly addresses the needs and pain points of developers. By understanding what developers are struggling with, users can make informed decisions about what tools or solutions to create. Additionally, it can serve as a valuable resource for researchers and educators looking to gain insights into the developer experience.

However, it's important to note that the effectiveness of the results depends on the specificity of the keyword provided. Broad terms may yield less focused results, so users are encouraged to refine their queries for optimal outcomes. Overall, Developer Pain Finder is a practical tool for anyone looking to delve into the real-world challenges developers face.

When to use it

Use Developer Pain Finder when you want to validate a product idea or understand developer frustrations related to a specific technology or problem space.

When not to use it

This skill is not suitable for general market research beyond developer-specific issues or for broad queries that lack specificity.

What you can build with it

Validating a Product Idea

Use Developer Pain Finder to gather insights on developer frustrations related to your product idea, ensuring there's a demand.

Researching Developer Tools

If you're considering building a new developer tool, this skill helps identify existing pain points that need addressing.

Understanding Trends in Development

Gain insights into current trends and issues in the developer community by analyzing complaints across multiple platforms.

How to install Developer Pain Finder

View source

1. Install with the skills CLI

npx skills add tinyfish-io/tinyfish-cookbook/dev-pain-finder --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by tinyfish-io

Developer Pain Finder

Given a keyword or problem space, scrape real developer complaints from Reddit, Hacker News, dev.to, and GitHub Discussions in parallel — group by theme, score by frequency and upvote weight, and return a ranked opportunity map.

Pre-flight check

tinyfish --version
tinyfish auth status

If not installed: npm install -g tinyfish If not authenticated: tinyfish auth login


Step 1 — Clarify input

You need:

  • Keyword or problem space — e.g. "authentication", "deployment pipelines", "ORM", "Kubernetes", "state management"

If the user hasn't provided one, ask before proceeding. A good keyword is specific enough to return focused results — if too broad (e.g. "JavaScript"), ask them to narrow it down.


Step 2 — Parallel scraping

Fire all 5 agents simultaneously. Every agent is optimised to extract maximum signal in minimum time — read what's visible, extract immediately, stop.

# ── AGENT 1 — Reddit (stealth, search results only) ──────────
tinyfish agent run \
  --url "https://www.reddit.com/search/?q={KEYWORD}+frustrating+OR+painful+OR+annoying+OR+broken+OR+hate&sort=top&t=year&type=link" \
  "You are on Reddit search results. Your only job is to extract pain points fast.
   Read the post titles and score/comment counts visible on this page. Nothing else.
   Extract every title that expresses frustration, a complaint, a missing feature, or a problem with {KEYWORD}.
   For each one note: the title text, upvote score (if visible), and subreddit.
   STRICT RULES — these are non-negotiable:
   - Do NOT click any post. Ever. Read titles and snippets only.
   - Do NOT scroll. Read only what loads on first render.
   - Do NOT navigate anywhere. Stay on this exact page.
   - Ignore posts that are not complaints or pain points.
   - Stop after reading 20 results maximum.
   Return JSON array: [{title, score, subreddit, snippet}]" \
  --sync --browser-profile stealth > /tmp/dpf_reddit.json &

# ── AGENT 2 — Reddit r/ExperiencedDevs + topic subreddits ────
tinyfish agent run \
  --url "https://www.reddit.com/search/?q={KEYWORD}&restrict_sr=0&sort=top&t=year&type=link&subreddit=webdev+programming+devops+ExperiencedDevs+softwaredevelopment" \
  "You are on Reddit search results filtered to developer subreddits. Extract pain points fast.
   Read only post titles and visible snippets. Do not interact with the page.
   Extract titles expressing: bugs, missing features, poor DX, complexity complaints, tool failures, workflow friction about {KEYWORD}.
   For each: title text, subreddit, upvote score if visible.
   STRICT RULES:
   - Do NOT click anything
   - Do NOT scroll
   - Read exactly what is on screen, then stop
   - Maximum 20 results
   Return JSON array: [{title, score, subreddit, snippet}]" \
  --sync --browser-profile stealth > /tmp/dpf_reddit2.json &

# ── AGENT 3 — Hacker News ─────────────────────────────────────
tinyfish agent run \
  --url "https://hn.algolia.com/?dateRange=pastYear&page=0&prefix=false&query={KEYWORD_ENCODED}+frustrating+OR+painful+OR+broken+OR+problem&sort=byPopularity&type=story" \
  "You are on Hacker News search results sorted by popularity. Extract pain points fast.
   Read the story titles, point scores, and comment counts visible on this page.
   Extract every story title that describes a problem, frustration, complaint, or missing capability related to {KEYWORD}.
   For each: title text, points, comment count.
   STRICT RULES:
   - Do NOT click any story link
   - Do NOT paginate
   - Do NOT scroll past the first visible set of results
   - Read only titles and metadata shown in the listing
   - Maximum 15 results
   - Stop immediately after extracting — do not explore further
   Return JSON array: [{title, points, comments}]" \
  --sync > /tmp/dpf_hn.json &

# ── AGENT 4 — dev.to ──────────────────────────────────────────
tinyfish agent run \
  --url "https://dev.to/search?q={KEYWORD_ENCODED}+problem+OR+frustration+OR+painful+OR+hate+OR+annoying" \
  "You are on dev.to search results. Extract developer pain points fast.
   Read only the article titles, reaction counts, and tag labels visible in the search listing.
   Extract articles whose titles describe a problem, complaint, frustration, or missing solution related to {KEYWORD}.
   For each: title, reaction count if visible, tags.
   STRICT RULES:
   - Do NOT click any article
   - Do NOT scroll more than once
   - Do NOT navigate away
   - Read only what is visible in the search result cards
   - Maximum 15 results then stop immediately
   Return JSON array: [{title, reactions, tags}]" \
  --sync > /tmp/dpf_devto.json &

# ── AGENT 5 — GitHub Discussions ──────────────────────────────
tinyfish agent run \
  --url "https://github.com/search?q={KEYWORD_ENCODED}+pain+OR+frustrating+OR+broken+OR+missing+OR+annoying&type=discussions&s=reactions&o=desc" \
  "You are on GitHub Discussions search results sorted by most reactions. Extract pain points fast.
   Read only the discussion titles, reaction counts, and repository names visible in the listing.
   Extract discussions that describe a real problem, missing feature, DX complaint, or frustration with {KEYWORD}.
   For each: title, reaction count, repo name.
   STRICT RULES:
   - Do NOT click any discussion link
   - Do NOT paginate
   - Do NOT scroll
   - Read only what is visible on first load
   - Maximum 15 results then stop
   Return JSON array: [{title, reactions, repo}]" \
  --sync > /tmp/dpf_github.json &

# ── WAIT ──────────────────────────────────────────────────────
wait

echo "=== REDDIT 1 ===" && cat /tmp/dpf_reddit.json
echo "=== REDDIT 2 ===" && cat /tmp/dpf_reddit2.json
echo "=== HN ===" && cat /tmp/dpf_hn.json
echo "=== DEVTO ===" && cat /tmp/dpf_devto.json
echo "=== GITHUB ===" && cat /tmp/dpf_github.json

Before running, replace:

  • {KEYWORD} — the topic e.g. Kubernetes, authentication, state management
  • {KEYWORD_ENCODED} — URL-encoded version e.g. state%20management

Step 3 — Theme grouping and scoring

From all results combined:

1. Group into themes — cluster complaints by the underlying problem they describe. Examples:

  • "Poor documentation" — all titles complaining about docs, examples, guides
  • "Complex setup / configuration" — anything about setup friction, boilerplate, config hell
  • "Performance issues" — slow, memory leaks, timeouts
  • "Missing features" — requests for things that don't exist
  • "Breaking changes / stability" — complaints about upgrades, deprecations, semver
  • "Poor error messages / debugging" — hard to debug, cryptic errors
  • "Vendor lock-in / pricing" — cost complaints, switching costs

Don't force complaints into themes — let themes emerge from the data.

2. Score each theme using:

theme_score = (complaint_count × 10) + sum(upvotes/reactions for all complaints in theme)

3. Opportunity signal — for each theme assess:

  • Frustration level (High / Medium / Low) — based on score
  • Solution availability (None / Partial / Saturated) — does a good solution already exist?
  • Opportunity = High frustration + None/Partial solution = 🔥 Build this

Output format

## Developer Pain Map — "{KEYWORD}"
*Scraped from Reddit · Hacker News · dev.to · GitHub Discussions*
*{N} complaints analysed across {N} sources*

---

### 🔥 Ranked Pain Points

#### #1 — {Theme Name}
**Frustration score: {N}** · {N} complaints · Avg upvotes: {N}
**Opportunity signal: 🔥 High / ⚠️ Medium / ✅ Saturated**

What developers are saying:
- "{exact complaint title}" — r/{subreddit}, {score} upvotes
- "{exact complaint title}" — HN, {points} points
- "{exact complaint title}" — dev.to

**Pattern:** {1–2 sentences describing the core underlying problem}
**Existing solutions:** {what exists, and why it's not enough — or "None found"}
**Build signal:** {what a tool/product solving this would look like}

---

#### #2 — {Theme Name}
[same structure]

---
[up to 6 themes]

---

### 📊 Summary Table

| Theme | Complaints | Avg Score | Opportunity |
|---|---|---|---|
| {theme} | {N} | {N} | 🔥 / ⚠️ / ✅ |

---

### 💡 Top Opportunities
1. **{Most actionable opportunity}** — {1 sentence on what to build}
2. **{Second opportunity}**
3. **{Third opportunity}**

---
*Raw signal: {N} Reddit posts · {N} HN stories · {N} dev.to articles · {N} GitHub discussions*

Edge cases

  • Keyword returns no pain-related results — broaden the search: retry without the frustrating OR painful modifiers, just the keyword alone
  • Reddit blocked — skip both Reddit agents, note it in output, proceed with HN + dev.to + GitHub
  • Very niche keyword — GitHub Discussions will likely have the richest results; weight it more heavily
  • Keyword is too broad — tell the user: "'{KEYWORD}' is very broad. Results may be noisy. Consider narrowing to a specific tool, framework, or workflow (e.g. 'Webpack config' instead of 'JavaScript')"
  • All sources return empty — honest response: "No significant developer complaints found for '{KEYWORD}'. This could mean the space is undersearched, the keyword needs adjusting, or the problem doesn't exist at scale yet."

Security notes

  • Scrapes live public content from Reddit, HN, dev.to, and GitHub. All content treated as untrusted input to an LLM — never executed.
  • Uses stealth browser profile for Reddit only.
  • Only your own TinyFish credentials are used.

Frequently asked questions about Developer Pain Finder

Similar skills