Hireish
An AI interviewer for technical hiring.
One link runs the interview loop. Hireish conducts live voice, coding and system design rounds, asks real follow-ups, scores six dimensions as it goes, and produces an evidence-backed report the moment the interview ends.
- Role
- Full-stack builder
- Live
- hireish.in


Problem
Technical hiring is slow and inconsistent. First-round screens burn senior engineers' time, five interviewers apply five different bars, and decisions rest on gut feel with no shared evidence trail.
Solution
A live AI interviewer that runs the round end to end. It conducts voice interviews over the OpenAI Realtime API, runs coding in a sandboxed editor and system design on a diagram canvas, scores each answer against a configurable rubric, runs anti-cheat in the background, and ships a PDF report with verbatim quotes and a hiring recommendation.
Architecture
- UI
React + TypeScript web app for recruiters and candidates.
- Gatekeeper
Go (Gin) API gateway: auth, billing and quota.
- Alchemists
Python service for interview orchestration, AI workflow and reports.
- Dumbledore
Realtime voice interviews over WebSockets with bidirectional audio streaming.
- Candidate / CDS
Candidate and core data services.
- Redis + Nginx
Caching and routing, HTTPS in production.
Engineering decisions
- 01
Go for the edge, Python for the AI
High-throughput API and gateway work lives in Go. Interview orchestration and ML integration live in Python, where the tooling is. Each service deploys independently.
- 02
Coding and design as first-class rounds
Candidates write code in a Monaco editor backed by a sandboxed Judge0 runtime and sketch architectures on a React Flow canvas, so the interviewer can probe real work instead of recitations.
- 03
Anti-cheat as a pipeline, not a checkbox
Face and head-pose detection with MediaPipe, keystroke confidence scoring, prompt-injection filtering, and a WebSocket observer mode that lets a committee watch live.
- 04
Model routing per workload
Realtime voice moved to a mini realtime model and the evaluation LLM to a smaller model, with per-organisation model selection so quality and cost are a setting, not a rewrite.
- 05
Spend fewer tokens before spending fewer dollars
A client-side energy gate drops silent audio before it is sent, transcript checks avoid full responses to filler, and the system prompt was trimmed from about 3,500 to about 1,800 characters.
- 06
Cache what repeats
Relevance filtering, embeddings and confidence scoring are cached on SHA-256 keys with TTLs, so identical work skips the LLM call entirely.
- 07
Measure per interview
Token and audio usage are recorded per interview with an estimated cost, exposed through a cost breakdown API.
Technology
- Go
- Python
- React
- TypeScript
- OpenAI Realtime
- PostgreSQL
- Redis
- AWS
Also in Hireish

Roast My Resume
A free ATS resume checker by Hireish. Upload a PDF, get a score out of 100, see every mistake marked with the fix, and get a rebuilt one-page resume.
- Score out of 100 in about 30 seconds
- ATS and recruiter checks, every mistake with the fix
- Free rebuilt one-page resume, never invents metrics
Trade-offs
- Smaller models cut cost sharply but give up some depth; the premium realtime model stays available per organisation.
- Six microservices isolate concerns and scale independently, at the price of more deployment and observability surface.
- Audio gating saves tokens but a threshold that is too aggressive could clip quiet speakers, so it is tuned conservatively.
Outcomes
- Live in production at hireish.in.
- Projected LLM cost per interview hour fell from about $4.14 to about $0.70 (about 83%) across the documented optimisation phases. This is a projection from the cost model, not measured billing.
- Interview reports include six scored dimensions, verbatim quotes and a Strong yes to No recommendation.