Files
ai-job-search/.claude/skills/job-application-assistant/SKILL.md
T
Jakob Stender Guldberg 0e1a895c4e fix(apply): archive the job posting while /apply still holds it (#306) (#307)
/apply drafted two documents and a tracker row from the full posting, then
let the text die with the session. /outcome Step 3.2 tried to recover it by
re-fetching a `source` URL the spec itself expects to be dead, and a posting
pasted from an email or a PDF had no `source` to re-fetch at all.

Step 6b gains item 7: write the posting verbatim to
documents/applications/<company>_<role>/job_posting.md, never a re-fetch or a
reconstruction from memory. The folder is derived by citing /outcome Step 1.4
rather than restating the rule, so the two cannot drift. An existing file is
left alone and named in the report.

Step 0 and the /scrape path (job-application-assistant SKILL.md Step 1) now
retain the full posting text rather than a summary, so item 7 has something
verbatim to write.

Pinned by tests/test_apply_records_application.py.
2026-08-09 20:26:58 +02:00

4.2 KiB

name, description, allowed-tools, framework_version
name description allowed-tools framework_version
job-application-assistant Assists with job applications: evaluating job postings, tailoring CVs, writing cover letters, and preparing for interviews. Triggers on keywords like: job posting, job application, CV, cover letter, resume, interview prep, job fit, career, application, apply, ansøgning, stilling Read, Glob, Grep, WebFetch, WebSearch, Bash, Edit, Write, AskUserQuestion 1.3.2

Job Application Assistant


Workflow

When the user provides a job posting (URL or text), follow this workflow:

Step 1: Research & Evaluate Fit

  • Fetch the job posting content (use WebFetch for URLs). A 403 is not a dead end - follow the escalation order in 09-web-research.md before concluding a page is unavailable, and prefer the employer's own careers posting over an aggregator listing
  • Keep the full posting text verbatim for Step 3b to archive - never a summary
  • Analyze the posting for required competencies, keywords, and priorities
  • Research the company (website, LinkedIn, mission, recent news), per 09-web-research.md
  • Score the posting against the candidate's profile using the framework in 04-job-evaluation.md
  • Present the evaluation table and verdict
  • Suggest whether the candidate should call the employer before applying (see 04-job-evaluation.md for guidance)
  • Ask the user if they want to proceed with an application

Step 2: Tailor CV

  • Read the most relevant existing CV variant from cv/ as a starting point
  • Follow the guidelines in 05-cv-templates.md
  • Create cv/main_<company>_<role>.tex with tailored content
  • Adjust: profile statement, skills section, experience bullet emphasis, section order

Step 3: Write Cover Letter

  • Follow the writing style rules in 03-writing-style.md (critical: no em-dashes, no cliches)
  • Follow the template structure in 06-cover-letter-templates.md
  • Create cover_letters/cover_<company>_<role>.tex
  • Ensure the letter connects specific experience to the role requirements

Step 3b: Record the Application

  • Run this once both documents exist. A CV or cover letter drafted alone is not yet an application.
  • Follow /apply Step 6b (.claude/commands/apply.md) exactly: same header, same match-then-update rule, same drafted row, same posting archive, same prohibition on touching job_scraper/seen_jobs.json. It is stated there once so the two paths cannot drift. Three of its values are named in /apply's own terms: cv_file/cover_letter_file are the paths written in Steps 2 and 3 here, source is the posting URL from Step 1, and the posting text item 7 archives is the one Step 1 read.
  • This step exists here because /scrape Step 5 routes straight into this skill. Without it, that path writes two documents and records nothing.

Step 4: Interview Preparation

  • Follow the framework in 07-interview-prep.md
  • Prepare STAR-format answers for likely questions
  • Identify role-specific talking points
  • Draft questions the candidate should ask the interviewer

Reference Files

File Purpose
01-candidate-profile.md Education, experience, skills, publications, awards
02-behavioral-profile.md Behavioral assessment, strengths, ideal environments
03-writing-style.md Tone, structure, do's and don'ts
04-job-evaluation.md Scoring framework for job fit
05-cv-templates.md LaTeX CV structure and tailoring rules
06-cover-letter-templates.md LaTeX cover letter structure and tailoring rules
07-interview-prep.md STAR examples, tough questions, roleplay guidelines
08-application-forms.md Portal free-text fields: self-introduction, project entries, character-limited pitches
09-web-research.md Fetching postings and company pages: trust boundary, the WebFetch 403 fallback, escalation order, claim verification

Quick Commands

The user may also ask for individual steps without the full workflow:

  • "Evaluate this job posting" - Step 1 only
  • "Write a CV for [company]" - Step 2 only
  • "Write a cover letter for [role] at [company]" - Step 3 only
  • "Help me prepare for an interview at [company]" - Step 4 only
  • "What jobs should I look for?" - Career strategy discussion using profile + evaluation framework