mirror of
https://github.com/MadsLorentzen/ai-job-search.git
synced 2026-09-17 00:26:26 +00:00
* feat(upskill): aggregate mode ingests ranked jobs and their recorded gaps /upskill's aggregate mode only read job_search_tracker.csv and guessed required skills from the role/sector/notes columns, even though /rank already fetches and scores postings that never make it into the tracker. Aggregate mode now also reads ranked entries (rank_score >= 45, the Moderate Fit floor) from job_scraper/seen_jobs.json, dedupes them against tracker rows on case-insensitive company+role (reusing the match tools/auto_mode_browser.py's _tracker_keys already implements), and prefers a job's recorded gaps over an inferred skill list wherever both exist. The heatmap's Gap Source column and report header now show the recorded-vs-inferred / tracked-vs-ranked split. Depends on #263. Discussed in #258. * fix(upskill): cite only upstream precedent for the aggregate dedupe key tools/auto_mode_browser.py's _tracker_keys does not exist upstream and does not exist in this fork either, so the dedupe bullet in Step 3.1 of the upskill skill pointed at a phantom implementation. Drop that reference and keep only the /notion-sync precedent, which is verified present in upstream/master. Re-pin the pinned test assertion to the surviving citation so the dangling reference can't silently return. Addresses the CHANGES_REQUESTED review on #264.