Technical Documentation

Platform Documentation

How PM Recruit uses AI to match, assess, and interview project management professionals — from CV upload to hiring decision.

Overview

What is PM Recruit?

PM Recruit is an AI-powered recruitment platform for the project management sector in the GCC region. It automates the entire hiring pipeline — from CV parsing and match scoring, through AI-generated assessments and real-time voice interviews, to calendar scheduling and in-app notifications. Recruiters see ranked, explainable results at every stage. Candidates get faster, fairer evaluations.

5
Scoring Dimensions
15
Assessment Questions
Real-Time
AI Voice Interviews
<5s
Score Compute Time

Candidate Journey

From Application to Hiring Decision

The complete flow a candidate goes through — each step is AI-assisted and visible to the recruiter in the pipeline.

1

Browse & Apply

Candidate sees AI match scores on jobs, applies to high-match roles.

2

Screening

Recruiter moves to screening — assessment auto-assigned, email sent.

3

Take Assessment

Candidate completes 15-question timed assessment: 10 open-ended PM questions + 5 psychometric behavioral scenarios.

4

AI Scoring + Profiling

Claude scores open-ended answers. Psychometric responses produce a 5-trait personality profile. Recruiter sees both.

5

AI Voice Interview

Candidate joins real-time voice call with AI interviewer — transcript captured.

6

Interview Analysis

Claude analyses transcript across 5 dimensions, generates scores + recommendation.

7

Human Interview

Recruiter conducts video interview on the platform — no external tools.

8

Decision

Recruiter sees assessment score, interview score, and match score side by side.

Triggers

When Does AI Run?

The AI engines are triggered automatically by platform events. No manual action is required.

Candidate Uploads CV

When a candidate uploads or updates their CV, the system parses it then scores them against all published jobs. Only jobs that pass the pre-filter are sent to Claude.

CV Upload → Parse → Pre-Filter → Score vs All Published Jobs

Recruiter Publishes Job

When a recruiter publishes a job, the system scores all candidates who have a parsed CV against that job. The pre-filter and skip-unchanged logic ensure only relevant, unscored pairs use API calls.

Job Published → Pre-Filter All Candidates → Score Remaining Pairs

Application Moved to Screening

When a recruiter moves an application to 'screening', the system auto-assigns the AI assessment (if one exists for the job) and sends the candidate a notification with a link to take the timed assessment.

Status → Screening → Auto-Assign Assessment → Email + Notification

Assessment Completed

When a candidate submits their assessment, a background job sends all answers to Claude for batch scoring. Per-question scores, feedback, and key points are stored and visible to the recruiter.

Submit → BullMQ Job → Claude Scoring → Results in Pipeline

Core Engine

The AI Pipeline

From a raw CV file to a hiring decision — every AI-powered step in the platform.

Step 01

CV Upload & Text Extraction

Candidates upload their CV in PDF or DOCX format. The system extracts raw text using pdfjs-dist and mammoth. The extraction runs as a background job via BullMQ so the user isn't kept waiting.

PDF
DOCX
BullMQ
Background Job
Step 02

LLM-Powered CV Parsing

The extracted text is sent to Claude (Anthropic) with a structured JSON schema. The model identifies and extracts skills, certifications, work history, industries, education, and more — without inventing data that isn't present.

Claude API
Structured Extraction
JSON Schema
Step 03

Rule-Based Pre-Filter

Before calling the AI scoring engine, each candidate-job pair is checked against lightweight rules: experience threshold (50% minimum), salary range overlap, and industry match. Pairs that are obvious mismatches are skipped, saving API calls.

Experience Check
Salary Overlap
Industry Match
Cost Saving
Step 04

5-Dimension Match Scoring

Each candidate-job pair that passes the pre-filter is evaluated by Claude across five weighted dimensions. The resulting overall score (0-100) is categorised as Green (71-100), Orange (41-70), or Red (0-40) for quick recruiter triage.

5 Dimensions
Weighted Scoring
Green / Orange / Red
Step 05

AI-Generated Assessment

Claude generates 15 tailored questions in one call — 10 open-ended PM knowledge questions and 5 psychometric situational-choice questions with personality trait mapping. Candidates take a timed assessment with both text answers and multiple-choice. Claude scores knowledge questions; psychometric responses produce a 5-trait personality profile.

15 Questions
PM Knowledge + Psychometric
Trait Profiling
AI Scoring
Step 06

AI Voice Interview

Candidates join a real-time voice conversation with an AI interviewer powered by LiveKit and OpenAI Realtime API. The agent asks structured questions based on the job requirements, captures a full transcript, and Claude analyses it across 5 dimensions — communication, technical depth, problem solving, cultural fit, and leadership.

LiveKit
OpenAI Realtime
Voice-to-Voice
Transcript Analysis
Step 07

Human Video Interview

Recruiters and candidates join a browser-based video call powered by LiveKit WebRTC. No Zoom, no external tools. Recruiters schedule from the pipeline or calendar, both parties join from the platform.

LiveKit WebRTC
Browser-Based
Scheduled
No External Tools
Step 08

In-App Notifications & Reminders

A real-time notification bell surfaces all platform events — interview reminders (15 min before), assessment assignments, scoring results, application status changes, and match notifications. Cron jobs handle scheduled reminders.

Notification Bell
15-Min Reminders
BullMQ Cron
Real-Time

Match Scoring

Five-Dimension Scoring Model

Every candidate-job pair produces a weighted composite score across five transparent dimensions.

Salary Alignment

20%

Overlap between the candidate's salary expectations and the job's offered range.

Experience

25%

Candidate's years of experience measured against the job's minimum requirement.

Qualifications

20%

Match rate of professional certifications (PMP, PRINCE2, SAFe, etc.).

Industry Fit

15%

Overlap between candidate's industry preferences and the job's sector.

CV Outcomes

20%

Claude analyses the CV text against the job requirements for relevant project outcomes, leadership experience, and domain expertise.

Green71 - 100
Orange41 - 70
Red0 - 40

Assessment Engine

AI-Generated Assessments

Claude generates a combined assessment in one call — PM knowledge questions (open-ended, scored by AI) and psychometric behavioral questions (multiple-choice, trait-mapped). Candidates take it as one seamless flow. Recruiters see knowledge scores and a personality profile side by side.

Two-Part Generation

15 questions generated in one Claude call: 10 open-ended PM knowledge (3 situational, 3 technical, 2 behavioral STAR, 2 problem-solving) + 5 psychometric situational-choice questions with 4 options each, mapped to personality traits.

Psychometric Profiling

5 situational-choice questions measure 5 personality traits: Leadership, Adaptability, Risk Tolerance, Collaboration, and Detail Orientation. Each option is mapped to trait scores (1-3). No right or wrong answers — the result is a behavioral profile, not a pass/fail.

Timed Assessment

45-minute time limit. Questions appear one at a time — text area for open-ended, radio buttons for psychometric. Forward-only (no going back). Psychometric questions require a selection before advancing. Answers saved automatically.

Two-Track Scoring

Open-ended questions scored by Claude in a single batch call (0-100 per question, feedback, key points). Psychometric questions scored locally using trait mappings — no Claude call needed. Results: PM Knowledge score + Personality Profile.

Recruiter Control

Recruiters can preview, edit, add, or remove questions (including psychometric options). They can regenerate the entire set, set a custom deadline date, or let it auto-assign when moving to screening.

Recruiter Results View

Two sections: PM Knowledge Score (overall %, per-question scores with AI feedback, key points hit/missed) and Personality Profile (5 trait bars with descriptions). Psychometric responses shown with the selected option highlighted.

Interview System

AI Voice & Human Video Interviews

Two interview types, both happening entirely on the platform.

Round 1: AI Voice Interview

The candidate speaks with an AI interviewer powered by OpenAI Realtime API through LiveKit WebRTC. The agent is enriched at call time with the candidate's CV, assessment scores, and match analysis — enabling it to probe weak areas and reference specific experience. The full transcript is captured and Claude analyses it across 5 dimensions.

Speech-to-Speech
CV-Aware
Assessment-Aware
15-20 min
Auto-Transcript
5-Dimension Analysis

Round 2: Human Video Interview

Recruiter and candidate join a browser-based video call. No Zoom, no Teams, no external tools. Scheduled from the pipeline or calendar with reschedule and cancel options. Candidates can join 30 minutes early; a 15-minute grace period applies after the scheduled time.

WebRTC Video
Browser-Based
Scheduled
30min Early / 15min Grace
Popup Window

AI Interview Analysis Dimensions

Communication

Clarity, articulation, listening skills, ability to explain complex concepts.

Technical Depth

Depth of knowledge in PM methodologies, tools, and domain expertise.

Problem Solving

Ability to think critically, handle ambiguity, and propose structured solutions.

Cultural Fit

Alignment with team dynamics, adaptability, GCC/multicultural awareness.

Leadership

Demonstrated leadership experience, stakeholder management, team motivation.

Agent Context Enrichment

At the start of every AI voice interview, the agent fetches enriched context from the platform API. This includes the candidate's CV and work history, assessment scores with weak/strong areas, and match score dimensions. The agent uses this to ask targeted questions — probing weak assessment areas, referencing specific CV experience, and exploring low-scoring match dimensions. Scores are never revealed to the candidate.

Scheduling

Calendar & Notifications

Weekly Calendar

Teams-style weekly time grid showing interviews and assessment deadlines. Recruiters can schedule interviews by clicking empty time slots. Candidates see their upcoming events in a read-only view. Color-coded: blue (AI interview), purple (video), orange (assessment).

In-App Notifications

Notification bell in the top bar with badge count, polling every 30 seconds. Covers: interview reminders (15 min before), assessment assignments, scoring results, application status changes, and match notifications. Click to navigate, mark as read, or clear all.

Optimisation

Smart Pre-Filtering

Rule-based checks eliminate obvious mismatches before calling Claude, reducing API costs by 50-70%.

Experience Threshold

If a job requires X years and the candidate has less than 50% of that, the pair is skipped.

Salary Range Overlap

If the candidate's minimum exceeds 1.5x the job's maximum, or their maximum is below 0.5x the job's minimum, it's skipped.

Industry Match

If both sides specify industries and there's zero overlap, the pair is skipped. 'Other' is treated as a wildcard.

Skip Unchanged Pairs

If a match score already exists and was computed after both the candidate and job were last updated, it's not re-scored.

Architecture

System Design

Async Background Jobs

CV parsing, match scoring, assessment generation, assessment scoring, interview analysis, and notifications all run as BullMQ background jobs.

PostgreSQL + Prisma

All data lives in PostgreSQL via Prisma ORM. Match scores, assessment results, and interview analyses are stored with full dimension breakdowns.

Layered Architecture

Route handlers call services, services call repositories. AI modules are self-contained. Workers import from lib but never from app.

Security by Default

Bcrypt hashing, JWT with auto-refresh token rotation, rate limiting, account lockout, CAPTCHA on registration, and private blob storage.

Real-Time Voice AI

AI voice interviews use LiveKit WebRTC for audio transport and OpenAI Realtime API for speech-to-speech. The agent runs as a separate Node.js process.

Scheduling & Calendar

Teams-style weekly calendar view. Recruiters schedule from the calendar or pipeline. Candidates see upcoming events. 15-minute reminders via cron.

Deployment

Production Architecture

Vercel

Next.js frontend + API routes. Auto-deploys on git push. Serverless functions for all API endpoints.

Railway — Worker

BullMQ background worker. Handles CV parsing, match scoring, assessment generation/scoring, interview analysis, notifications.

Railway — Agent

LiveKit agent process. Connects to LiveKit Cloud, joins AI voice interview rooms, powered by OpenAI Realtime API.

Neon

PostgreSQL database. Serverless, auto-scaling, connection pooling via PgBouncer.

Upstash

Redis for BullMQ job queues. TLS-encrypted, serverless, auto-scaling.

LiveKit Cloud

WebRTC infrastructure for real-time audio/video. Handles room management, media routing, and agent dispatch.

Technology

Tech Stack

Frontend

  • Next.js 16 (App Router)
  • React 19
  • TypeScript (strict)
  • Tailwind CSS v4
  • Zustand
  • LiveKit Components React

Backend

  • Next.js API Routes
  • Prisma 6 ORM
  • Zod v4 Validation
  • JWT (jose) + Auto-Refresh
  • BullMQ Workers
  • LiveKit Server SDK

AI & Real-Time

  • Claude (Anthropic) — Scoring, Parsing, Assessments, Analysis
  • OpenAI Realtime API — Voice Interviews
  • LiveKit — WebRTC Audio/Video
  • LiveKit Agents Framework

Infrastructure

  • Vercel (Next.js)
  • Railway (Workers + Agent)
  • Neon (PostgreSQL)
  • Upstash (Redis)
  • LiveKit Cloud
  • Vercel Blob (Private Storage)

Security

Security & Compliance

Password Security

Bcrypt hashing with automatic account lockout after consecutive failed login attempts (30-minute cooldown).

Token Management

Short-lived JWT access tokens (15 min) with automatic refresh token rotation. Tokens are revokable on logout. Silent refresh on 401.

Rate Limiting

Per-endpoint configurable throttling on public endpoints including login, registration, and password reset.

Private Storage

Vercel Blob with private access mode. Profile pictures and CVs served via authenticated proxy endpoints — never exposed publicly.