Prepare for an Interview with a Claude Skill and an Agent
Turning a job description into a tailored interview study pack
When you prepare for a software interview, the hardest part is not knowing the material. Every role is a slightly different bet: this company runs Kotlin on Postgres, that one lives and dies by Kafka, a third wants you to reason about idempotency in a payments pipeline. Generic prep answers a generic interview. The interview you actually walk into is specific.
This is the story of pointing two small Claude Code tools at that problem. One writes a study pack tailored to a single job. The other reads it back and tells me, before I trust it, whether it is any good. The pack is real output I can open in a browser.
The Problem: Prep That Fits Every Job and No Job
Open any interview-prep site and you get the same thing: a wall of “top 50 backend questions,” none of them shaped for the company in front of you. It is not wrong. It is just untargeted. You spend the night before an interview reading about a hash map when the actual conversation is going to be about consistency models on their exact database.
I wanted the opposite. Given a job posting, I wanted a pack that named the company’s stack, framed system design around their product, and asked the questions an interviewer at that company would actually ask. Writing one by hand is a few hours of reading the JD, choosing topics, and drafting answers that read as senior rather than as flashcards. Doing it well, every time, for every role, is more discipline than most of us have at 11pm.
So I turned the authoring into a skill and the quality gate into an agent.
The Toolkit: A Skill to Author, an Agent to Review
There are two pieces, and they do very different jobs.
The skill (interview-prep) is the author. You hand it a job description, a URL or pasted text, and a size. It fetches the posting, detects the discipline and the stack, picks a topic track, and writes one content model. A small build script then compiles that model into two self-contained HTML editions: a tracker with per-section checkboxes and a progress ring that remembers where you stopped, and a reading edition that is just the material, clean and scrollable. Both come from the same source, so the content is written once and the presentation is fixed and known-good.
The agent (interview-content-reviewer) is the critic. It is read-only. It opens the pack the skill just wrote, checks it against the schema and the house style, runs the mechanical checks I would otherwise forget, and hands back a verdict: ship, fix first, or blocked. It does not touch the file. It tells me what is wrong and where, and lets me decide.
The skill is the driver. The agent is the second pair of eyes.
Why a Skill and an Agent, Not Just One
It would be tempting to fold the review into the skill and be done. I did not, and the reason is how each thing is built to run.
A subagent in Claude Code is a one-shot worker. You give it a job, it does the job in its own context, and it comes back with an answer. That shape is perfect for a review: read everything, form a judgment, report, exit.
Get Hernán Cussi’s stories in your inbox
Join Medium for free to get updates from this writer.
Authoring is a conversation, and conversations belong in a skill that owns the loop. Review is a verdict, and a verdict belongs in an agent that reads with fresh eyes and no stake in what it is judging. Keeping the reviewer separate also keeps it honest. It did not write the content, so it has nothing to defend.
How to Use Them
Authoring is one line. You point the skill at the posting and tell it how deep to go.
/interview-prep https://bitso.com/jobs/7777583003 size: largeEverything before an optional pipe is the job. Everything after it is optional background, a resume or a portfolio, used to bias the depth toward what you already know. Size runs from short, a night-before refresher, to xl, a comprehensive pack with framework specifics and follow-up questions.
When it finishes, you review before you trust it:
Use the interview-content-reviewer agent to review the interview packGive the reviewer the raw job description and the size you asked for, and it gets sharper still, because it can check the pack against the real posting instead of inferring intent.
What Made This Work
I ran this for a real posting: the Software Engineer role on Bitso’s Nexus team, owning the pay-in and pay-out systems for a crypto platform with millions of users. Java at scale, Apache Kafka, event sourcing and CQRS, sagas, Postgres. The skill produced a pack of eight topics, sixteen reading blocks, and thirty-one questions, each one framed for money movement rather than for a textbook, where correctness, idempotency, and exactly-once reasoning matter more than raw features.
The result is two editions from one source. The tracker is for working through the pack over several days:
Tracker edition of the Bitso pack
The reading edition is the same content stripped to a clean, distraction-free scroll, with the questions as click-to-reveal cards:
Reading edition of the Bitso pack
Try It Yourself
Both tools live in the claude-code-toolkit, and installing them is a copy. Drop the interview-prep skill into your project’s .claude/skills/ directory and the interview-content-reviewer agent into .claude/agents/, or put both under ~/.claude/ to make them available in every project. Claude Code picks them up with no further configuration.
your-project/
.claude/
skills/
interview-prep/
agents/
interview-content-reviewer.mdFrom there it is one line to author and one to review. If you want to see the output before you run anything, a finished set of packs generated exactly this way lives in the interview-prep repo.
If you would rather not assemble anything, that same repo is the shortcut. Fork interview-prep and you get both the skill and the agent already wired up under .claude/, alongside example packs. Open it in Claude Code and you can generate your first pack immediately.
The shape is reusable well beyond interview prep. A skill that authors and a build step that renders, paired with a read-only agent that holds the output to a written bar, is a pattern you can drop onto anything where the work is “produce something, then make sure it is actually good.” Content, configs, migrations, release notes.
Start with the bar. Write down what “good” means concretely enough that an agent can check it. Then let the skill write the first draft, and let the agent argue with it until the pack says something you would actually want to walk into the room with.








