Case Study

Recruitment ATS for Applicant Tracking & Hiring

How we built a recruitment ATS platform for 200+ companies and 80K+ candidates — with resume parsing, interview scheduling, candidate pipelines, and 65% time-to-hire reduction.

Industry
HR Tech / SaaS
Duration
8 Months
Services
Full-Stack · Elasticsearch · Calendly
Markets
United States

Resume Parsing · Pipeline · Employer Brand

200+
Companies
80K+
Candidates
65%
Time-to-Hire Reduction
Elasticsearch
Resume Search

The Client's Vision

A staffing and recruitment SaaS serving 200+ SMB and mid-market companies was drowning in spreadsheets and email. Recruiters manually screened resumes, copied candidate details into ATS fields, and coordinated interviews via back-and-forth emails. Time-to-hire averaged 35 days.

They wanted a modern ATS where resumes could be parsed automatically, candidates searchable by skills and experience, interview scheduling handled via Calendly, and pipeline stages customizable per company — with strong employer branding on career pages.

What Was Breaking

Resume Parsing

Resumes arrived as PDFs and Word files in every format imaginable. Manual data entry took 10–15 minutes per candidate. Typos and inconsistent naming caused duplicate records and missed matches.

Interview Scheduling

Coordinating 3–5 interview rounds across multiple calendars was a nightmare. Recruiters sent Doodle polls and email chains. No-shows and double-bookings were common. Candidates dropped out from frustration.

Candidate Pipeline

Each company had different stages — Applied, Phone Screen, Technical, Offer, etc. The old system used a single rigid pipeline. Drag-and-drop was slow. Bulk actions (reject, move) didn't exist.

Employer Branding

Career pages looked generic. Companies wanted custom domains, branded application flows, and integration with their website. The old system offered only white-label URLs.

The Architecture We Built

We built a multi-tenant ATS with resume parsing via document extraction, Elasticsearch for full-text search, and Calendly API for interview scheduling. Pipelines are configurable per company. Career pages support custom branding and domains. SendGrid powers candidate and interviewer emails.

System Architecture

Next.js Recruiter Portal & Career Pages
Kanban pipeline, candidate profiles, and job board. White-label career pages with custom branding and application form
API Gateway & Auth Layer
Multi-tenant isolation — each company's data is separated. Role-based access for recruiters, hiring managers, and admins
PostgreSQL — Candidates, Jobs & Pipelines
Jobs, applications, pipeline stages, and interview slots. Parsed resume data and activity history per candidate
Elasticsearch — Resume & Job Search
Full-text search on skills, experience, education. Faceted filters for location, salary, and job type. Real-time index updates
SendGrid & Calendly API Integration
Transactional emails for applications and interview invites. Calendly API for scheduling links and availability sync

Resume parsing uses a hybrid approach — we extract text from PDFs and Word via libraries, then apply regex and NLP patterns for name, email, phone, skills, and experience. We store structured data in PostgreSQL and sync to Elasticsearch for search. Parsing accuracy improved from 60% to 92% with iterative refinement.

Tech Stack

Next.js
Node.js
PostgreSQL
Elasticsearch
SendGrid
Calendly API
Resume Parsing
Multi-Tenant

How We Delivered It

Phase 1 — Weeks 1–3
Discovery & Schema Design

Mapped recruiter workflows across 20 pilot companies. Designed multi-tenant schema with company isolation. Defined pipeline stage and job models.

Phase 2 — Weeks 4–14
Core ATS & Resume Parsing

Built job posting, application, and pipeline modules. Implemented resume parsing with PDF/Word extraction. Indexed candidates in Elasticsearch with full-text search.

Phase 3 — Weeks 15–24
Calendly & Career Pages

Integrated Calendly API for scheduling links. Built branded career pages with custom domains. Implemented SendGrid email templates for applications and interviews.

Phase 4 — Weeks 25–32
Pipeline Customization & Rollout

Added configurable pipeline stages per company. Implemented bulk actions and analytics. Migrated 200+ companies with historical data. Trained recruiters and measured time-to-hire.

The Impact

35 days time-to-hire
65% reduction
Faster scheduling and pipeline visibility
200+ companies
On platform
Multi-tenant ATS with custom pipelines
80K+ candidates
Searchable
Elasticsearch full-text and faceted search
Manual resume entry
92% parsed
Automated extraction and structuration
“The resume parsing alone saves our recruiters hours every day. We went from searching through email to having a searchable talent pool. Calendly integration eliminated the scheduling chaos.”
— Head of Talent, Staffing Company

What Made This Work

Resume parsing is hard — PDFs and Word files have inconsistent layouts. We focused on extracting the high-value fields (name, email, phone, skills, experience) and accepted that some fields might be wrong. Recruiters can correct parsed data; we learn from corrections over time.

Elasticsearch made candidate search transformative. Recruiters can find “React developers with 5+ years in fintech” in seconds. We use synonym expansion for skills (e.g., “JS” maps to “JavaScript”) and faceted filters for location and salary. Index updates are near real-time.

Calendly API integration was straightforward — we create scheduling links per interview round and pass candidate context via custom questions. The tricky part was handling cancellations and rescheduling. We sync Calendly webhooks to update our interview records. No-shows are tracked and flagged for follow-up.

Building a Recruitment ATS?

We help HR Tech companies build production-grade ATS platforms. Let's talk about your architecture.

Book Strategy CallCase Studies