arrow_back Work
chevron_left ALL_WORK
Client Project / Lead Developer

The Hiring Company.

A production-grade, referral-powered ATS built from scratch — connecting companies, recruitment partners, and candidates with commission tracking, automated payouts, and full admin operations.

PHP (Custom MVC) MySQL PDO Twig JWT REST APIs Bootstrap
lock Code: Private (client IP)
1.9M+
Candidate records migrated & queryable
5
RBAC roles with geo-based scoping
Cursor
Pagination — flat latency at depth
End‑to‑end
Ownership incl. junior code reviews

Overview

An applicant tracking system for a recruitment marketplace: companies post roles, recruitment partners refer candidates, and the platform tracks every candidate from referral to placement while handling the commission and payout accounting behind it. I led development with one junior developer, owning requirements, architecture, DB schema, and API contracts end to end.

Architecture & Key Decisions

The Hard Part

bolt

Migrating 1.9M+ records from Ceipal ATS

The existing candidate data lived in Ceipal ATS and had to be moved into the new data model via bulk CSV — without list views grinding to a halt at scale.

  • Refactored the database schema to fit the new data model.
  • Added strategic indexes based on the actual query patterns the app ran.
  • Replaced offset pagination with cursor-based pagination so list views stayed performant.

Result: 1.9M+ records migrated and queryable with consistent performance.

Key Features

Trade-offs & What v2 Adds

Why a custom framework over Laravel?

Full control and a lighter footprint for the deployment environment.

Why OTP over OAuth?

Simplicity for the target user base.

What v2 would add

Redis caching, an async queue for OTP/email, API rate limiting, Elasticsearch for job search, and automated tests.

Want the full walkthrough?

Happy to walk through the architecture, trade-offs, and the migration in detail.