AI Integration · Candidate & employee assessment

AI candidate & employee assessment module

A self-contained assessment loop: the candidate takes the test, the admin sees role, level, scores, trends and a kaizen verdict — on one structured dataset.

Client
Candidate & employee assessment
Timeline
2026
Role
Full cycle
Status
Working application package
2
User-facing surfaces
a candidate-facing assessment app and an administrator review interface
7
Result dimensions per candidate
role, level, scores, trends, prompts used, kaizen verdict, candidate status
1 schema
Database isolation
all assessment data lives in a dedicated Supabase schema, decoupled from neighbouring systems
4
Stack layers
React/Vite front end, Express API service, Railway hosting, Supabase Postgres

Context

Candidate testing in most organisations lives in a spreadsheet: inconsistent scoring, no history, no way to compare this hire against the last one. Internal employee evaluation has exactly the same gap — periodic, subjective, and unrecorded.

The module turns assessment into a proper contour: a candidate-facing test and an admin-facing review, operating on shared, structured data instead of ad-hoc files.

Approach

Two surfaces, one dataset. The candidate takes the test in a React/Vite front end; every submission lands in Supabase through an Express service hosted on Railway. The administrator then works with a complete result record — seven dimensions per candidate: role, level, scores, trends, the prompts used in the evaluation, a kaizen verdict and current status.

Recording the prompts alongside the scores makes every AI-assisted evaluation auditable: the admin sees not just the verdict but the exact instructions that produced it.

Architecture

The stack is deliberately thin: a React/Vite single-page app for the candidate, an Express API as the only write path, Supabase Postgres as the store, Railway as the runtime. No background workers, no queue — the assessment flow is synchronous and simple to reason about.

The defining decision is the isolated database schema. Assessment data never mixes with other product tables: the module can be deployed next to an existing system — a CRM, a team-ops platform, an HR cabinet — and share the same Supabase project without entangling migrations or permissions.

Key engineering details

Scores are stored as structured records rather than free text, which is what makes trends possible: the admin view charts a candidate's results over repeated assessments and compares candidates on identical axes. The kaizen verdict is a first-class field — a continuous-improvement judgement per candidate, not a comment buried in notes.

Candidate status is modelled explicitly in the schema, so the pipeline stage of every person — invited, tested, reviewed, decided — is a queryable fact rather than tribal knowledge.

Outcome and what shipped

The result is a working application package: a deployed candidate test, an admin review interface covering all seven result dimensions, and an isolated schema that plugs alongside other systems cleanly. It serves three uses out of the box — candidate testing, internal employee evaluation, and the assessment core of a digital HR cabinet.

The extension path is defined: role-specific test banks, benchmarking scores against actual hiring outcomes, and integration into a broader HR contour.

What we built

  • Candidate test

    A React/Vite front end for the candidate to take the assessment.

  • Admin review

    Role, level, scores, trends, prompts, kaizen verdict and status in one admin view.

  • Isolated schema

    Assessment data kept in a separate Supabase schema, cleanly decoupled.

  • Trend tracking

    Score trends tracked across candidates over time.