Independent · 2024 to present
Recruitment Operations Platform
An end-to-end operations platform: full recruitment lifecycle plus integrated sales monitoring.
Anonymised. Client names and operational detail withheld.
Role
Full-stack Architect
Year
2024 to present
Stack
- Next.js 16
- React 19
- TypeScript
- Tailwind CSS
- .NET 10
- .NET Aspire
- SQL Server
- OpenAI
- Docker
- Azure Kubernetes
- Azure DevOps
Overview
A role-based system of record connecting business development, delivery managers, and recruiters around the same client and candidate data, replacing fragmented manual tracking. Built end-to-end: a Next.js front end, a .NET (Aspire) API, and a stored-procedure-first SQL Server layer on Azure Kubernetes.
Challenge
- Model a long, multi-actor lifecycle (request, allocation, recruiter, candidate pipeline, close) with role-based access across 5+ roles.
- Add AI value without blocking the request flow: requirement analysis, Boolean search strings, and résumé-driven screening questions.
- Run reliably and affordably across test/UAT/prod on shared infrastructure, with per-environment config that could not drift.
Approach
- Architected the system end-to-end: a Next.js 16 / React 19 front end, a .NET 10 Aspire-orchestrated API, and a Dapper, stored-procedure-first SQL Server layer.
- Built a consistent service/controller pattern with Azure AD JWT auth, global exception handling, and fire-and-forget background LLM tasks.
- Owned the delivery path: Azure DevOps CI/CD with build-once/deploy-everywhere, Key-Vault-sourced ConfigMaps, and a namespace-isolated AKS cluster behind nginx ingress with managed TLS.
Outcomes
- Shipped the recruitment lifecycle plus a three-phase sales-monitoring module (pipeline, activity logging, reviews, dashboards).
- Delivered 18+ API controllers and dozens of stored procedures with pagination, soft-delete and audit trails, and AI-assisted screening.
- Stood up a repeatable multi-environment AKS deployment that became the template for the rest of the estate, and cut cluster cost by roughly half.
Curious about the longer version, or the parts that didn't make the page? I'd be happy to talk it through. Get in touch