mirror of
https://github.com/MadsLorentzen/ai-job-search.git
synced 2026-09-17 00:26:26 +00:00
fix(html-report): read and render the tracker deadline column (#325)
/html-report was the one tracker consumer #319's deadline column left behind: Step 1 now parses every canonical column and Step 3 renders Deadline after Date. The drift guard derives CANONICAL_HEADER from apply.md itself, so a future column added elsewhere but missing here fails with the column named; legacy 13-field rows read as empty deadline, never dropped, never inferred. Includes rule-6 sweep refinements and deadline-reconciliation rules authored by jakob1379. Co-authored-by: Jakob Stender Guldberg <17257805+jakob1379@users.noreply.github.com>
This commit is contained in:
co-authored by
Jakob Stender Guldberg
parent
c855e11d22
commit
762d3218ef
@@ -17,7 +17,9 @@ Create `reports/` if it does not exist.
|
||||
Read in parallel:
|
||||
|
||||
1. **`job_search_tracker.csv`** — the primary source. Parse every row into a record with fields:
|
||||
`date`, `company`, `sector`, `role`, `role_type`, `channel`, `status`, `contact_person`, `fit_rating`, `notes`, `cv_file`, `cover_letter_file`, `source`
|
||||
`date`, `company`, `sector`, `role`, `role_type`, `channel`, `status`, `contact_person`, `fit_rating`, `notes`, `cv_file`, `cover_letter_file`, `source`, `deadline`
|
||||
|
||||
Rows written before `deadline` existed have thirteen fields and no fourteenth value. Treat the missing field as empty - never drop the row, and never infer a deadline from its `date`.
|
||||
|
||||
2. **`documents/applications/*/outcome.md`** — for each resolved application, read the outcome file to get the exact interview stages reached (the checkboxes) and any notes. Merge this into the matching tracker row by company+role fuzzy match (lowercase, ignore punctuation). If an archive exists for a row but there is no match, attach it as extra context anyway.
|
||||
|
||||
@@ -110,7 +112,7 @@ Build each chart as a hand-written `<svg>` element: compute bar lengths/doughnut
|
||||
|
||||
### Table: columns to include
|
||||
|
||||
`Date` · `Company` · `Role` · `Sector` · `Channel` · `Status` · `Notes` (truncated to 80 chars with `title` tooltip for full text) · `Source` (link or `—`)
|
||||
`Date` · `Deadline` · `Company` · `Role` · `Sector` · `Channel` · `Status` · `Notes` (truncated to 80 chars with `title` tooltip for full text) · `Source` (link or `—`)
|
||||
|
||||
Columns with only empty values across all rows may be omitted.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user