/job-match — Requirement–evidence analysis
Break the JD into verifiable requirements and check each against evidence that already exists in career/facts.md. The output is not a match score; it is: which requirements have evidence, which are merely unwritten, which are real gaps, and whether the application is worth the time.
Inputs
- A concrete JD — text, link, or screenshot. A title alone is not enough; ask for the requirements. If
jobs-mcp is available and the link is a Greenhouse / Lever / Ashby posting, fetch it with get_job.
career/facts.md (truth), career/blocks.md (wording), career/stories.md (depth). Never add a fact that is not there.
- The user's filters in
career/targets.yaml (filters:) and career/answers.yaml (authorization, experience, preferences).
Keep the capture date. If the JD is a fragment, say what is missing.
Method
- Extract responsibilities, hard requirements, core competencies, nice-to-haves, application constraints. Merge duplicates; ignore marketing copy.
- For each requirement, find direct evidence and record where (
facts.md § …) and the personal boundary (user vs. team).
- One status each:
MATCHED — a specific, expandable fact exists.
WORDING GAP — the user did it; no resume version says it. Cheapest fix → /great-resume.
THIN EVIDENCE — hinted at; would not survive a follow-up.
REAL GAP — facts do not satisfy it, or the user confirmed they have not done it.
UNCONFIRMED — a decisive fact is missing; do not guess.
- Hard constraints first, separately; strengths never offset them. Work authorization and sponsorship (from
answers.yaml); country-restricted remote; onsite / hybrid vs. the user's work model; years required vs. years_default / years_excluding_internships; degree or certification; compensation vs. salary_floor; level (read the YOE range, not the title).
- Verdict:
APPLY, APPLY AFTER PREP, APPLY WITH CAUTION, SKIP, plus the two or three pieces of evidence that decided it. No percentages.
- Name the resume master (which existing folder to copy) and which company-line anchors apply.
Deliverable — same shape as career/application/03-Job-Description.md
- Verdict — one sentence.
- Requirement–evidence matrix —
| Requirement | Weight | Evidence (file § section) | Status | Risk / next step |.
- Hard constraints — met / not met / unconfirmed, each.
- Priority fixes — ≤ 5, tagged
reword / add evidence / build skill.
- Strategy — apply or not, which master, open questions.
- Hand-off — only if asked: the prompt for the next skill.
The evidence column must point at a section, project, artifact, PR, or explicit user statement. Nothing found → not provided.
Boundaries
- Adjacent tech is not the same tech; say "transferable", keep the status honest.
- "Preferred / familiar with" is not a hard requirement unless the responsibilities say so.
- Do not reject on one missing keyword; do not accept on keyword overlap.
- Analysis authorises nothing else: no file edits, no forms, no submissions.
1---2name: job-match3description: Compare a job description against the verified facts in career/facts.md and return a requirement–evidence matrix, a hard-constraint check (work authorization, location, years, band), and an APPLY / SKIP verdict. Use when the user pastes a JD, a job link, or a screenshot and asks whether a role fits, is worth applying to, or what the gaps are. Hands off to /great-resume, /make-resume, /interview, /job-apply, /offer.4---56# /job-match — Requirement–evidence analysis78Break the JD into verifiable requirements and check each against evidence that already exists in `career/facts.md`. The output is not a match score; it is: which requirements have evidence, which are merely unwritten, which are real gaps, and whether the application is worth the time.910## Inputs11121. A concrete JD — text, link, or screenshot. A title alone is not enough; ask for the requirements. If `jobs-mcp` is available and the link is a Greenhouse / Lever / Ashby posting, fetch it with `get_job`.132. `career/facts.md` (truth), `career/blocks.md` (wording), `career/stories.md` (depth). Never add a fact that is not there.143. The user's filters in `career/targets.yaml` (`filters:`) and `career/answers.yaml` (`authorization`, `experience`, `preferences`).1516Keep the capture date. If the JD is a fragment, say what is missing.1718## Method19201. Extract responsibilities, hard requirements, core competencies, nice-to-haves, application constraints. Merge duplicates; ignore marketing copy.212. For each requirement, find direct evidence and record **where** (`facts.md § …`) and the **personal boundary** (user vs. team).223. One status each:23 - `MATCHED` — a specific, expandable fact exists.24 - `WORDING GAP` — the user did it; no resume version says it. Cheapest fix → `/great-resume`.25 - `THIN EVIDENCE` — hinted at; would not survive a follow-up.26 - `REAL GAP` — facts do not satisfy it, or the user confirmed they have not done it.27 - `UNCONFIRMED` — a decisive fact is missing; do not guess.284. **Hard constraints first, separately; strengths never offset them.** Work authorization and sponsorship (from `answers.yaml`); country-restricted remote; onsite / hybrid vs. the user's work model; years required vs. `years_default` / `years_excluding_internships`; degree or certification; compensation vs. `salary_floor`; level (read the YOE range, not the title).295. Verdict: `APPLY`, `APPLY AFTER PREP`, `APPLY WITH CAUTION`, `SKIP`, plus the two or three pieces of evidence that decided it. No percentages.306. Name the resume master (which existing folder to copy) and which company-line anchors apply.3132## Deliverable — same shape as `career/application/03-Job-Description.md`33341. **Verdict** — one sentence.352. **Requirement–evidence matrix** — `| Requirement | Weight | Evidence (file § section) | Status | Risk / next step |`.363. **Hard constraints** — met / not met / unconfirmed, each.374. **Priority fixes** — ≤ 5, tagged `reword` / `add evidence` / `build skill`.385. **Strategy** — apply or not, which master, open questions.396. **Hand-off** — only if asked: the prompt for the next skill.4041The evidence column must point at a section, project, artifact, PR, or explicit user statement. Nothing found → `not provided`.4243## Boundaries4445- Adjacent tech is not the same tech; say "transferable", keep the status honest.46- "Preferred / familiar with" is not a hard requirement unless the responsibilities say so.47- Do not reject on one missing keyword; do not accept on keyword overlap.48- Analysis authorises nothing else: no file edits, no forms, no submissions.