Job Application Assistant
A job search that runs on your machine: evaluate postings, tailor a LaTeX CV, write cover letters, and prep interviews — all inside Claude Code.
Evidence shows strong security posture: postings are explicitly treated as untrusted input (no instruction-following, no fetching embedded links), company claims require independent re-verification, cache contents are declared data-not-instructions, and write steps are rule-bound. README proactively warns that forks are public and leak personal data, offering a private-repo recipe. Deductions: allowed-tools includes broad Bash/Write/Edit without fine-grained scoping, actual least-privilege unverifiable statically; publisher identity unverified.
Cross-file references are consistent (Step 3b designed to mirror /apply Step 6b to prevent drift, template escaping and mandatory compile loops carefully specified, known failure modes diagnosed). Deductions: static review, key paths (lualatex/xelatex compile, verify_pdf.py, salary_lookup.py) not reproduced; happy path plausible but no directly visible tests or failure-feedback evidence for this skill; capped at 10 by static calibration.
Trigger keywords explicit, workflow clearly staged, audience clear, framework declared language/country-agnostic with out-of-scope (Danish portal search) noted. Deductions: no declared Chinese-market support; writing rules lean English/Danish; the whole flow depends on Claude Code and overseas network services, with mainland-China reachability undiscussed.
Well-layered information architecture (SKILL.md plus nine numbered reference files with progressive disclosure), per-file framework_version with a CI version-bump check, MIT license, clear maintainer identity and upstream update path. Deductions: personalization depends on /setup and repo-level files (documents/README.md, .claude/commands/apply.md) not fully provided here, leaving hidden assumptions; changelog not confirmed in supplied material.
Workflow is complete (evaluate→CV→cover letter→archive→interview prep), output formats are concrete and deliverable (LaTeX PDFs, plain-text form fields), and README offers the author's own 69-application outcome plus a third-party walkthrough. Deductions: static review cannot confirm outputs are directly usable; core success claim is the author's own narrative; comparative-benefit evidence over manual alternatives is limited; capped at 7, scored 6.
CI badge, cover_example.tex as a CI smoke test, a third-party YouTube walkthrough and a Trendshift badge provide cross-corroboration leads; claims and inference are well separated (author labels his personal story). Deductions: no tests executed; specific claims such as the Workday import failure cannot be independently checked statically; coverage of key paths by CI/tests is not visible; capped at 5, scored 4.
- Static review only; no scripts or compiles were executed, runtime behavior unverified.
- The repo warns public forks expose personal data written by /setup; use a private repository for a personal job search.
- Core flow depends on Claude Code plus LaTeX/Bun; mainland-China network reachability is undisclosed and Chinese-market support is not declared.
- Postings and the company-research cache are declared untrusted data; still skim generated output before sending.
- Effectiveness claims rest mainly on the author's self-reported outcome, which is anecdotal.
What does this skill do, and when should you use it?
This is the core skill of the ai-job-search repository, living at .claude/skills/job-application-assistant/, and it turns Claude Code into a structured job-application assistant. It runs a fixed workflow: fetch and analyze a job posting, score it against your profile with an evaluation framework, produce a tailored LaTeX CV and cover letter, archive the application, and prepare interviews with STAR-format answers. Nine reference files cover the candidate profile, writing style, fit scoring, and LaTeX templates. The author personally used this exact workflow — 69 tailored applications, 20 first interviews, one signed contract — to land an AI engineer role. The core evaluation and writing flow is language- and country-agnostic, but the bundled job-portal search skills target the Danish market and need swapping for other regions.
It triggers on keywords like job posting, cover letter, resume, interview prep. It executes four steps: (1) fetch the posting via WebFetch (with a documented escalation order on 403s), keep the full text verbatim, research the company, and score fit using the framework in 04-job-evaluation.md, including whether to call the employer before applying; (2) pick the most relevant CV variant from cv/ and produce main_<company>_<role>.tex with adjusted profile statement, skills, and experience bullets; (3) write cover_<company>_<role>.tex under strict style rules (no em-dashes, no cliches); (4) record the application — both documents, posting URL, and deadline — into the archive; (5) prepare STAR answers, role-specific talking points, and questions to ask the interviewer per 07-interview-prep.md. Compiling the documents to PDF requires a local LaTeX install (lualatex for the CV, xelatex for the cover letter).
- A job seeker with a posting URL who wants an objective fit evaluation before deciding whether to apply
- A candidate who needs a tailored, two-page-max LaTeX CV plus a one-page cover letter for a specific company and role
- An applicant with a scheduled interview who wants STAR answers grounded in their real experience, plus questions to ask
- A systematic job hunter who wants every application (documents, deadline, original posting text) archived and tracked
- A user who wants only one step at a time, e.g. 'Write a cover letter for [role] at [company]' or 'Evaluate this job posting'
What are this skill's strengths and limitations?
- Complete pipeline covering the whole application cycle: evaluation, CV, cover letter, archiving, interview prep, with explicit handoffs between steps
- Honesty rules enforced: all CV and cover letter claims are verified against your profile; unsupported keywords are acknowledged as gaps, never stuffed
- Structured, editable reference files let you customize the scoring framework and STAR examples to yourself
- Proven by real use: the author landed a job with this exact workflow and published the application funnel
- MIT licensed, fully local (fork it and own it), with postings treated as untrusted input and injection guidance included
- Depends on the repo's file layout and Claude Code command system; extracting it for another agent environment requires manual adaptation
- Requires a local LaTeX install with specific engines (lualatex for CV, xelatex for cover letter); minimal TeX setups need extra packages
- The bundled job-portal search covers the Danish market only; elsewhere you need /add-portal, linkedin-search (against LinkedIn's ToS for automated access, personal low-volume use only), or freehire-search
- The PDF-text-layer ATS check depends on optional pdftotext and degrades to a visual review without it
- The repo is independent and unaffiliated with Anthropic, and output quality hinges heavily on how detailed your profile files are — thin profiles yield generic results
How do you install this skill?
The skill ships as part of the ai-job-search collection; the documented path is to fork the whole repo: gh repo fork MadsLorentzen/ai-job-search --clone, then install prerequisites from the README (Python 3.10+, Bun, a LaTeX distribution with lualatex and xelatex). The skill lives at .claude/skills/job-application-assistant/. Steps for extracting just this folder into another environment are undocumented, and the skill depends on repo-level reference files (01–09) and command definitions like /apply, so installing the collection is the reliable route.
How do you use this skill?
After installing, run /setup inside Claude Code to fill in your profile files (candidate profile, behavioral profile, writing style, etc.). Then supply a posting URL or paste the full posting text to trigger the full workflow. You can also request individual steps, e.g. "Evaluate this job posting" (Step 1 only), "Write a CV for [company]" (Step 2 only), or "Help me prepare for an interview at [company]" (Step 4 only). The repo's /scrape and /apply commands route into this skill automatically.
How does this skill compare with similar options?
Compared with generic LaTeX resume templates, this framework adds compile-and-inspect PDF verification, ATS checks on the extracted text layer, relevance-weighted CV cutting, and a drafter-reviewer two-agent pass. Compared with third-party SaaS job tools that hold your data, it runs entirely locally and you keep ownership — at the cost of forking, filling in your profile, and maintaining updates yourself.