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.
Resume Parsing · Pipeline · Employer Brand
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.
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.
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.
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.
Career pages looked generic. Companies wanted custom domains, branded application flows, and integration with their website. The old system offered only white-label URLs.
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.
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.
Mapped recruiter workflows across 20 pilot companies. Designed multi-tenant schema with company isolation. Defined pipeline stage and job models.
Built job posting, application, and pipeline modules. Implemented resume parsing with PDF/Word extraction. Indexed candidates in Elasticsearch with full-text search.
Integrated Calendly API for scheduling links. Built branded career pages with custom domains. Implemented SendGrid email templates for applications and interviews.
Added configurable pipeline stages per company. Implemented bulk actions and analytics. Migrated 200+ companies with historical data. Trained recruiters and measured time-to-hire.
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.
We help HR Tech companies build production-grade ATS platforms. Let's talk about your architecture.