Back to Featured Work
Feature HighlightView UI

ATS CV Upload & AI Profile Extraction

Designed the end-to-end ATS CV upload flow covering file intake, AI extraction, profile creation, async notifications, and cross-platform synchronization between BetterHR, AI services, and Job Landing.

Requirements

Defined the applicant intake journey from CV upload to parsed profile presentation inside the ATS dashboard.

  • Upload CV and extract structured applicant data with AI
  • Populate profile cards with bio, education, experience, skills, languages, certificates, and social links
  • Notify HR stakeholders and invite new applicants into Job Landing when needed
Architecture

Outlined a business-friendly system flow where BetterHR handles the ATS experience, a queue runs the full background process.

  • File, queue, AI extraction, and applicant services are separated by clear runtime responsibilities
  • The platform stores the CV and starts the full background workflow through a queue
  • Notification, email, and push services keep recruiters and hiring teams informed
Workflow

Modeled an asynchronous upload-to-profile pipeline so recruiters do not wait on extraction before continuing ATS work.

  • Upload CV file and store it in S3-compatible storage
  • Run extraction asynchronously and publish completion via popup notification
  • Refresh ATS dashboard with parsed applicant data after profile build succeeds
ERD

Captured the core applicant profile domains created from a single CV source while keeping service ownership clear across systems.

  • Applicant basic information as root profile record
  • Education, work experience, skills, languages, certificates, and social links as structured child datasets
  • Unique email per job post prevents duplicate candidate records for the same opening
Implementation

Planned the feature in delivery slices spanning storage upload, AI extraction, event-driven notifications, and downstream profile synchronization.

  • Storage upload plus AI project handoff
  • Async completion handling with Pusher and email services
  • Conditional invitation flow for first-time applicants on Job Landing
Testing

Specified validation around atomic processing, async completion, and profile consistency across ATS and Job Landing.

  • Prevent duplicate applicants by enforcing unique email within the same job post
  • Verify success notifications only fire after extraction and profile creation complete
  • Ensure parsed CV fields map safely into recruiter-facing applicant cards