Local-first AI interview practice for developers who want to build real skill.
InterviewOps is an open-source CLI and Angular web app that runs structured mock interviews on your machine — no account, no subscription, no API key required. It generates questions calibrated to your track and mode, scores your answers against a rubric, and writes a complete session packet to disk for review.
Try it in 60 seconds · Architecture · Provider system · Contributing
- 30 seconds: scan the Studio screenshots and the feature table
- 3 minutes: run
npm run demoand read What this proves - 10 minutes: inspect the provider registry, tracks, rubrics, and ethics guardrails
For recruiters and hiring managers: this project demonstrates deliberate, production-quality engineering decisions across multiple disciplines.
- Provider abstraction pattern —
InterviewProviderinterface with a factory registry; four providers (mock, OpenAI, Anthropic, Gemini) swapped via a single env var, no code changes required - Zod schema validation — full config schema with typed defaults, validated at startup; no runtime config surprises
- TypeScript strict mode —
noImplicitAny,strictNullChecksthroughout; noanywithout explicit justification - CLI UX design — Commander.js command tree, ora spinners, chalk-colored output, helpful error messages with recovery steps
- Angular 19 — standalone components, Signals (
signal,computed,effect), RxJS for async data, OnPush change detection - Local-first architecture — all session data written to
output/sessions/on disk; Studio data in.interviewops-studio/; no cloud backend dependency - Ethics-by-design — ethics constraints encoded in Zod config schema with defaults locked to
true; banned phrases tested inethics.test.ts;ethics-notice.mdrequired in every session output - Content system design — tracks, modes, and rubrics defined as Markdown files; loaded and validated at runtime; fully extensible without touching application code
- GitHub Actions CI — Node 20 and 22 matrix; builds CLI, runs tests, builds Studio API and Studio Web on every PR
- Free to run — mock provider requires no API key and generates realistic, structured content
- Runs locally — your resume, job description, and answers never leave your machine
- Role-specific questions — 9 tracks calibrated to real roles (Angular developer, AI agentic engineer, engineering manager, etc.)
- Rubric-based scoring — 9 rubrics with named dimensions (not a generic "score out of 10")
- Actionable feedback — strengths, gaps, improved answer examples, and a 2-week study plan per session
- BYOK model — bring your own OpenAI, Anthropic, or Gemini key for higher-quality responses when you want them
- Honest about what it is — a practice tool, not a cheating tool
git clone https://github.com/AnkitParekh007/interview-ops.git
cd interview-ops
npm install
npm run demoExpected output (abbreviated):
InterviewOps Doctor
Node.js version 20.x.x
Config file config/interviewops.yml
.env file .env
Tracks directory tracks/ (9 found)
Modes directory modes/ (13 found)
Rubrics directory rubrics/ (9 found)
Provider mock (available, no API key required)
Setup complete.
Running simulation: senior-frontend / behavioral (mock provider)
Generating interview session...
Writing session files...
Session written to output/sessions/2026-05-14-senior-frontend-behavioral/
Session files created:
session.md
questions.md
scorecard.md
feedback.md
improved-answers.md
study-plan.md
ethics-notice.md
metadata.json
Demo complete.
To run a specific track and mode:
npm run simulate -- --track angular-developer --mode frontend-architecture
npm run simulate -- --track ai-agentic-engineer --mode ai-assisted-engineering
npm run plan -- --resume input/resume.example.md --job input/job-description.example.md| Feature | Detail |
|---|---|
| Interview tracks | 9 — junior-frontend, senior-frontend, angular-developer, react-developer, fullstack-developer, ai-frontend-engineer, ai-agentic-engineer, devrel-engineer, engineering-manager |
| Interview modes | 13 — behavioral, coding, system-design, frontend-architecture, angular, react, project-deep-dive, debugging, code-review, ai-assisted-engineering, take-home-review, recruiter-screen, candidate-questions |
| AI providers | 4 — mock (default, no key), OpenAI, Anthropic, Gemini |
| Rubric scoring | 9 rubrics, 1–5 scale, hire signal per session |
| Session output | 8 files per session (questions, scorecard, feedback, improved answers, study plan, ethics notice, full session, metadata) |
| Prep plans | Resume + JD gap analysis, 2-week day-by-day schedule |
| STAR story bank | Store and retrieve behavioral stories in Studio |
| Readiness reports | Hire signal, weakness map, top actions (Studio) |
| Studio UI | Angular 19 web app with chat interface, avatar coach, session history |
| Local-first | All data on disk, no cloud required |
| Ethics guardrails | Practice-only mode; cheating features blocked in config and tested |
| CI | GitHub Actions, Node 20 + 22 matrix |
graph TD
CLI["CLI (Commander.js)"]
PR["Provider Registry"]
Mock["Mock Provider"]
OAI["OpenAI Provider"]
ANT["Anthropic Provider"]
GEM["Gemini Provider"]
FS["File Store (output/sessions/)"]
StudioWeb["Studio Web (Angular 19)"]
StudioAPI["Studio API (Express)"]
StudioStore[".interviewops-studio/"]
CLI --> PR
PR --> Mock
PR --> OAI
PR --> ANT
PR --> GEM
CLI --> FS
StudioWeb --> StudioAPI
StudioAPI --> StudioStore
The CLI is fully self-contained. The Studio web app is a separate Angular project that communicates with a local Express API. The two subsystems are independent — the CLI works without Studio running.
See docs/architecture.md for the full technical architecture.
Run npm run demo to execute the full pipeline end-to-end using the mock provider. The demo runs:
doctor— validates Node version, config file, tracks/modes/rubrics directories, provider availabilityexamples— copies example input files toinput/simulate— runs asenior-frontend/behavioralsessionplan— generates a prep plan from the example resume and job descriptionverify— validates that all required files exist, ethics notice is present, no banned phrases appear
All steps use the mock provider. No API key is required. Output is written to output/sessions/ and output/plans/.
| Track | Target role |
|---|---|
junior-frontend |
0–2 years, HTML/CSS/JS fundamentals |
senior-frontend |
5–10 years, architecture, Core Web Vitals, TypeScript |
angular-developer |
Angular specialist: Signals, RxJS, OnPush, NgRx |
react-developer |
React specialist: hooks, RSC, React Query, testing |
fullstack-developer |
Full system ownership: API design, DB, deployment |
ai-frontend-engineer |
AI product UX: streaming, tool-call rendering, AI SDKs |
ai-agentic-engineer |
Agent systems: ReAct, RAG, MCP, function calling, safety |
devrel-engineer |
Developer relations: technical communication, content, community |
engineering-manager |
People leadership, delivery, technical strategy |
| Mode | What it simulates |
|---|---|
recruiter-screen |
20–30 min recruiter call |
behavioral |
STAR-format behavioral interview |
coding |
Algorithm and TypeScript coding round |
system-design |
High-level architecture discussion |
frontend-architecture |
Component, state, perf, accessibility |
angular |
Angular-specific technical interview |
react |
React-specific technical interview |
project-deep-dive |
Past project storytelling and depth |
debugging |
Systematic debugging process |
code-review |
Reading and critiquing unfamiliar code |
ai-assisted-engineering |
AI tools: prompting, validation, ethics |
take-home-review |
Walk through and defend a take-home |
candidate-questions |
Practice questions to ask the interviewer |
InterviewOps Studio is the local Angular web application for a chat-based interview practice experience.
npm run studioStarts:
- Studio API at
http://localhost:4317 - Studio Web at
http://localhost:4200
Features: chat interface, animated avatar coach, session history, readiness reports, STAR story bank, progress dashboard, prep plan viewer, export to Markdown.
Proof assets:
docs/assets/interviewops-studio-chat.pngdocs/assets/readiness-report.pngdocs/assets/avatar-coach.pngdocs/assets/demo-terminal.gif
See docs/architecture.md for the Studio architecture details.
Contributions are welcome. The easiest way to contribute is to add a new track, mode, or rubric — each is a Markdown file with a defined structure.
npm test # Must pass before any PR
npm run build # TypeScript must compile
npm run demo # Full pipeline must completeSee CONTRIBUTING.md for:
- How to add a provider (6 steps)
- How to add a track
- How to add a mode
- How to add a rubric
- Code style expectations
- PR process
Good first issues are labeled in the GitHub issue tracker.
InterviewOps is built for practice before interviews, not assistance during them.
What it will not do: live answer injection, hidden screen overlays, screen-share evasion, stealth mode, real-time cheating assistance.
Every session output includes an ethics-notice.md file. Ethics constraints are enforced in the Zod config schema (defaults locked to true) and tested in tests/ethics.test.ts.
Read the full ethics policy · Technical ethics boundaries
MIT — see LICENSE
Built by Ankit Parekh.


