From 1ab6c78332dbb6cf34856dcd348ef1e77fc194c1 Mon Sep 17 00:00:00 2001 From: Ayobami Adegoke Date: Tue, 11 Aug 2026 18:03:07 +0100 Subject: [PATCH] docs(scraper): drop the phantom 'evaluated' status from seen_jobs.json vocabulary (#316) The schema documented new/skipped/evaluated/ranked/expired, but 'evaluated' has had no writer and no reader since the initial release, and post-#269 the tracker owns all lifecycle state after drafting. Also tightens /rank Step 1's '--all' wording, which leaned on an 'applied' status the schema deliberately lacks. Closes #315 --- .claude/commands/rank.md | 2 +- .claude/skills/job-scraper/SKILL.md | 2 +- CHANGELOG.md | 11 +++++++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/.claude/commands/rank.md b/.claude/commands/rank.md index af89d2f..1457f73 100644 --- a/.claude/commands/rank.md +++ b/.claude/commands/rank.md @@ -23,7 +23,7 @@ Follow these steps **in order**. 1. Read `job_scraper/seen_jobs.json`. If the file is missing or has no entries, tell the user to run `/scrape` first and stop. 2. Read `job_search_tracker.csv`. Build the exclusion set: any company+role already in the tracker is out of scope regardless of flags - it has been applied to or consciously tracked. -3. Select candidates: entries with status `new` (or all non-applied entries with `--all`), minus the exclusion set, filtered by the focus area if one was given. +3. Select candidates: entries with status `new` (or entries of any status with `--all`), minus the exclusion set, filtered by the focus area if one was given. 4. If no candidates remain, say so ("Nothing new to rank - run /scrape to find fresh postings") and stop. 5. Read the scoring framework and profile **once**: - `.claude/skills/job-application-assistant/04-job-evaluation.md` diff --git a/.claude/skills/job-scraper/SKILL.md b/.claude/skills/job-scraper/SKILL.md index b75540f..019de99 100644 --- a/.claude/skills/job-scraper/SKILL.md +++ b/.claude/skills/job-scraper/SKILL.md @@ -136,7 +136,7 @@ For each new job, do a rapid fit check (NOT the full evaluation from `04-job-eva "url": "...", "first_seen": "YYYY-MM-DD", "fit": "high/medium/low", - "status": "new/skipped/evaluated/ranked/expired", + "status": "new/skipped/ranked/expired", "portal": "" } } diff --git a/CHANGELOG.md b/CHANGELOG.md index 49b39ab..4868d03 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -61,6 +61,17 @@ per-file diff commands. ### Fixed +- **Dropped the phantom `evaluated` value from `seen_jobs.json`'s status vocabulary** (#315). + The schema block in the job-scraper skill documented `new/skipped/evaluated/ranked/expired`, + but `evaluated` has had no writer and no reader since the initial release - `new`/`skipped` + come from `/scrape`, `ranked`/`expired` from `/rank`, and nothing ever set or selected + `evaluated`. Post-#269 the tracker owns all lifecycle state after drafting, so the value had + no future role either; it is now removed rather than wired up. `/rank` Step 1's `--all` + wording ("all non-applied entries") leaned on an `applied` status the schema deliberately + lacks and now names what it means: entries of any status, minus the tracker exclusion set. + Forks that wrote their own tooling against the documented vocabulary should note the value + was never produced by any shipped command. + - **`/apply` archives the job posting while it still holds it** (#306). `/apply` drafted two documents and a tracker row from the full posting, then let the text die with the session; `/outcome` Step 3.2 tried to recover it by re-fetching a `source` URL the spec itself expects