AI · 2026
HireIQ — AI Candidate Intelligence Platform
Full-stack AI application for Apprento, a NZ/AU sales recruitment and training firm, automating their candidate-assessment pipeline end-to-end. Document ingestion (PDF / DOCX) → structured Claude prompting → role-aware scoring → client-ready report covering executive summary, scorecard, fit analysis, and targeted interview probes. Stateless processing, human-in-the-loop review, and an API fallback path for resilience.

The problem
Apprento’s candidate-assessment pipeline was entirely manual: a recruiter would read a CV plus an interview transcript, then write a structured report covering executive summary, scorecard, role-fit analysis, and follow-up probe questions. Per candidate, that was 30–45 minutes of focused work — the bottleneck on how many candidates a recruiter could move through the funnel each week.
Two constraints shaped everything. First, under New Zealand’s Privacy Act 2020, candidate documents are sensitive personal data with real retention obligations — whatever I built had to minimise what was stored, where, and for how long. Second, the client was non-technical: every architectural decision had to be explainable in plain English before it was approved.
Approach
The system has three layers. A document ingestion pipeline using pdfplumber and python-docx handles CVs and GRW AI interview transcripts — any format, normalised text out. A structured prompting layer against the Anthropic Claude API emits a typed JSON report shape: executive summary, per-dimension scorecard, fit analysis, and targeted probe questions. And a framework and role routing layer selects the appropriate assessment rubric at runtime — three seniority-level frameworks (career starters, experienced salespeople, sales leaders) combined with ten role-type overlays (SDR, AE, BDM, CSM, and others) without duplicating prompt logic.
Schema validation and retry logic handle malformed LLM responses. FastAPI on the backend, React on the frontend, deployed on Railway (API) and Vercel (frontend) with Postgres/pgvector for storage.
Before finalising the UX, I spent time with Apprento’s recruiting team to understand the actual day-to-day workflow — what they look at first, where they lose time, what a report needs to say for them to trust it enough to send to a client.
System sketch
Key decisions
From stateless MVP to governed storage
The first version was a pure processing layer — documents in, report out, nothing kept — to sidestep Privacy Act 2020 obligations entirely. As the product grew past a single-shot report into a system recruiters return to (review, JobAdder write-back, interview intelligence), that stopped being viable. It now persists candidate data in Postgres with field-level PII encryption, a 700-day retention policy backed by a weekly purge cron, subject-access-export and right-to-erasure tooling, and audit logging of every record access — a compliance program instead of a workaround.
Human-in-the-loop, not human-on-the-loop
AI drafts the assessment; a recruiter reviews and approves before any candidate outcome is actioned. The model is a force-multiplier on a recruiter, not a substitute. The failure mode of an unreviewed bad assessment has real-person consequences.
Role-aware rubrics over a one-size prompt
Assessing a career-starter against the same criteria as a sales leader produces noise. Three framework variants and ten role-type overlays are injected at runtime — same engine, appropriate scoring for every candidate type.
Outcome
Live in Apprento’s recruiter workflow. Report generation went from 30–45 minutes of manual work to under 30 seconds end-to-end. Recruiters keep the review-and-approve step — the throughput win is in the drafting, not the decision. JobAdder API integration has since shipped and been verified, eliminating the manual upload step entirely.
What I’d do differently
I’d invest earlier in an eval layer — a test suite of known CV/report pairs to catch prompt regressions when rubrics change. I built the prompting layer iteratively against real example reports, but without automated evals, rubric changes require manual spot-checking every time. For a product where output quality directly affects hiring decisions, that’s the gap worth closing first.