ai-job-search: Command for Claude Code

.claude/commands/interview.md

interview is a command for Claude Code from MadsLorentzen/ai-job-search. It costs 0 tokens per session (2,428 once invoked), scanned A, original, MIT.

An interview-preparation command for a scheduled job interview, combining the application record, company research, example answers, difficult questions, and questions to ask.

In plain words
What is it for?
Use it to create preparation for a particular tracked application and optionally practise through a mock interview.
Why use it?
It keeps interview preparation aligned with what the employer has already read in the application.

Command for Claude Code

Written for Claude Code: $ARGUMENTS substitution. Also seen: reads .claude/ paths.

This is MadsLorentzen/ai-job-search's own configuration. It tells Claude Code how to work on ai-job-search itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything ai-job-search configures →

About the project

AI Job Search is a Claude Code-based framework that runs on a user's machine to organize an AI-assisted job application process. It evaluates job postings, adapts CVs, writes cover letters, and helps prepare for interviews. The catalogue entries define commands, skills, instructions, an agent, and a setting for this workflow.

MadsLorentzen/ai-job-search · 47,502 stars · on GitHub

Reuse

Borrowing it

Nothing to install: this file belongs to MadsLorentzen/ai-job-search. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/MadsLorentzen/ai-job-search/master/.claude/commands/interview.md
Clone the repo
git clone --depth 1 https://github.com/MadsLorentzen/ai-job-search

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for interview

README.md
[![agentmods](https://agentmods.dev/badge/commands/madslorentzen/ai-job-search/interview/github.svg)](https://agentmods.dev/commands/madslorentzen/ai-job-search/interview)
Your own site
<a href="https://agentmods.dev/commands/madslorentzen/ai-job-search/interview"><img src="https://agentmods.dev/badge/commands/madslorentzen/ai-job-search/interview/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for interview

Your own site · 80×15
<a href="https://agentmods.dev/commands/madslorentzen/ai-job-search/interview"><img src="https://agentmods.dev/badge/commands/madslorentzen/ai-job-search/interview.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 0 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 2,428 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00000 $0.02428
Opus 5.5 $0.00000 $0.00971
Sonnet 5.5 $0.00000 $0.00486
Haiku 4.5 $0.00000 $0.00243

Measured 1mo ago against content hash 6db14af66791, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

interview scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

Origin

Copies of this mod

2 near-identical copies found in the catalogue:

  • interview — 100% identical, 2 lines differ
  • interview — 100% identical, 2 lines differ
.claude/commands/interview.md · 112 lines

How it starts

The opening of the file, as written. The whole thing — 112 lines — stays where its author put it; the contents beside it link to each section on GitHub.

/interview - Prepare for an Interview on a Tracked Application

You are preparing the user for a real, scheduled interview on one of their applications. The frameworks for this already exist - 07-interview-prep.md (STAR examples, tough questions, questions to ask, roleplay protocol) and the Company Research Checklist in 04-job-evaluation.md - and the /outcome archive records which stage the user is at and what earlier stages surfaced. This command wires them together into a stage-specific prep pack and an optional mock interview.

/apply optimizes what the company reads; /interview optimizes what the company hears. The bridge between them is consistency: the interviewer has read the submitted CV and cover letter, so everything prepared here must match what those documents claim.

Follow these steps in order.


Step 0: Parse Input

$ARGUMENTS may contain a company name (optionally with a role), e.g. /interview acme.

  • With an argument: match against job_search_tracker.csv rows (case-insensitive on company, then role). One match → proceed. Several → list and ask. None → this application isn't tracked; suggest /outcome <company> to register it first, or accept the posting and role details directly if the user wants to prep anyway.
  • Without an argument: list tracker rows whose status suggests a live process — an open status per the Tracker status vocabulary in /outcome (interview, offer, or recently applied; drafted is open but nothing was sent, so it never qualifies) — and ask which one. If the tracker is empty, ask for the company, role, and posting.

v1 preps for a specific application. Generic no-target practice is out of scope - if asked, prep against a real tracked application instead.


Step 1: Load the Application Context

  1. The archive (started by /apply, maintained by /outcome): derive <company>_<role> by the Subfolder naming rule in documents/README.md, then use documents/applications/<company>_<role>/.
    • job_posting.md - the exact posting the user applied to
    • cv_draft.tex and cover_letter.tex - what was actually submitted. These are what the interviewer read; every talking point must be consistent with their claims.
    • outcome.md - the stage reached so far and any recorded feedback from earlier stages. Feedback from stage N is the highest-value input for stage N+1 prep.
  2. Fallbacks (the application may predate /outcome): posting via WebFetch on the tracker row's source URL, or ask the user to paste it; CV via cv/main_<company>_<role>.* and cover letter via cover_letters/cover_<company>_<role>.*, deriving <company>_<role> by the Subfolder naming rule in documents/README.md. Never widen those globs to the company alone: with two roles at one company it would prep you from the sibling role's documents. State plainly which context is missing rather than guessing - and suggest /outcome <company> to build the archive for next time.
  3. Ask the user what this interview is (skip anything outcome.md already records): stage (phone screen / technical / case / final round), date, format (phone, video, onsite), and who is interviewing (names and titles, if known).
  4. Read the frameworks once - do not re-read them in later steps:
    • .claude/skills/job-application-assistant/07-interview-prep.md
    • .claude/skills/job-application-assistant/01-candidate-profile.md
    • .claude/skills/job-application-assistant/02-behavioral-profile.md
    • .claude/skills/job-application-assistant/04-job-evaluation.md

Read the full file on GitHub · 112 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 1mo ago Changed 6db14af66791
  2. 1mo ago First seen · 112 lines · 0 tokens per session scan A bb44121d39ed

Subscribe to this mod's changes

interview is a command published in the GitHub repository MadsLorentzen/ai-job-search (47,502 stars, last pushed today), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 2,428 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.