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
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.