How /interview Builds Stage-Specific Interview Preparation Packs from Application Archives

The /interview command executes a deterministic six-step pipeline that parses your application archive—stored under documents/applications/<company>_<role>/—and generates a stage-specific markdown file containing likely questions, STAR answer mappings, verified company research, and logistics tailored to the current interview round.

The MadsLorentzen/ai-job-search repository automates job search workflows through Claude-compatible commands. When you run /interview, the system builds stage-specific interview preparation packs from application archives by combining your submitted materials with framework assets and real-time company research, ensuring every talking point aligns with what the recruiter actually saw.

Step 0: Parse the Command Input

The process begins in .claude/commands/interview.md by accepting an optional company argument (e.g., /interview acme). If provided, the command searches job_search_tracker.csv for the matching company and role. If omitted, it lists all rows with status interview, offer, or recently applied, allowing you to select the target application.

Step 1: Load Application Context from the Archive

The command reads the application archive created by the /outcome command, located at documents/applications/<company>_<role>/. It specifically loads:

  • job_posting.md — The original job description
  • cv_draft.tex and cover_letter.tex — The exact files submitted to the recruiter
  • outcome.md — The stage history and any feedback received

If these files are missing, the system falls back to generic CV and cover-letter templates and notifies you which specific pieces are absent from the archive.

Step 2: Execute Interview-Focused Company Research

Using the Company Research Checklist defined in .claude/skills/job-application-assistant/04-job-evaluation.md, the command gathers mission statements, recent news, LinkedIn data, and media coverage via WebFetch. When interviewer names are known, it also retrieves their public profiles to infer likely interview angles. Every fact is verified before inclusion in the prep pack.

Step 3: Build the Stage-Specific Prep Pack

The core output is a markdown file saved as documents/applications/<company>_<role>/interview_prep_<stage>.md, created anew for each interview stage (phone screen, technical, final). This pack contains six components:

  1. Likely questions — Prioritized based on outcome feedback, fit-evaluation gaps, posting requirements, and stage type
  2. STAR answer mapping — Re-using existing STAR examples from .claude/skills/job-application-assistant/07-interview-prep.md or drafting new ones strictly from .claude/skills/job-application-assistant/01-candidate-profile.md
  3. Consistency brief — A checklist of claims made in your CV and cover letter that must be defensible during the interview
  4. Tough, customized questions — Drawn from 07-interview-prep.md with verified company hooks
  5. Questions to ask — Curated from the same source and tuned to the specific interview stage
  6. Logistics — Format-specific tips, interview date, and interviewer names

Step 4: Offer an Interactive Mock Interview

After generating the pack, the system prompts you to role-play the interview. If accepted, the dialog follows the "Roleplay Guidelines" inside 07-interview-prep.md, delivering feedback calibrated against .claude/skills/job-application-assistant/02-behavioral-profile.md. This step is purely interactive—no files are written during the chat flow.

Step 5: Close the Feedback Loop

The command concludes by reminding you to run /outcome <company> after the interview to store new feedback for subsequent rounds. If you approved any new STAR answers during the session, it advises that they have been appended to 07-interview-prep.md for future reuse.

Core Architecture Concepts

The /interview pipeline relies on three architectural pillars defined in the repository:

Application Archive — A per-company/role folder under documents/applications/ that immutably stores the job posting, submitted CV/cover letter, and ongoing outcome logs. This ensures the prep pack always references the exact materials the recruiter received.

Framework Assets — Reusable knowledge files including 07-interview-prep.md (STAR templates and tough questions), 04-job-evaluation.md (company research criteria), and 01-candidate-profile.md (factual candidate data). These assets ensure consistent, strategy-driven preparation.

Stage-Aware Logic — The current interview stage (phone screen, technical, or final) influences question priorities, logistics tone, and the specific "questions to ask" subset, guaranteeing the prep pack matches the expected rigor and format of the upcoming round.

Example Usage and File Locations

You trigger the command through a Claude-compatible interface:


# Example: invoking the command for Acme Inc. Senior Engineer role

import subprocess

company = "Acme"
role = "Senior Engineer"
subprocess.run(["claude", "interview", f"{company}_{role}"])

# Resulting file location:

# documents/applications/Acme_Senior Engineer/interview_prep_technical.md

To inspect the generated pack directly:

$ cat documents/applications/Acme_Senior\ Engineer/interview_prep_technical.md

# Displays: Likely questions, STAR mappings, consistency checklist, etc.

Alternatively, you can preview the content without storing it by asking the assistant:


/interview Acme Senior Engineer

The assistant displays the markdown content in the chat while simultaneously writing it to the archive location.

Summary

  • The /interview command parses input against job_search_tracker.csv and loads the full application archive from documents/applications/<company>_<role>/.
  • It generates interview_prep_<stage>.md containing six sections: likely questions, STAR mappings, consistency briefs, tough questions, questions to ask, and logistics.
  • Company research uses the checklist in 04-job-evaluation.md, while behavioral content pulls from 07-interview-prep.md and 01-candidate-profile.md.
  • The system supports interactive mock interviews using roleplay guidelines from 07-interview-prep.md and feedback criteria from 02-behavioral-profile.md.
  • New STAR answers approved during the session are automatically appended to 07-interview-prep.md for future applications.

Frequently Asked Questions

What happens if my application archive is missing files?

If cv_draft.tex, cover_letter.tex, or outcome.md are missing from documents/applications/<company>_<role>/, the command falls back to your generic CV and cover-letter files. It informs you which specific pieces are absent so you can verify whether the /outcome command was run after the initial application.

How does the command determine which interview stage to prepare for?

The command reads the current stage from outcome.md in the application archive. The stage type (phone screen, technical, or final) dictates which questions are prioritized, what logistics are included, and which "questions to ask" are selected from 07-interview-prep.md.

Where are the generated interview preparation packs stored?

Each pack is written to documents/applications/<company>_<role>/interview_prep_<stage>.md. This directory is typically git-ignored for privacy, ensuring your interview research remains local while the repository structure stays portable.

Can I use /interview without having run /outcome first?

Yes, but with reduced fidelity. Without the /outcome archive, the command cannot access the specific job posting, submitted CV version, or stage history stored in outcome.md. It will use generic templates and provide a basic prep pack without the consistency brief or stage-specific customization derived from your actual submission materials.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →