mirror of
https://github.com/MadsLorentzen/ai-job-search.git
synced 2026-09-17 00:26:26 +00:00
feat: add /outcome command to record application results and close the calibration loop (#54)
/setup Path A already mines documents/applications/<company>_<role>/ (job_posting.md, submitted drafts, outcome.md) to calibrate 04-job-evaluation.md and surface STAR candidates - but nothing in the workflow systematically writes those folders, so the calibration machinery only runs for users who hand-maintain the archive. /outcome closes the loop: it writes the data /setup reads. How it works: - Identifies the application from job_search_tracker.csv (by argument, or by listing open applications); applications made outside the workflow get a new tracker row - Records progress updates (interview stages, offers) and resolutions using the exact status enum documents/README.md documents, plus one additive value: in_progress, for open applications between updates. /setup's calibration only draws conclusions from final statuses - Archives the submitted cv_draft.tex / cover_letter.tex (copy, never move; existing archived files are never overwritten - the archive is what was actually submitted) and fetches job_posting.md from the tracker's source URL while it is still alive; a dead URL gets a user-pasted copy or an explicit unavailable stub, never a reconstruction - Updates the tracker row's status and notes; never restructures the CSV - After 3+ resolved outcomes (or a repeating pattern), points the user back to /setup Path A - /outcome writes data, /setup interprets it, and this command never edits framework or profile files itself - Idempotent: re-running appends stages and dated notes, never duplicates folders, rows, or history Also aligns the outcome.md status enum across docs: setup.md Step A3 listed hired/rejected/no_response/interview_only while documents/README.md already had offer_declined; both now carry the full enum including in_progress. documents/applications/** and the tracker are already gitignored, so all recorded data stays personal. Docs: README (commands list, file tree), documents/README.md (/outcome cross-reference and in_progress semantics), one-line handoff at the end of /apply Step 6.
This commit is contained in:
+5
-1
@@ -99,6 +99,8 @@ Reference letters from former managers, supervisors, or collaborators.
|
||||
|
||||
A record of past job applications. Each subfolder is one application.
|
||||
|
||||
You can maintain these folders by hand, or let the **`/outcome`** command do it: it records progress updates and final results conversationally, archives the submitted drafts and the posting text, keeps `outcome.md` in the format below, and updates `job_search_tracker.csv` in the same step.
|
||||
|
||||
**Subfolder naming:** `<company>_<role>` — lowercase, underscores for spaces.
|
||||
|
||||
Examples:
|
||||
@@ -122,7 +124,7 @@ applications/
|
||||
```markdown
|
||||
# Outcome: <Company> — <Role>
|
||||
|
||||
**Status:** hired | offer_declined | rejected | no_response | interview_only
|
||||
**Status:** in_progress | hired | offer_declined | rejected | no_response | interview_only
|
||||
|
||||
**Date resolved:** YYYY-MM-DD
|
||||
|
||||
@@ -139,6 +141,8 @@ What would you do differently?
|
||||
Any signal about what they valued or didn't?
|
||||
```
|
||||
|
||||
`in_progress` marks an application that is still open (used by `/outcome` for interview-stage updates before a resolution). `/setup`'s calibration draws conclusions only from applications with a final status.
|
||||
|
||||
**What `/setup` learns from outcome.md:**
|
||||
- Which role types and companies have led to interviews (signals strong fit areas)
|
||||
- Which applications did not progress (informs the experience match calibration in `04-job-evaluation.md`)
|
||||
|
||||
Reference in New Issue
Block a user