interview
Skill1 starsChanged 2 days agoMITView on GitHub
Records an online job interview locally (microphone + system audio), transcribes it on the user's machine with Whisper and reviews it - questions asked, how the user answered, better answers, new facts about the role and next steps - updating the application log and the profile. Keeps a question bank across all interviews (grouped questions, how each was answered over time, best answer) and uses it to prepare the next interview for a given job posting. Use when the user says they are about to start an interview or call, asks to record, stop or transcribe one, wants to review / debrief an interview transcript, or wants to prepare for an upcoming interview (/interview start, /interview stop, /interview review, /interview prep).
101 other projects use a version of this.
Adopted by
Most recently taken up by
- Renozoic-Foundry/forge-publictheir own version, first seen Nov 15, 2026
- 8529398670/Claude-Skillstheir own version, first seen Nov 15, 2026
- Soe-Reh/soes-skillstheir own version, first seen Nov 15, 2026
- authrain-cloud-abdullahformuli/unsloptheir own version, first seen Nov 15, 2026
- andymai/skillstheir own version, first seen Nov 15, 2026
- felipeam86/pipe-skillstheir own version, first seen Nov 15, 2026
Used with
Projects with it also use fetch-library-docs, contributor and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
Rehan-Ul-HaqSkillfetch-library-docs
Fetches official documentation for external libraries and frameworks (React, Next.js, Prisma, FastAPI, Express, Tailwind, MongoDB, etc.) with 60-90% token savings via content-type filtering. Use this skill when implementing features using library APIs, debugging library-specific errors, troubleshooting configuration issues, installing or setting up frameworks, integrating third-party packages, upgrading between library versions, or looking up correct API patterns and best practices. Triggers automatically during coding work - fetch docs before writing library code to get correct patterns, not after guessing wrong.
Also in 4 projects that use this
NimbleBrainIncSkillcontributor
Get started contributing to NimbleBrain open source — find an integration to build, set up your environment, propose an idea, or check on your work. Use when onboarding as a contributor. Triggers include "I'm a new contributor", "what should I build", "show me open issues", "file an issue".
Also in 3 projects that use this
mjunaidcaSkillbrowsing-with-playwright
Browser automation using Playwright MCP. Navigate websites, fill forms, click elements, take screenshots, and extract data. Use when tasks require web browsing, form submission, web scraping, UI testing, or any browser interaction. NOT when only fetching static content (use curl/wget instead).
Also in 4 projects that use this
qa-amanSkillteach-me
Teach a topic, video, article, codebase change, spec, or transcript until the user demonstrably understands it, using staged instruction, a running checklist doc, and quizzes. Use whenever the user says "teach me", "explain this in detail", "help me understand X", "/teach-me", "walk me through this", "I want to learn X", "understand this deeply", or pastes a YouTube URL, article, paper, PR, or spec and asks to understand it rather than summarize it. Also use when the user wants study notes or raw material from a source they are learning. Do NOT use for a quick factual lookup, a summary request, or when the user just wants the answer.
Also in 8 projects that use this
trebaudSkillfind-unknowns
Workflow for surfacing a task's unknowns before, during, and after implementation — blind spot pass, brainstorm/prototype, interview, references, implementation plan, deviation notes, quiz. Use when starting work in an unfamiliar domain or codebase, when a task feels underspecified, when the user says "find my unknowns", "blindspot pass", "what am I missing", "help me scope this", or when a long task came back wrong.
Also in 3 projects that use this
donatassimkusSkilloffer
Offer design, pricing strategy, and business model architecture. Invoke when asked about making an offer better, pricing a product or service, naming an offer, raising prices, generating fast cash, increasing lifetime value, finding the right customer, qualifying buyers, or designing a business model where customers pay for their own acquisition. Use when someone says their offer isn't converting, they need to charge more, they want to add bonuses or guarantees, or they need a money model for their business.
Also in 3 projects that use this
Other versions101 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 101
- claude-code-best/claude-code★ 23ksame name
- Q00/ouroboros★ 6.3ksame name
- Hisn00w/ASu-skills★ 6.1ksame name
- boshu2/agentops★ 453same name
- genkovich/sdd★ 187same name
- jvm-skills/jvm-skills★ 140same name
- kv0906/pm-kit★ 138same name
- tobieapb/claude-interactive-documentation-workflow★ 105same name
- panaversity/claude-code-skills-lab★ 57same name
- roman01la/skills-agents★ 48same name
91 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository4 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- cv-tailorSkill
- profile-auditSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
13 rules. 0 are common, 9 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 86 edited versions we read keep these.
9
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 22
If uv is missing, tell the user to install it (winget install astral-sh.uv) and stop.
- Very specific: line 42
Check nothing is already recording: look for workspace/output/*/interviews/*/recording.lock.
- Distinctive: line 53
ask the interviewers for consent at the start (e.g.
- Very specific: line 54
when finished: /interview stop (or press Ctrl+C in the recorder window if the session is gone).
- Distinctive: line 56
Do nothing else while the interview runs.
- Very specific: line 61
Create the STOP file in that folder and wait until recording.lock disappears (a few seconds).
- Distinctive: line 71
Run /interview review on the new transcript.
- Distinctive: line 92
if there is none: create a group with the next ID, under an existing theme or a new one.
- Distinctive: line 93
update the index rows and add the interview to Interviews included.
- Distinctive: line 95
Write it directly: it is derived from the review, not new facts about the user.
- Distinctive: line 100
If the agent keeps persistent memory about the user's job search, update it with the process stage and next steps.
- Distinctive: line 123
If the interview language is unknown, add the best answers of the high-probability questions in the other likely language too.
- Distinctive: line 131
Echo or interviewers' voices in the ME track: no headphones. The review still works.
“Common” is measured: kept by at least 6 in 10 of the 86 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Interview
Records an online interview, transcribes it locally and reviews it. The audio never leaves the user's machine: only the transcript text reaches the model. Every review feeds a question bank shared by all applications, which /interview prep uses to predict and rehearse the questions of the next interview.
Talk to the user in their own language. Write review.md, the question bank and prep sheets in the user's language; quotes from the transcript stay in the interview's language.
Golden rule (same as cv-tailor): never invent data. Improved answers use only facts from the profile (workspace/profile/) or from the transcript.
Tools
The engine lives in tools/interview-recorder/ (see its README.md). Both scripts are self-contained uv scripts: uv run installs Python 3.12 and the dependencies on first use. Run them from that folder.
record.py --out <dir> [--mic <name>]: recordsme.flac(microphone) andthem.flac(system audio via WASAPI loopback). Windows only. The microphone is the Windows default input unless--micpicks another by part of its name. While running it keeps<dir>/recording.lock; it stops when<dir>/STOPappears, on Ctrl+C, or after--seconds N.record.py --list [--mic <name>]: shows which microphone and output device would be used, and lists every microphone.transcribe.py <dir> [--lang <code>] [--delete-audio]: writes<dir>/transcript.mdwith lines like[00:03:12] THEM: .../[00:03:20] ME: .... Without--langit detects one language from both tracks and prints it (Detected language: ...). Uses the NVIDIA GPU if available, otherwise the CPU. The first run downloads several GB (CUDA libraries and the model).
If uv is missing, tell the user to install it (winget install astral-sh.uv) and stop.
Where things go
Each interview gets its own folder inside the application's folder:
workspace/output/<company>-<role>/interviews/<YYYY-MM-DD>-<stage>/
├── me.flac, them.flac (deleted after transcribing, unless the user wants to keep them)
├── transcript.md
└── review.md<stage> is a short slug for the round (recruiter, technical, manager, case, final…). If the application has no folder yet, create workspace/output/<company>-<role>/ with the same slug rules as cv-tailor. Prep sheets go in the application folder as prep-<YYYY-MM-DD>-<stage>.md.
The question bank lives in workspace/interview-bank/ (index.md, experience.md, technical.md); its format is in question-bank.md. Read that file before creating or updating the bank. Everything stays inside workspace/ (git-ignored).
/interview start [application] [stage]
- Find the application. Match what the user said against the folders in
workspace/output/and the rows ofworkspace/applications.md. If it is ambiguous or missing, ask (one short question). Ask for the stage only if it is not obvious. - Check nothing is already recording: look for
workspace/output/*/interviews/*/recording.lock. If one exists, tell the user and ask whether to stop it first. - Check the devices: run
uv run record.py --listand show the two device names plus the list of microphones. Ask in one line which microphone the call app (Teams, Meet, Zoom) is using, since it is often not the Windows default (e.g. headset mic in the call, webcam mic as default). If it differs, pass it with--mic <part of its name>. Bluetooth headsets appear only while connected. If the microphone looks like a built-in laptop mic and the output like laptop speakers, warn in one line: without headphones, the interviewers' voices leak into the ME track; use headphones. Start the recording detached from this session, so it survives if the editor or the session restarts. From PowerShell (add
'--mic', '"<name>"'to the list when needed):Start-Process -FilePath uv -ArgumentList @('run', '"<abs path>\tools\interview-recorder\record.py"', '--out', '"<abs path to the interview folder>"') -WindowStyle MinimizedThen wait until
recording.lockappears in the folder (up to ~60 s on the first run, while uv installs dependencies). If it does not appear, report the error.- Tell the user, briefly:
- recording to
<folder>; a minimized console window is the recorder; - ask the interviewers for consent at the start (e.g. "Do you mind if I record this for my notes?"). Recording rules differ by country; some require everyone's consent;
- when finished:
/interview stop(or press Ctrl+C in the recorder window if the session is gone).
- recording to
Do nothing else while the interview runs. Never offer live help or answers during the interview.
/interview stop
- Find the running recording (
recording.lock, see above). If there is none but a folder hasme.flac/them.flacand notranscript.md, go straight to step 3. - Create the
STOPfile in that folder and wait untilrecording.lockdisappears (a few seconds). Report the duration if visible. - Pick the language. Pass
--langonly if the user said which language the interview was in. Otherwise omit it and lettranscribe.pydetect it. Do not infer it from the CV or the posting: the user often doesn't know beforehand, and it often differs (e.g. a Spanish consultancy interviewing in Spanish for an English-speaking client). When the run finishes, tell the user the detected language. If it is wrong, or the interview switched languages, re-run with--langset to the main language (keep the audio until the transcript looks right, then delete it). - Make sure no call is running. Transcribing is heavy (GPU, several CPU cores, a few GB of RAM for an hour of audio) and can make a video call stutter on a modest machine. Never transcribe while any
recording.lockexists. Ask in one line whether the call is over and nothing else is about to start; if the user has another call soon, leave the audio in place and transcribe later (/interview stopagain, or "transcribe the pending interview"). Transcribe in the background (it takes minutes for a long interview; the first run also downloads the model). It runs below normal priority, but heavy work may still feel slower meanwhile:
uv run transcribe.py "<folder>" [--lang <code>] --delete-audioDrop
--delete-audioif the user asked to keep the audio, or if the language was detected and the user may want a re-run; delete the FLAC files once the transcript is confirmed. Tell the user it is running; continue with the review when it finishes.- Run /interview review on the new transcript.
/interview review [transcript]
Without an argument, use the most recent transcript.md without a review.md next to it. The user may also paste a transcript or point to one made elsewhere (e.g. Teams' own transcription).
- Read the context: the transcript, the application folder (tailored CV, cover letter, any notes such as company research or earlier reviews), its row in
workspace/applications.md, andworkspace/profile/. - Read the transcript critically. Whisper misspells names, companies and technical terms (e.g. "chunking" may come out as "chunky"); fix obvious ones silently and mark doubtful ones with
[?]. Ignore hallucinated filler on silences ("Thanks for watching"). ME is the user; THEM can be several interviewers on one track: tell them apart from context when possible. - Write
review.mdnext to the transcript with these sections:- Summary: who was there (names and roles, if said), the stage, length, overall impression in 2-3 lines.
- Questions and answers: for each substantive question, in order:
- the question (timestamp + close paraphrase or quote);
- what the user answered, in 1-3 lines;
- assessment: did it answer what was asked; structure (STAR for behavioral questions); technical accuracy; concrete examples and metrics; length; missed opportunities;
- a better answer when the original was weak or incomplete, built only from the profile and the transcript. If the best answer needs knowledge the user may not have (a technical concept), explain the concept briefly and say so.
- What they told us: new facts about the role, team, stack, process, compensation, benefits, location or work mode, with timestamps.
- Questions the user asked and what was answered; questions worth asking next time.
- Next steps and preparation: what comes next in the process and what to prepare, most important first.
Update the question bank (format in question-bank.md). If
workspace/interview-bank/does not exist, create it; if earlierreview.mdfiles exist that are not in its Interviews included table, offer to merge them first, oldest first, so the history keeps its order. Then, for each substantive question of this interview (not salary or logistics):- find the group that tests the same ability, reading
index.mdfirst and opening only the files it points to; - if there is one: add the wording under How it was asked if it is new, add a History line with the rating (✅ / ⚠️ / ❌, the same judgment as the review), recompute Status and Asked, update the Best answer (the user's own answer when it was ✅), and add any new JD signals;
- if there is none: create a group with the next ID, under an existing theme or a new one;
- update the index rows and add the interview to Interviews included.
Write it directly: it is derived from the review, not new facts about the user. Report it in step 5 as one line (e.g. "bank: 4 questions updated, 2 new; T-007 went from weak to good").
- find the group that tests the same ability, reading
- Propose updates in one message, one line each, and apply them once the user confirms:
workspace/applications.md: status (e.g.interview) and a short note about this round.- Profile: new facts the user stated about themselves (achievements, metrics, skills, anecdotes) go to the matching file with
source: interview <company>-<role> (<YYYY-MM-DD>), following the rules inworkspace/profile/README.md. A strong answer can become a reusable entry instories.md. - Application notes: facts about the company or role go to a notes file in the application folder (an existing one if there is one, such as
company-research.md). - If the agent keeps persistent memory about the user's job search, update it with the process stage and next steps.
- Finish with the three or four most useful takeaways in the chat, and the path to
review.md.
/interview prep [application] [stage]
Prepares the next interview of an application from the question bank. It reads the bank but never changes it: only real interviews (/interview review) do.
- Read the context: the application folder (job description or posting, tailored CV, company research, interviewer profiles, earlier reviews of this application), its row in
workspace/applications.md,workspace/profile/andworkspace/interview-bank/index.md. Ask for the stage only if it is not obvious (screening, technical, manager, executive…). If the posting text is missing, ask for it. Estimate how likely each bank question is, from the index:
- JD match: its JD signals appear in the posting (strong if they are core requirements, medium if secondary);
- stage fit: its Type and Stages fit this round (a screening asks experience and motivation; a technical round asks concepts and design; an executive round asks impact, leadership and judgment);
- frequency: asked many times across companies means likely anywhere.
Rate each as high, medium or low. Experience questions that come up in almost every interview (introduction, key projects) are always high.
- Predict new questions: core requirements of the posting that no bank question covers. Mark them as new, not asked yet, and draft their answers from the profile. If the profile has nothing to back a requirement (or it is in
gaps.md), say so and draft an honest answer. - Prioritize by probability × weakness: first high-probability questions with status
weak,regressed,fairorunratedand the new ones; then high-probabilitygood;masteredquestions only as a one-line reminder. Low-probability questions are left out unless the list is short. Write
prep-<YYYY-MM-DD>-<stage>.mdin the application folder:- What to expect: stage, interviewers if known, the posting's three or four themes most likely to be probed.
- Questions to rehearse, in priority order: the question and its ID, probability and why (which signal or frequency), status and the last time it was asked, best answer (~30 s), key points, honesty notes. Copy from the bank, adapted to this posting: point the answer at what this company needs.
- New questions (not in the bank) with draft answers.
- Questions to ask them, fit for the stage and the interviewer.
- Reminders: recurring lessons from the bank's history (e.g. "structure first, then the example"; "don't answer with tools when asked for patterns").
If the interview language is unknown, add the best answers of the high-probability questions in the other likely language too. If a prep sheet or a hand-made question list already exists in the folder, ask before replacing it.
- Finish in the chat with the five questions to rehearse first and the path to the prep sheet.
Troubleshooting
- THEM track is silent: the call audio is playing on a device other than the Windows default output. Set the headphones as the default output device before starting, and do not switch devices mid-call.
- ME track faint, echoey or empty: the recorder used a different microphone than the call (it defaults to the Windows default input). A webcam or laptop mic in the same room still picks you up, just with lower quality. Next time pass
--micwith the microphone the call uses. - Transcript partly translated or garbled (e.g. Spanish speech written as English): wrong language. Re-run
transcribe.pywith the right--lang(needs the audio, so delete it only after checking). - Echo or interviewers' voices in the ME track: no headphones. The review still works; mention it if it confuses who said what.
CUDA unavailable … falling back to CPU: transcription still works, just slower. On CPU,--model mediumor--model smallis faster at some cost in accuracy.- Recording left running (e.g. the session closed):
/interview stopfinds it throughrecording.lock. If the recorder process died, the FLAC files written so far are still valid; delete the stalerecording.lockand transcribe.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

