← All case studies

AI Automation · In Progress — Oxibit Technologies

AI-Powered Applicant Tracking System

A multi-tenant SaaS hiring platform (Senastic AI) that takes recruitment teams from job posting through CV parsing, AI-scored screening, and real-time AI video interviews — with tenant isolation and enterprise-grade access control built in from day one.

Role: Full-Stack AI Engineer

Next.js 16React 19TypeScriptFastAPIPythonMySQLLiveKitOpenAITailwind CSS 4

AI CV parsing + scoring, non-blocking

Screening

Async, real-time AI video via LiveKit

Interviews

Multi-tenant with strict data isolation

Architecture

The Problem

Traditional hiring workflows are fragmented and slow — recruiters manually read and score CVs, interview scheduling creates bottlenecks, early-stage screening doesn't scale as application volume grows, and most ATS tools are either too rigid or too generic to support AI-assisted recruiting. Agencies managing multiple clients also need tenant isolation without running separate infrastructure per client.

  • Recruiters manually read CVs and score candidates against job requirements.
  • Interview scheduling creates bottlenecks and inconsistent evaluation.
  • Early-stage screening doesn't scale as application volume grows.
  • Most ATS tools are either too rigid or too generic for AI-assisted recruiting.
  • Agencies managing multiple clients need tenant isolation without separate infrastructure per client.

The Approach

  • 01Intake: public career pages, resume upload, and AI parsing of PDF/DOCX resumes (with OCR fallback) into structured candidate profiles.
  • 02Screening: AI scoring against configurable, weighted job criteria, plus multi-section aptitude tests feeding directly into the pipeline.
  • 03Evaluation: real-time AI video interviews via LiveKit and OpenAI realtime models, with full transcripts and structured, exportable evaluation reports.
  • 04Built a multi-tenant backend where every tenant-scoped query filters by client_id from the authenticated JWT — never from user input — so one deployment safely serves many client organizations.
  • 05Implemented a Kanban-style job board and recruiter dashboard surfacing hiring trends and AI interview outcomes over time.
  • 06Set up Docker Compose deployment with nginx, Let's Encrypt SSL, and a zero-downtime maintenance-mode deploy script.

Key Features

Multi-Tenant SaaS Architecture

  • One deployment serving many client organizations with tenant isolation enforced at the database level via client_id from JWT.
  • Superadmin portal to onboard clients, configure features, and manage per-tenant AI settings.

Full Hiring Pipeline

  • Job lifecycle from draft to approved to closed, with customizable pipelines (Interview, Test, Manual stage types).
  • Applications tracked through stages with notes, attachments, and activity logs; departments, tags, roles, and fine-grained permissions.

AI-Powered CV Parsing & Scoring

  • Extracts structured candidate data from PDF and DOCX resumes, with OCR fallback for scanned documents.
  • AI scoring matches candidate profiles against job descriptions using configurable, weighted criteria.

Real-Time AI Video Interviews

  • Candidates join via tokenized public links — no account required — powered by LiveKit for real-time audio/video.
  • OpenAI realtime models drive the conversational AI interviewer, with device checks, live transcript, and optional S3 recording.

Interview Evaluation & Reporting

  • Post-interview AI analysis produces a structured report, full transcript, and persona insights with radar-chart visualizations.
  • Reports export to PDF for hiring stakeholders and can be regenerated on demand.

Recruiter Dashboard & Job Board

  • Drag-and-drop Kanban job board across pipeline stages, plus a dashboard tracking hiring trends and AI outcome breakdowns.
  • Activity feed, job performance tables, and Excel export for job board data.

Technical Highlights

Backend — Clean Three-Layer Architecture

  • Request flow: Router → Service → Repository → Database, with routers handling HTTP only.
  • Services own business logic and raise domain exceptions; repositories handle data access with soft-delete filtering and tenant scoping.
  • Commit boundary lives at the request level — repositories flush, middleware commits — kept predictable and testable across 30+ API modules.

Frontend — Modular Next.js App

  • Next.js 16 App Router with protected, public, and superadmin route groups across 26 feature modules.
  • @dnd-kit for pipeline and job board drag-and-drop, LiveKit client for real-time interviews, Recharts/Chart.js for analytics, @react-pdf/renderer for report PDFs.

AI Integration Layer

  • Multi-provider support (OpenAI, Google AI, xAI) configurable per tenant for CV parsing, scoring, realtime conversation, and post-interview report generation.

Infrastructure

  • Docker Compose stack (frontend, backend, MySQL, nginx) with Let's Encrypt SSL and a zero-downtime deploy script.
  • AWS S3 for file storage and interview recordings, with database backups to Dropbox.

My Contribution

  • Designed and implemented the multi-tenant backend with strict data isolation and role-based access control.
  • Built the AI interview flow end-to-end: LiveKit integration, realtime conversation, transcript capture, and evaluation reports.
  • Developed CV parsing and candidate scoring services using structured AI prompts and tenant-configurable models.
  • Created the Kanban job board with drag-and-drop pipeline management.
  • Implemented the superadmin client management portal for onboarding and configuring tenant organizations.
  • Set up Docker-based deployment with nginx, SSL, and maintenance-mode deploys.
  • Built dashboard analytics for hiring trends and AI interview outcomes.

Challenges & How I Solved Them

Multi-tenancy without data leaks

Every tenant-scoped query filters by client_id from the authenticated JWT — never from request bodies — preventing cross-tenant access even if a client sends a manipulated payload.

AI reliability in production

CV parsing and scoring are non-blocking — if AI fails, the core workflow still works and recruiters can proceed manually. Structured JSON extraction uses fenced-block parsing with validation fallbacks.

Real-time AI interviews at scale

LiveKit handles WebRTC media while OpenAI realtime models handle conversation. A supervisor model generates structured post-interview feedback so recruiters get consistent, reviewable reports instead of raw transcripts alone.

Permission complexity

Combined role-based guards with action-level permissions so clients can define custom roles (e.g. Recruiter, Hiring Manager) without hardcoding access rules in the frontend.

Tech Stack Summary

FrontendNext.js 16, React 19, TypeScript, Tailwind CSS 4, Framer Motion
BackendFastAPI, SQLAlchemy 2.0, Pydantic v2, Python 3.11+
DatabaseMySQL 8 (production), SQLite/PostgreSQL (dev)
AuthJWT (HS256), bcrypt, RBAC, action guards, 2FA
AIOpenAI (GPT realtime, transcription, scoring), Google AI, xAI
RealtimeLiveKit (WebRTC video/audio interviews)
EmailSendGrid (transactional + OTP)
StorageAWS S3
InfraDocker, nginx, Let's Encrypt, Docker Compose

Have a similar system in mind?