fix(salary): convert the IDA workbook again ("Firmanavn og by" header); list `unreachable` in the scrape schema
What changed and why
tools/convert_salary_excel.py has not converted the repository's own demonstration workbook (IDA firmastatistik) since #75: that change made header matching whole-token only, and the workbook heads its company column "Firmanavn og by", where "firma" is glued to "navn". Both sheets were skipped with Could not find header row and the converter exited 1. Found during the 2026-10-17 triage sweep while verifying the salary PRs against the real workbook; the converted file in use predates the regression, which is why nobody noticed.
Fix: "firma" joins COMPOUND_PATTERNS, the same mechanism the other glued Danish headers use. Every other workbook converts byte-identically (verified on the synthetic fixtures and on the real workbook with the header patched both ways).
Second, a one-line follow-up to #564: the status enum in the seen_jobs.json schema block of job-scraper/SKILL.md still read new/skipped/ranked/expired while the dedup rule further down already named unreachable.
Failing case / reproduction
python tools/convert_salary_excel.py ida-firmastatistik-2025.xlsx --output out.json
# master: Warning: Could not find header row in sheet 'Med ledere'. Skipping. ... exit 1
# branch: Done! Wrote 1736 company entries ... exit 0
The new test test_parse_sheet_detects_danish_compound_company_header fails with the converter hunk reverted and passes with it.
Verification
python -m unittest discover -s tests -t .: 590 tests OK (Windows, Python 3.14)python tools/lint_skills.py,python tools/check_framework_version.py,python tools/security_guards.py: OK- CHANGELOG entries under [Unreleased] > Fixed
š¤ Generated with Claude Code