Agent skill

Job Application Assistant

by MadsLorentzen in MadsLorentzen/ai-job-search

Evaluates job postings against your profile, then tailors a LaTeX CV and cover letter and prepares interview answers for the roles you pursue.

MITAuto-check: notesBusiness, Finance & HR

Install Job Application Assistant

skills CLI
$ npx skills add MadsLorentzen/ai-job-search --skill job-application-assistant -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install MadsLorentzen/ai-job-search job-application-assistant --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/MadsLorentzen/ai-job-search.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/job-application-assistant .claude/skills/job-application-assistant && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
job-application-assistant
GitHub stars
45k
Token cost
~1.2k tokens
SKILL.md length
563 words
Files
10
Skills in repo
5
Repo updated
First seen
Licence
MIT

At a glance

Evaluates job postings against your profile, then tailors a LaTeX CV and cover letter and prepares interview answers for the roles you pursue.

  • Works in 4 steps: Research & Evaluate Fit → Tailor CV → Write Cover Letter → …
  • Judging how well a job posting fits your background before applying
  • SKILL.md covers Workflow, Reference Files and Quick Commands
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

When you give the agent a job posting as a link or text, it fetches the full text (a 403 response is not a dead end, and a separate research guide gives an escalation order, with the employer's own careers page preferred over an aggregator), analyzes required competencies and keywords, researches the company and scores the posting against your candidate profile using an evaluation framework. It shows an evaluation table and verdict, may suggest calling the employer before applying, and asks whether to proceed.

If you go ahead, it derives a company-and-role name once, reuses it for every file, picks the most relevant existing CV variant and writes a tailored LaTeX CV that adjusts the profile statement, skills, bullet emphasis and section order. The cover letter follows your writing-style rules, which ban em-dashes and cliches, and a template, then ties specific experience to the role. A later step records the application once both documents exist. The excerpt is cut off there.

Nine markdown files hold the rules and data: candidate profile, behavioral profile, writing style, job evaluation, CV templates, cover letter templates, interview prep, application forms and web research.

When your agent uses it

  • Judging how well a job posting fits your background before applying
  • Tailoring a CV to a specific role
  • Writing a cover letter in your own style for a posting
  • Preparing for an interview or filling in an application form

Example prompts

  • “Here is a job posting link. Score it against my profile and tell me whether I should apply.”
  • “Tailor my CV and write a cover letter for this data engineer role.”
  • “Prepare me for the interview at the company I just applied to.”

Requirements

  • Your candidate profile, writing style and CV variants in the project files
  • Network access to fetch postings and research companies
  • Pre-approved tools (allowed-tools): Read, Glob, Grep, WebFetch, WebSearch, Bash, Edit, Write, AskUserQuestion

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Research & Evaluate Fit
  2. Tailor CV
  3. Write Cover Letter
  4. Interview Preparation

What it can do on your machine

Read from SKILL.md and the folder at commit a011214. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Glob
    • Grep
    • WebFetch
    • WebSearch
    • Bash
    • Edit
    • Write
    • AskUserQuestion

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Job Application Assistant loads about 1.2k tokens when it runs. Until then it costs about 76 tokens; SKILL.md has 563 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~76
When it runs · the whole SKILL.md, loaded when a task matches
~1.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Glob, Grep, WebFetch, WebSearch, Bash, Edit, Write, AskUserQuestion

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from MadsLorentzen/ai-job-search at commit a011214, republished under its MIT licence (© MadsLorentzen). 563 words, ~1,187 tokens.

Download SKILL.mdSave it as .claude/skills/job-application-assistant/SKILL.md (or your agent's skills folder). This skill also uses 9 other files; get the full folder from GitHub.
name
job-application-assistant
description
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
allowed-tools
Read, Glob, Grep, WebFetch, WebSearch, Bash, Edit, Write, AskUserQuestion
framework_version
1.3.4

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
  • Before writing either document, derive <company>_<role> once by the Subfolder naming rule in documents/README.md; reuse that exact value for the CV, cover letter, and Step 3b archive path. If the rule says to stop because the derived name is empty, stop before creating any file.
  • 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. Four 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, deadline is the application deadline from the posting text Step 1 keeps verbatim (empty when the posting states none - never guess one), 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.
Show full SKILL.md (166 more words)Show less
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

FilePurpose
01-candidate-profile.mdEducation, experience, skills, publications, awards
02-behavioral-profile.mdBehavioral assessment, strengths, ideal environments
03-writing-style.mdTone, structure, do's and don'ts
04-job-evaluation.mdScoring framework for job fit
05-cv-templates.mdLaTeX CV structure and tailoring rules
06-cover-letter-templates.mdLaTeX cover letter structure and tailoring rules
07-interview-prep.mdSTAR examples, tough questions, roleplay guidelines
08-application-forms.mdPortal free-text fields: self-introduction, project entries, character-limited pitches
09-web-research.mdFetching 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

© MadsLorentzen, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 9 other files in .claude/skills/job-application-assistant of MadsLorentzen/ai-job-search.

  • SKILL.md
  • 01-candidate-profile.md
  • 02-behavioral-profile.md
  • 03-writing-style.md
  • 04-job-evaluation.md
  • 05-cv-templates.md
  • 06-cover-letter-templates.md
  • 07-interview-prep.md
  • 08-application-forms.md
  • 09-web-research.md

Open the folder on GitHubat commit a011214

Compare with similar skills

Job Application Assistant next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Job Application Assistant compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Job Application Assistant this skillMadsLorentzen/ai-job-search45k—~1.2kAutomated safety check: NotesMIT
LLM Intern Skillwanyichen06/LLMInternSkill326—~1.2kAutomated safety check: PassMIT
Career-Ops Job Search Centercareer-ops-hq/career-ops74k—~3.6kAutomated safety check: PassMIT
Internship Project Preparation ToolLiuMengxuan04/shushu-internship-tool2.1k—~2.3kAutomated safety check: PassCustom licence
Offer Negotiationreactive-resume/reactive-resume44k—~10kAutomated safety check: PassMIT
Backend and Agent Project Selectorlishuangqiang/backend-agent-resume-scout350—~1.4kAutomated safety check: PassApache-2.0

Similar skills

  • LLM Intern Skill

    wanyichen06/LLMInternSkill

    A skill your agent uses when polishing, diagnosing, tailoring, or exporting resumes for LLM, RAG, Agent, Agentic RL, post-training, pretraining, AIGC, search/ranking, multimodal, AI backend, or LLM…

    326 GitHub stars~1.2k tokensUpdated 2 mo ago
    Business, Finance & HRAuto-check passed
  • Career-Ops Job Search Center

    career-ops-hq/career-ops

    Routes job-search requests to modes for evaluating offers, scanning portals, generating tailored CVs, tracking applications and drafting outreach, starting from a pasted job URL or description.

    74k GitHub stars~3.6k tokensUpdated today
    Business, Finance & HRAuto-check passed
  • Internship Project Preparation Tool

    LiuMengxuan04/shushu-internship-tool

    Turns a target internship job description into a resume-ready, interview-ready project by finding and auditing GitHub projects and drafting resume bullets and interview Q&A.

    2.1k GitHub stars~2.3k tokensUpdated 3 mo ago
    Business, Finance & HRAuto-check passed
  • Offer Negotiation

    reactive-resume/reactive-resume

    Evaluates and negotiates job offers. An agent skill from reactive-resume/reactive-resume.

    44k GitHub stars~10k tokensUpdated today
    Business, Finance & HRAuto-check passed
  • Backend and Agent Project Selector

    lishuangqiang/backend-agent-resume-scout

    Finds backend or AI agent projects on GitHub that are worth putting on a resume, checks them against local source and writes a Markdown resume package.

    350 GitHub stars~1.4k tokensUpdated 3 mo ago
    Business, Finance & HRAuto-check passed
  • Resume Tailor

    reactive-resume/reactive-resume

    Tailors one resume to one specific job posting. An agent skill from reactive-resume/reactive-resume.

    44k GitHub stars~8.3k tokensUpdated today
    Business, Finance & HRAuto-check passed

More from MadsLorentzen/ai-job-search

  • freehire Tech Job Search

    MadsLorentzen/ai-job-search

    Searches live software, data and engineering job listings through the freehire.me public API, or fetches one posting, with filters for country, region and skills.

    45k GitHub stars~2.7k tokensUpdated yesterday
    Auto-check passed
  • LinkedIn Job Search

    MadsLorentzen/ai-job-search

    Searches LinkedIn's public job listings for any location or remote work and fetches the full description of a posting, with no login or API key.

    45k GitHub stars~1.2k tokensUpdated yesterday
    Auto-check passed
  • Job Skill Gap Upskill Planner

    MadsLorentzen/ai-job-search

    Compares the jobs you track with your candidate profile to find skill gaps, then builds a gap heatmap and a prioritized learning plan with study resources.

    45k GitHub stars~3.8k tokensUpdated yesterday
    Auto-check passed
  • Job Posting Scraper

    MadsLorentzen/ai-job-search

    Finds new job postings that match your profile through installed portal-search CLIs, dedupes against past runs and your application tracker, and rates each one's fit.

    45k GitHub stars~5.7k tokensUpdated yesterday
    Auto-check passed

Works with

Questions about Job Application Assistant

What does Job Application Assistant do?

Evaluates job postings against your profile, then tailors a LaTeX CV and cover letter and prepares interview answers for the roles you pursue. When you give the agent a job posting as a link or text, it fetches the full text (a 403 response is not a dead end, and a separate research guide gives an escalation order, with the employer's own careers page preferred over an aggregator), analyzes required competencies and keywords, researches the company and scores the posting against your candidate profile using an evaluation framework. It shows an evaluation table and verdict, may suggest calling the employer before applying, and asks whether to proceed.

When should I use Job Application Assistant?

Job Application Assistant fits situations like: judging how well a job posting fits your background before applying; tailoring a CV to a specific role; writing a cover letter in your own style for a posting; preparing for an interview or filling in an application form.

How do I install Job Application Assistant in Claude Code?

Run `npx skills add MadsLorentzen/ai-job-search --skill job-application-assistant -a claude-code`. Or copy the skill folder (.claude/skills/job-application-assistant in MadsLorentzen/ai-job-search) into .claude/skills/job-application-assistant in your project. Claude Code loads it when a task matches its description.

How do I install Job Application Assistant in Codex?

Run `npx skills add MadsLorentzen/ai-job-search --skill job-application-assistant -a codex`. Or copy the skill folder (.claude/skills/job-application-assistant in MadsLorentzen/ai-job-search) into .agents/skills/job-application-assistant in your project. Codex loads it when a task matches its description.

Can I use Job Application Assistant in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add MadsLorentzen/ai-job-search --skill job-application-assistant -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/job-application-assistant, .gemini/skills/job-application-assistant, .github/skills/job-application-assistant and .opencode/skills/job-application-assistant in your project.

What does Job Application Assistant need to run?

SKILL.md names no scripts, command-line tools or credentials: Job Application Assistant is instructions for the agent only. Our summary lists: Your candidate profile, writing style and CV variants in the project files; Network access to fetch postings and research companies. Its frontmatter pre-approves these tools: Read, Glob, Grep, WebFetch, WebSearch, Bash, Edit, Write, AskUserQuestion.

Does Job Application Assistant access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Job Application Assistant safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Job Application Assistant use?

Job Application Assistant is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Job Application Assistant use?

About 1.2k tokens (SKILL.md is roughly 4.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Job Application Assistant?

Skills that share tags, products or a category with Job Application Assistant: LLM Intern Skill (wanyichen06/LLMInternSkill, 326 stars), Career-Ops Job Search Center (career-ops-hq/career-ops, 74k stars), Internship Project Preparation Tool (LiuMengxuan04/shushu-internship-tool, 2.1k stars) and Offer Negotiation (reactive-resume/reactive-resume, 44k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Job Application Assistant?

MadsLorentzen (a GitHub user) maintains it in MadsLorentzen/ai-job-search, which has 45,410 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 8, 2026.

Source: MadsLorentzen/ai-job-search on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.