Files
ai-job-search/documents
Ayobami Adegoke 4488290274 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.
2026-07-07 19:40:12 +02:00
..

Documents Folder

This folder holds your actual career documents. The /setup command reads everything here and uses it to populate the candidate skill files under .claude/skills/job-application-assistant/. It is safe to re-run /setup as you add new documents — it merges intelligently and will never overwrite existing content without asking you first.


Folder Structure

documents/
├── cv/                          # Your CV files (PDF or LaTeX)
├── linkedin/                    # LinkedIn profile export (PDF)
├── diplomas/                    # Degree certificates and transcripts
├── references/                  # Reference letters
├── applications/                # Past job applications
│   └── <company>_<role>/
│       ├── job_posting.md       # The original job posting (paste as text)
│       ├── cover_letter.tex     # The cover letter you submitted
│       ├── cv_draft.tex         # The CV variant you submitted
│       └── outcome.md           # Result + notes (fill in after hearing back)
└── README.md                    # This file

cv/

Your master CV — the most complete, unedited version of your professional record.

Supported formats: .pdf, .tex

What /setup extracts:

  • Work experience (titles, companies, dates, bullet points)
  • Education (degrees, institutions, dates, thesis topics)
  • Technical skills
  • Awards and publications
  • Contact information

Naming: Any filename works. If multiple files are present, /setup reads all of them and cross-references for consistency.

Tip: Keep your most comprehensive CV here (not a tailored variant). The skill files are the canonical source — tailored CVs are generated per application by /apply.


linkedin/

Your LinkedIn profile exported as a PDF.

How to export: On LinkedIn, go to your profile → More → Save to PDF. This exports a structured summary of your profile.

Supported formats: .pdf

What /setup extracts:

  • Work experience and dates (cross-referenced against your CV)
  • Skills and endorsements
  • Education
  • Certifications and licenses
  • Volunteer work
  • Publications
  • About/summary section (used to infer behavioral profile additions)
  • Recommendations received (may enrich reference context)

Naming: Any filename works. Only one LinkedIn export is expected; if multiple are present, /setup uses the most recently modified one.


diplomas/

Degree certificates, transcripts, and any official qualifications.

Supported formats: .pdf

What /setup extracts:

  • Degree titles and official names (used to verify education entries)
  • Graduation dates
  • Grades or distinctions (if visible)
  • Institution names (official spelling)

Naming: Use descriptive names, e.g. msc_physics_ucph_2025.pdf, bsc_physics_ucph_2016.pdf. Naming does not affect parsing.


references/

Reference letters from former managers, supervisors, or collaborators.

Supported formats: .pdf, .txt, .md

What /setup extracts:

  • Referee name, title, and organization
  • Specific quotes and assessments (added to the references section of 01-candidate-profile.md)
  • Competency language used by referees (adds behavioral signal to 02-behavioral-profile.md)

Naming: Use the referee's name, e.g. reference_ole_frandsen.pdf.


applications/

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:

applications/
├── acme_ml_engineer/
├── bigcorp_software_engineer/
└── consultco_ai_consultant/

Files within each application folder

job_posting.md — Paste the full job posting text here. Used by /setup to infer which skills and role types you have targeted, and to calibrate 04-job-evaluation.md.

cover_letter.tex — The cover letter you actually submitted. Used to extract writing style patterns and structure for 06-cover-letter-templates.md.

cv_draft.tex — The CV variant you submitted. Used to extract profile statement styles for 05-cv-templates.md.

outcome.md — Fill this in after the application resolves. Format:

# Outcome: <Company> — <Role>

**Status:** in_progress | hired | offer_declined | rejected | no_response | interview_only

**Date resolved:** YYYY-MM-DD

## Interview stages reached
- [ ] Phone screen
- [ ] Technical interview
- [ ] Case interview
- [ ] Final round
- [ ] Offer received

## Notes
What happened? What feedback did you receive (if any)?
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)
  • Interview feedback, if you recorded it, can surface new STAR candidates

File Format Notes

Format Readable by /setup Notes
.pdf Yes Parsed directly with the Read tool
.tex Yes LaTeX source — structure and content both readable
.md Yes Plain text
.txt Yes Plain text
.docx No Convert to PDF before placing here
.png / .jpg No Scanned documents won't be parsed — use text PDFs

Re-running /setup

The command is designed to be re-run as your document collection grows. Each run:

  1. Reads the current state of all skill files
  2. Compares extracted document content against what's already there
  3. Only proposes changes for content that is genuinely new or conflicting
  4. Never silently overwrites — conflicts are shown explicitly for your decision

When to re-run:

  • After adding a new LinkedIn export
  • After adding reference letters
  • After recording outcomes for completed applications
  • After updating your master CV