interview-kit
Interview preparation microservice for hiring teams: generate a tailored question set for a role and interview type (questions); build a structured scorecard with weighted competencies (scorecard)...
interview-kit (engines/adapters/domain/interview-kit)
Intelligent interview-prep microservice — the assess side of hiring. Generates tailored question sets, structured scorecards, rubrics and calibration scales so every interviewer evaluates consistently. Hybrid: every tool is backed by a deterministic, curated question bank + heuristic templates that run fully offline; the generative tools optionally tailor questions via a reachable LLM and tag results mode: 'heuristic' | 'llm'. Selection is reproducible via an optional options.seed. Never requires a model; a down model never throws.
Tools
| tool | input | what it does |
|---|---|---|
questions | { role, type?, level?, count? } | Tailored set for behavioral / technical / system-design / mixed. |
scorecard | { role, competencies?, options.scale? } | Weighted competency scorecard + recommendation field. |
rubric | { role, competencies? } | Per-level (1–4) behavioral anchors for each competency. |
behavioralSet | { role, count? } | STAR-format questions with follow-up probes + "listen for" notes. |
technicalSet | { role, level?, type?, count? } | Role/level-calibrated technical questions by difficulty & topic. |
redFlags | { type? } | Warning signals to watch for, by interview type. |
ratingScale | { options.scale? } | Consistent rating scale + definitions for calibration. |
Types: behavioral, technical, system-design, screen, culture, leadership, mixed. Levels: junior, mid, senior, lead, staff, principal.
Usage
import ik from './index.js';
await ik.adapters.questions({ role: 'Backend Engineer', type: 'technical', level: 'senior', count: 6 });
ik.adapters.scorecard({ role: 'Product Manager' });
ik.adapters.rubric({ role: 'Data Scientist' });
DRY boundaries
- This is the assess side (interview design);
jd-writeris the write side (author the posting);
resume-scorer is the read side (score candidates).
- Question banks are hiring-domain data, self-contained here.
- No cross-pack imports except
../_shared/llm.jsfor the optional AI mode.