Skip to content
All work

Case study · Hiring platform

HireLens AI

An Arabic-first hiring copilot built around one rule: the AI gathers evidence, and people make the decision.

Recruiting teams wanted a documented, defensible pipeline — structured requirements, CV-aware interviews, evidence-based evaluations — without letting a model quietly become the decision-maker.

The copilot may

  1. 01Run structured interviews that adapt to the candidate's CV
  2. 02Draft evaluation reports that cite transcript and CV evidence, with skill scores
  3. 03Answer questions grounded in a single job or application, scoped to one tenant

Only people decide

Every hire.Every rejection.

The copilot is guardrailed against forbidden decision language. It can explain the evidence; it cannot render the verdict.

The pipeline

  1. 01Job & rubric
  2. 02Candidate portal — no account needed
  3. 03CV-aware interview
  4. 04Evidence report
  5. 05Human decision

Job and CV versions are frozen per candidate, so the Candidate 360 view stays consistent even when a job changes later.

Guardrails

Arabic and English throughout, with automatic RTL/LTR layout switching.

  • Every AI request passes through Laravel's provider router. The browser never talks to a model directly.
  • Prompt-injection and forbidden-decision-language checks on the copilot.
  • Five roles — Admin, Recruiter, Hiring Manager, Compliance, Viewer — enforced server-side and mirrored in the UI from one shared permission set.
  • Providers are explicit: a mock provider for tests and demos, an OpenAI-compatible provider, or local Ollama.

Real screens

Captured from a local build of the application, unedited.

HireLens AI landing page: Hire from evidence, not impression
Landing screen
HireLens recruiter sign-in screen
Sign-in screen

Inside the product

Logged-in screens from a local build running on the project's own demo seed. The names, units and amounts are fictional test data, not production figures.

Evidence dashboard
Evidence dashboard
Evaluation report
Evaluation report
Human decision
Human decision
Approved interview kit
Approved interview kit
Job requirements rubric
Job requirements rubric
Audit log
Audit log

Architecture

A Laravel 12 monolith with Inertia.js 2 and React 19 — no separate frontend service — and a local component layer on Radix primitives. Tested with Pest and Playwright; analysed with Larastan.

Stack

Laravel 12 · PHP 8.2+ · Inertia.js 2 · React 19 · Tailwind CSS 4 · Radix UI · Pest/PHPUnit · Playwright · PHPStan/Larastan

Source

Private repository