filename:
.cursor/skills/job-hunt/SKILL.md
branch:
main
back to repo
---
name: job-hunt
description: >-
Job hunt orchestrator for this repo. Use when starting any job-search task,
unsure which workflow to run, or coordinating collect → eval → review →
resume → message. Routes to company-scout, collect-leads, job-eval,
review-leads, resume-tailor, compose-message skills.
---
# Job hunt orchestrator
Markdown-first CRM with **deterministic Python scripts** for IDs, CSV indexes, validation, and reporting. Cursor browses and drafts; scripts own state.
## Start here
1. Read **`profile/target-thesis.md`** — what to pursue
2. Read **`profile/company-fit-rubric.md`** — how to score companies
3. Read `sources.md` — where facts live
4. Read `profile/voice.md` — before writing anything Ryan sends
5. Ensure `.venv` exists: `python3 -m venv .venv && .venv/bin/pip install -r requirements.txt`
## Workflow
```
company-scout / collect-leads → job-eval → review-leads / report.py
↓
resume-tailor / compose-message
↓
log_event.py (when Ryan acts)
```
| Step | Skill / script | Trigger examples |
|------|----------------|------------------|
| Find companies | `company-scout` + `new_company.py` | "scout YC AI startups", "find interesting labs" |
| Find roles | `collect-leads` + `new_lead.py` | "search LinkedIn", "/loop 1h collect interns" |
| Assess fit | `job-eval` | "evaluate this lead", "is Acme worth it?" |
| Review pipeline | `review-leads` + `report.py` | "what should I apply to?", "rank my leads" |
| Resume | `resume-tailor` | "tailor resume for L0002" |
| Outreach | `compose-message` | "write a LinkedIn note for C0001" |
| Log action | `log_event.py` | "I applied to Stripe", "sent the DM" |
## Scripts (always use for entity creation)
| Script | When |
|--------|------|
| `scripts/new_lead.py` | New job posting |
| `scripts/new_contact.py` | New person |
| `scripts/new_company.py` | New company (usually auto-created) |
| `scripts/log_event.py` | Applied, messaged, follow-up, interview |
| `scripts/sync_indexes.py` | After any frontmatter change |
| `scripts/validate.py` | End of session — must pass |
| `scripts/report.py --today` | End of session — what's due |
**Never** hand-edit `data/*.csv` or invent IDs.
## End of session
```bash
.venv/bin/python scripts/sync_indexes.py
.venv/bin/python scripts/validate.py && .venv/bin/python scripts/report.py --today
```
## Rules
- Prefer company-first discovery (`company-scout`) over job-board-only volume
- Target ambitious technical work — see `profile/target-thesis.md`
- Dedupe by URL — `new_lead.py` rejects duplicates
- Never fabricate experience — only `profile/` facts
- Outreach: lead with their work; projects as proof only when relevant
- Never auto-apply or auto-send messages
- Sound human; see `profile/voice.md`
## Loop
`/loop 30m scout YC AI companies` or `/loop 30m collect LinkedIn leads` → run skill each tick → sync + validate if entities changed.