Interview simulation that doesn't let you off easy.
Five personalities. Real time pressure. Honest scoring. Bring your own API key β runs entirely in your browser.
Not a practice tool that tells you you're doing great. A simulation that tells you when you're not.
PrepAIred simulates a real interview β with an interviewer who pushes back, scoring calibrated to be honest, and time pressure that means something.
It is a single HTML file. No server. No account. No data leaving your machine except the API calls you explicitly make to your chosen provider.
π Try it now β
- Go to ijnebzor.github.io/prepaired
- Click Get PrepAIred β
- Choose your provider β Anthropic, OpenAI, or Groq (Groq is free, no credit card)
- Paste your API key β it validates live against the provider before you can start
- Watch the Systems Go panel confirm everything is ready
- Optionally paste your bio or resume for personalised coaching
- Pick personality, format, difficulty β begin
# Or run locally (API calls blocked from file://, use a server)
git clone https://github.com/ijnebzor/prepaired.git
cd prepaired
python3 -m http.server 8080
# open http://localhost:8080| Provider | Model | Cost | Notes |
|---|---|---|---|
| Anthropic | Claude Haiku | ~$0.02/session | Best quality for this use case |
| OpenAI | GPT-4o-mini | ~$0.03/session | Solid alternative |
| Groq | Llama 3.1 8B | Free | No credit card. Ludicrous speed. |
Keys are validated live before the interview starts, stored in-memory only, and wiped on page unload.
| Personality | Behaviour | |
|---|---|---|
| βοΈ | Warm | Encouraging, constructive. Still probes gaps β just gently. |
| π¬ | Technical | Rigorous. Demands specifics, frameworks, implementation detail. |
| βοΈ | Adversarial | Tough and skeptical. Pushes back on almost everything. Not rude β relentless. |
| π | HR / STAR | Wants Situation, Task, Action, Result. Redirects vague answers to real examples. |
| π | Curious | Intellectually engaged. Goes off-script when something interesting comes up. |
| Mode | Behavioural | Governance | Technical | Scenario |
|---|---|---|---|---|
| π’ Easy | 3:00 | 3:00 | 3:00 | 4:00 |
| π‘ Real | 2:00 | 2:30 | 2:00 | 3:00 |
| π΄ Brutal | 1:15 | 1:30 | 1:30 | 2:00 |
Timer auto-submits when it hits zero. The interviewer notes it.
Each answer is scored 1β10 across four dimensions:
| Dimension | What it measures |
|---|---|
| Structure | Logical flow, clarity, framing |
| Confidence | Conviction, directness, not hedging unnecessarily |
| Technical Depth | Specificity, correct terminology, real-world application |
| Consulting Readiness | Client orientation, stakeholder awareness, delivery thinking |
Calibration: 7 = solid. 9 = exceptional. 10 = almost never. Not inflated.
Do-overs are available (max 3 per question) but carry a β0.5 overall penalty per attempt.
- π Live API key validation β Systems Go panel; Begin button locked until your key passes a live check
- π€ Candidate profile β paste your bio, resume, or LinkedIn URL for personalised coaching
- πΎ Session export β full session as JSON: questions, scores, verdicts, attempt counts, transcripts
- π Feedback loop β record the real interview outcome; anonymised locally for Phase 4 calibration
- βΊ Do-overs β up to 3 per question with a score penalty; for genuine blanks, not comfort redos
PrepAIred is built around one principle: your key never leaves your hands.
- API calls go directly from your browser to your chosen provider β no proxy, no backend
- Key stored in JS memory only; wiped on
beforeunload connect-srcCSP restricts outbound to Anthropic, OpenAI, Groq, and Google Fonts only- No analytics. No telemetry. No third-party scripts.
- No cookies. localStorage stores only anonymised outcome data (capped at 50 entries).
- All user input sanitised before API submission
Known limitations:
- Key readable in browser devtools memory during the session
- AI responses rendered via
.innerHTMLβ a compromised provider endpoint could inject content (mitigated byconnect-srcCSP)
Full threat model, controls, and responsible disclosure: SECURITY.md
| Phase | Status | What |
|---|---|---|
| 1.0 | β Done | Interview simulator β 5 personalities, timer, honest scoring |
| 1.5 | β Done | Multi-provider, candidate profile, session export, feedback loop, live key validation |
| 2.0 | π Next | JD ingestion β paste a job URL or PDF; AI generates role-specific questions with salary benchmarks |
| 3.0 | π Planned | Salary negotiation simulator β offer roleplay, counter coaching, market bounds |
| 4.0 | π§ Planned | Career intelligence β gap analysis, pathway planning, outcome calibration |
Full detail: phases/ROADMAP.md
Single HTML file. No build process. No dependencies. No framework.
| Thing | Choice |
|---|---|
| Language | Vanilla JS (ES2020) |
| Styling | CSS custom properties, no preprocessor |
| Fonts | Syne + JetBrains Mono via Google Fonts β degrades gracefully if blocked |
| Providers | Anthropic Messages API Β· OpenAI Chat Completions Β· Groq (OpenAI-compatible) |
| Screenshots | Playwright (dev only, not shipped) |
MIT. See SECURITY.md for responsible disclosure.
Built by Benji Zorella Β· AI-assisted Β· Brought to life with π§ and β€οΈ by Claude
"Gold stars are for kindergarten."



