Ryanhub - file viewer
filename: .cursor/skills/job-eval/SKILL.md
branch: main
back to repo
---
name: job-eval
description: >-
  Evaluate a job lead and company against target thesis and company fit rubric.
  Updates fit sections and frontmatter match/status, then syncs indexes.
  Use when assessing fit, comparing roles, or scoring companies.
---

# Job eval

Evaluate whether the lead is worth Ryan's time.

**Fit means:** Would this be a cool, high-upside environment where Ryan could grow and contribute?

Do not reduce fit to "can Ryan do this job?"

## Read first

1. **`profile/target-thesis.md`** — what to pursue
2. **`profile/company-fit-rubric.md`** — scoring dimensions (1–5 each)
3. `profile/experience.md`, `profile/projects.md`, `profile/skills.md`
4. The lead file in `leads/L0001-*.md` and company `companies/CO0001-*.md` if exists
5. Company website, careers page, technical blog, papers, demos (when evaluating)

If no lead file yet, run **`scripts/new_lead.py`** first — do not create the file manually.

## Company scoring rubric (1–5 each)

Score on:

- technical_ambition
- research_energy
- novelty
- learning_upside
- builder_appreciation
- role_plausibility
- outreach_surface
- talent_density

See definitions in **`profile/company-fit-rubric.md`**.

Record scores in lead **Concerns** or company **notes**, then sync.

## Map scores to lead `match`

| Match | Meaning |
|-------|---------|
| **strong** | High technical_ambition + builder_appreciation + learning_upside (mostly 4–5); fits target thesis; role_plausibility ≥ 3 |
| **moderate** | Interesting on 2+ rubric dimensions but gaps (location, seniority, weak outreach, unclear role) |
| **weak** | Generic work, low novelty, conflicts with avoid list, or poor skill/role overlap |
| **bad** | Clear misfit — generic SaaS factory, AI wrapper, ticket farm — archive |

Be honest. "Weak" saves Ryan time. Prefer ambitious misfits over boring "moderate" fits.

## Output in lead markdown

```markdown
# Summary
(faithful posting summary)

# Why it fits
What aligns with target thesis — their technical work, not Ryan's project list

# Concerns
Gaps + optional rubric snapshot (e.g. technical_ambition: 5, novelty: 4, role_plausibility: 2)

# Next action
yes | maybe | no — one sentence why + concrete next step (research contact, outreach, skip)
```

Update **frontmatter**:

```yaml
match: strong | moderate | weak | bad
status: found | researched | contact_needed | ...
priority: 1-5   # weight learning_upside + technical_ambition for strong targets
```

## Sync after edits

```bash
.venv/bin/python scripts/sync_indexes.py
```

## Compare multiple leads

Sort by match, then priority, then technical_ambition/novelty from notes. Summarize top 3 — why the **work** is interesting, not which Ryan project to mention.

## Do not

- Score high because "it's a software job"
- Inflate match to please
- Ignore avoid list in `goal.md` (generic SaaS, AI wrappers, ticket factories)
- Recommend apply without checking profile facts
- Center evaluation on Ezcaptain or one default project

## Voice

Fit notes are for Ryan internally — candid is fine. Outreach text must follow `profile/voice.md` (lead with their work).