| src/opportunity_radar | ||
| tests | ||
| .gitignore | ||
| LICENSE | ||
| pyproject.toml | ||
| README.md | ||
opportunity-radar
Daily zero-config scanner for ML/AI/voice-DSP consulting & contract leads. Pure stdlib.
A focused successor to the "opportunity-radar" idea proposed in the May 1, 2026 profile-pivot conversation: surface contract/consulting work to fund the RTX 6000 (Blackwell Pro) + June 2026 Mac Studio without manual scrolling.
Why this project
Pulled from the chat thread on May 1, 2026 ("what to automate / what tool to build tonight to make tomorrow easier") where Luis pivoted the main Hermes profile to research, optimizations, evaluating new tools, sourcing consulting/contract work. The follow-up on May 5 drafted two outreach pitches but flagged a recurring gap: morning briefs keep failing to surface consulting/contract leads despite the memory directive. The May 8 morning brief carried the same gap forward.
opportunity-radar is the missing inbound channel — a cron-friendly CLI that
scans public boards, scores leads against Luis's actual stack (vLLM, eval,
voice DSP, fine-tuning, real-time audio, Apple silicon), filters out noise
(WordPress, logo design, generic AI app builders), and emits a ranked
markdown digest.
What it does
Scans these unauthenticated public sources:
- HN "Who is hiring? (freelancer? seeking freelancer?)" — via Algolia
search API for
SEEKING FREELANCERandREMOTE CONTRACTcomments. - r/forhire —
[Hiring]posts mentioning AI/ML/LLM. - r/MachineLearning —
[P]/ contract / consulting threads. - r/LocalLLaMA —
hire / consultant / contractthreads.
For each lead it computes a composite score from:
- Keyword fit (vllm, fine-tune, eval, voice DSP, BlackHole, Core Audio, open-weight, RAG, leaderboard, …) with penalties for WordPress / Wix / logo / data-entry posts.
- Pay signal parsed from snippet —
$/hr,$/week,$Xk,budget $…. Higher rates score higher. - Recency — within 24h, week, month.
Outputs a ranked markdown report (or JSON with --json).
Install
git clone https://git.lucataco.dev/Catacolabs/opportunity-radar.git
cd opportunity-radar
pip install -e .
Pure stdlib — no third-party deps.
Run
# Top 25 leads above default score threshold (3.0), markdown to stdout
opportunity-radar -v
# Save to a daily digest file
opportunity-radar -v -o ~/Code/Catacolabs/leads/$(date +%F).md
# Top 10 high-confidence only (threshold 6.0)
opportunity-radar -t 6 -n 10
# JSON for piping into Telegram / Notion
opportunity-radar --json -n 10 | jq '.[].url'
# Raw dump (no threshold) for debugging
opportunity-radar --all -n 100
Daily cron suggestion
Add via hermes cronjob create on the main profile:
30 8 * * * opportunity-radar -t 4 -n 15 -o ~/Code/Catacolabs/leads/$(date +%F).md
Pair with the morning-brief delivery so leads appear in the same channel each morning.
Scoring tuning
Edit src/opportunity_radar/score.py:
HIGH_VALUE— keyword → weight (positive).PENALTY— keyword → negative weight.PAY_PATTERNS— regex-tagged pay-signal extractors.is_relevant(threshold=…)default cutoff.
Tests
pip install pytest
pytest -q
License
MIT.