Rank consulting/product opportunities from youtube-transcripts notes (CLI).
Find a file
2026-05-04 03:04:07 -04:00
src/oppmine Initial MVP commit 2026-05-04 03:04:07 -04:00
tests Initial MVP commit 2026-05-04 03:04:07 -04:00
.gitignore Initial MVP commit 2026-05-04 03:04:07 -04:00
LICENSE Initial MVP commit 2026-05-04 03:04:07 -04:00
pyproject.toml Initial MVP commit 2026-05-04 03:04:07 -04:00
README.md Initial MVP commit 2026-05-04 03:04:07 -04:00

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.