| src/oppmine | ||
| tests | ||
| .gitignore | ||
| LICENSE | ||
| pyproject.toml | ||
| README.md | ||
oppmine
Mine the consulting/product opportunities you've already written down.
oppmine is a tiny, dependency-free Python CLI that scans a checkout of
Catacolabs/youtube-transcripts
(or any repo with the same channels/<slug>/notes/*.md layout), pulls every
## Competitive Edge Opportunity section out of the notes, scores each one by
how much actionable signal it contains (pricing, audience, deliverable, pain
quote, numbered plan, depth), and prints a ranked board you can act on.
It's a knife to cut through a pile of "good ideas" and surface the ones that actually look like contracts.
Why this project
The previous evening (May 3, 2026 session
20260503_223638_8f9b3a2d) was spent populating
Catacolabs/youtube-transcripts with 134 video notes across four
channels — Greg Isenberg, AI Engineer Europe, Lenny's Podcast, My First
Million — and every notes file ends with a structured Competitive Edge
Opportunity section: audience, pain point, deliverable, and pricing tiers.
That is, accidentally, a small private database of consulting / micro-SaaS
pitches. But 134 markdown files with no ranking is just backlog. The
hardware-funding goal (RTX 6000 Pro / Mac Studio in June) needs the top of
that backlog surfaced. oppmine turns the pile into a triaged board so the
weekly "what should I pitch this week?" question takes 5 seconds, not 5 hours.
Install
git clone https://git.lucataco.dev/Catacolabs/oppmine.git
cd oppmine
pip install -e .
Python 3.10+. Zero runtime dependencies — only the standard library.
Usage
# Point at a youtube-transcripts checkout
git clone https://git.lucataco.dev/Catacolabs/youtube-transcripts.git ~/yt
oppmine --repo ~/yt --top 10 # ranked table, top 10
oppmine --repo ~/yt --channel greg-isenberg \
--format markdown --out board.md # markdown board for one channel
oppmine --repo ~/yt --min-score 8 \
--format json > shortlist.json # machine-readable shortlist
You can also set OPPMINE_REPO=~/yt once and then just run oppmine.
Sample output (table)
# score channel pitch
----------------------------------------------------------------------
1 12 greg-isenberg Build a "Rubric Marketplace" — a curated library of...
2 11 greg-isenberg **Build a "Context Auditor"** — a CLI + dashboard...
3 10 ai-engineer-europe Ship an evaluation harness for ...
...
How the score works
Each opportunity is scored on signals visible in its markdown body:
| Signal | Points | Why it matters |
|---|---|---|
$N pricing |
up to +3 (one per tier) | pricing = thought-through unit economics |
| audience nouns | up to +2 (solopreneur/SMB/etc.) | clear buyer = pitchable |
| deliverable nouns | up to +2 (CLI/API/agent/…) | concrete shape = scope-able |
| pain-point block | +2 | a real problem, not a feature wish |
| user quote | +1 | grounded, not hypothetical |
| length depth | +1 / +2 (60 / 120 words) | thin ideas score low |
| numbered plan | +2 | "1. … 2. …" = ready to estimate |
Heuristics, not magic. Tweak in src/oppmine/score.py.
Layout
src/oppmine/
parser.py # extract Opportunity records from notes
score.py # signal heuristics
render.py # table / markdown / json renderers
cli.py # argparse entrypoint
__main__.py # `python -m oppmine`
Roadmap (post-MVP)
oppmine diff— show new opportunities since a previous run- LLM re-rank pass: top-K from heuristics, then judge with a rubric
- Tag opportunities (
#agent #saas #infra) and group by tag - Auto-open a Linear / Forgejo issue per top-N opportunity
- HTML dashboard with filters
License
MIT.