GitHub - joatsaint/pain-point-miner: Point it at a folder of YouTube transcripts, get back a ranked list of what the audience actually asks and struggles with. Free, self-run, no SaaS. · GitHub
/" data-turbo-transient="true" />
Skip to content
Search or jump to...
Search code, repositories, users, issues, pull requests...
-->
Search
Clear
Search syntax tips
Provide feedback
--><br>We read every piece of feedback, and take your input very seriously.
Include my email address so I can be contacted
Cancel
Submit feedback
Saved searches
Use saved searches to filter your results more quickly
-->
Name
Query
To see all available qualifiers, see our documentation.
Cancel
Create saved search
Sign in
/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up
Appearance settings
Resetting focus
You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.
Dismiss alert
{{ message }}
joatsaint
pain-point-miner
Public
Notifications<br>You must be signed in to change notification settings
Fork
Star
master
BranchesTags
Go to file
CodeOpen more actions menu
Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit
History<br>4 Commits<br>4 Commits
knowledge_base/reports
knowledge_base/reports
.gitignore
.gitignore
BUILD_LOG.md
BUILD_LOG.md
LICENSE
LICENSE
README.md
README.md
build-it-yourself-prompts.md
build-it-yourself-prompts.md
devto-announcement.md
devto-announcement.md
indexer.py
indexer.py
pain_point_extractor.py
pain_point_extractor.py
View all files
Repository files navigation
Pain Point Miner
Point this at a YouTube channel's transcripts and it hands back a ranked list of what that audience actually asks and struggles with — no manual comment-scrolling, no guessing.
I spent 25 years in enterprise IT before I ever touched a line of Claude Code. Reading a room full of frustrated people and finding the one real question under the noise isn't a new skill AI gave me — it's the same skill I used for two decades in ops, just pointed at a different kind of ticket queue. This tool automates the scanning part. It doesn't replace the judgment part.
What it does
indexer.py scans a folder of transcript .md files and builds a lightweight index.
pain_point_extractor.py reads that index, sends each transcript through Claude (Haiku) to pull out questions, pain points, and desired outcomes, then aggregates everything into one ranked report.
Output looks like this:
## Top Questions (Most Asked)<br>1. How do I rebuild my processes around what AI makes possible...? — mentioned in 4 video(s)
## Top Pain Points (Most Expressed)<br>1. Existing business models built on inefficiencies... — mentioned in 6 video(s)
What it doesn't do
It doesn't download transcripts for you, it doesn't touch Reddit or any other source, and it doesn't publish anything. Point it at .md transcript files you already have. Nothing else.
Project structure
│ └── /<br>│ └── *.md<br>└── knowledge_base/<br>├── index.json # generated by indexer.py<br>└── reports/<br>└── pain_points__.md # generated by the extractor">pain-point-miner/<br>├── indexer.py # scans transcripts/, builds the index<br>├── pain_point_extractor.py # two-pass Claude extraction + aggregation<br>├── README.md<br>├── build-it-yourself-prompts.md # rebuild this with your own AI, 3-phase prompt<br>├── devto-announcement.md<br>├── transcripts/ # your own .md files go here (not included)<br>│ └── /<br>│ └── /<br>│ └── *.md<br>└── knowledge_base/<br>├── index.json # generated by indexer.py<br>└── reports/<br>└── pain_points__.md # generated by the extractor
Setup
Clone this folder.
pip install anthropic
Get an Anthropic API key: https://console.anthropic.com/settings/keys
Set it as an environment variable, or drop a .env file in this folder:<br>ANTHROPIC_API_KEY=your_key_here
Put your own transcripts in transcripts///*.md, matching the structure above. Each file needs a plain text header (title, channel, date) followed by the transcript body — no sample transcripts are included in this repo (the ones used to test it were someone else's copyrighted video content, not fit to redistribute).
Run it
')"">python -c "from indexer import build_index; build_index(verbose=True)"<br>python -c "from pain_point_extractor import run_extractor; run_extractor(group='')"
Cost: Haiku, a few cents per run for a handful of files. You're paying Anthropic directly for your own usage — nothing routes through me.
A real problem this caught
Fed it three real AI/tech transcripts as a first test. Two extracted cleanly; one failed with a truncated-JSON error because Haiku ran out of the token budget mid-response. Known limitation, not fixed yet — if you hit it, either raise max_tokens in _pass1_extract() or just accept the occasional skip; the aggregation step still runs fine on whatever succeeded.
Free guide for IT professionals figuring out what...