Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add commands/treymorgan/jobsearch-apply-mcp/interviewgit clone --depth 1 https://github.com/treymorgan/jobsearch-apply-mcpWhat 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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00000 | $0.02374 |
| Opus 5 | $0.00000 | $0.01187 |
| Sonnet 5 | $0.00000 | $0.00475 |
| Haiku 4.5 | $0.00000 | $0.00237 |
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 today.
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.
This is a copy
100% identical to interview — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
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.csvrows (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 recentlyapplied;draftedis 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
- The archive (started by
/apply, maintained by/outcome): derive<company>_<role>by the Subfolder naming rule indocuments/README.md, then usedocuments/applications/<company>_<role>/.job_posting.md- the exact posting the user applied tocv_draft.texandcover_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.
- Fallbacks (the application may predate
/outcome): posting via WebFetch on the tracker row'ssourceURL, or ask the user to paste it; CV viacv/main_<company>*.texand cover letter viacover_letters/cover_<company>_*.tex. State plainly which context is missing rather than guessing - and suggest/outcome <company>to build the archive for next time. - Ask the user what this interview is (skip anything
outcome.mdalready records): stage (phone screen / technical / case / final round), date, format (phone, video, onsite), and who is interviewing (names and titles, if known). - 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
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.
- today First seen · 112 lines · 0 tokens per session scan A bb44121d39ed
interview is a command published in the GitHub repository treymorgan/jobsearch-apply-mcp (0 stars, last pushed 3d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 2,374 tokens. A static security scan graded it A with 0 findings. It is 100% identical to interview, differing in 0 lines, and is treated as a copy.
Other commands, from other repositories
compile-today
Compiles today's CVs, runs the ATS check, and archives (doesn't touch the tracker).
interview-prep
Read workflows/interview-prep.md, profile/candidate.yaml, rules/interview-roteiro.md + rules/job-evaluation.md (to re-fetch the job description) and rules/cv-rules.md (for the overlap logic reused when picking the project). Execute the steps described there for the company received in $ARGUMENTS.
apply-batch
Read workflows/apply-batch.md, profile/candidate.yaml and rules/cv-rules.md.
confirm
Read workflows/confirm.md and profile/candidate.yaml (the tracker.backend field decides whether registration goes to Notion, CSV, or none). Execute the steps described there for the indices/names received in $ARGUMENTS.
daily
Read workflows/daily.md and profile/candidate.yaml (run python3 scripts/validateprofile.py first to validate). Execute the steps described there, using rules/job-evaluation.md for the fit score.
quick-eval
Quick job evaluation. Paste a JD and get a score plus one-paragraph summary. Faster than a full evaluate. Use when someone says 'quick eval', 'quick score', or 'just give me a number'.