ATS API Integration: Real-Time Recruiting Data, Candidate Pipelines, and Hiring Automation
February 6, 2026
Recruiting products depend on accurate, up-to-date hiring data. Candidate stage changes, interview updates, job postings, and hiring decisions need to be reflected immediately—across tools, teams, and downstream integrations.
ATS API integration exists to make that possible. In this guide, we'll explain what ATS API integration actually means, how real-time recruiting data differs from batch syncs, which ATS data models matter in practice, and how Unified's ATS API fits into a broader architecture that includes HR & Directory, LMS, and verification tools.
Introduction to ATS API Integrations
Applicant Tracking platforms such as Greenhouse, Lever, Workable, iCIMS, and SmartRecruiters act as the system of record for recruiting. They manage jobs, candidates, applications, interviews, documents, scorecards, and recruiting activity throughout the hiring process.
But ATS platforms don't operate in isolation. Recruiting analytics tools, assessment platforms, interview software, background check providers, job boards, and AI screening products all need access to ATS data. ATS API integration enables those products to read from and write to recruiting platforms—without brittle exports, delayed syncs, or duplicated logic.
What Is ATS API Integration?
ATS API integration is the process of connecting software products to applicant-tracking platforms via APIs in order to programmatically access recruiting data.
In practice, this includes:
- Retrieving candidates, jobs, and applications
- Tracking application stage changes
- Scheduling and updating interviews
- Attaching documents and scorecards
- Writing assessment results or status updates back to the ATS
- Reacting to recruiting events as they occur
ATS API vs HR & Directory API (and Where the Handoff Occurs)
ATS and HR platforms serve different purposes—and Unified treats that boundary explicitly.
- ATS APIs handle the recruiting lifecycle: candidates, applications, interviews, offers, and hiring decisions.
- HR & Directory APIs handle employment: employees, org structure, locations, benefits, payroll artifacts, and identity.
An ATS may signal that a candidate was hired (for example via a hired_at timestamp), but that does not create an employee record automatically. The application decides when and how to create or update an employee using the HR & Directory API.
This explicit handoff is intentional. It prevents incorrect assumptions, supports complex hiring scenarios (contractors, rehires, multiple offers), and keeps ATS and HR responsibilities cleanly separated.
Real-Time vs Batch ATS Data Sync
Many ATS integrations rely on scheduled syncs—polling every few hours or copying recruiting data into a separate database. That approach introduces delay and risk.
Understanding Real-Time ATS API Architecture
A real-time ATS API:
- Reads and writes data directly against the source ATS
- Does not rely on cached replicas
- Reflects recruiting changes as they occur
Unified's ATS API uses a pass-through architecture. Every API request is routed directly to the underlying ATS. There are no background sync jobs and no stored recruiting records sitting at rest.
Why Batch Syncs Break Recruiting Products
Batch-based ATS integrations lead to:
- Delayed candidate status updates
- Missed interview changes
- Out-of-date job postings
- Inconsistent analytics
For recruiting products—where timing matters—scheduled syncs are fundamentally limiting.
Core ATS Data Models (and How They Behave)
Unified normalizes recruiting data within the ATS category, providing consistent objects across dozens of applicant-tracking platforms. These objects are deeply defined, with clear lifecycle semantics and intentional constraints.
Candidates
- Represent people applying for jobs
- Support create, list, retrieve, update, and remove operations
- Include personal details, tags, experience, education, skills, and provider-specific custom fields
- May include an optional
user_idreferencing an HR employee (typically the recruiter)
Important notes:
- Some fields are provider-dependent
- Certain fields (such as experience history) may be slow or incomplete
Applications
- Link a candidate to a job
- Include lifecycle timestamps such as
applied_at,hired_at, andrejected_at - Provide a normalized
statusand a provider-specificoriginal_status - Support write operations on many platforms, but not all
Key constraint:
hired_at is a recruiting signal only. It does not create an employee automatically.
Jobs
- Represent requisitions or open roles
- Include attributes such as description, compensation, employment type, location, and number of openings
- Support create, update, and close operations where the provider allows it
Provider variability:
- Some ATS platforms restrict external job creation or editing
- Certain fields may be unavailable depending on the provider
Interviews
- Capture scheduled interview events
- Link candidates, jobs, applications, and interviewers
- May be read-only on some ATS platforms
Activities
- Represent recruiting events such as notes, status changes, or communications
- Can reference candidates, applications, jobs, documents, and employees
- Write support varies by provider
Documents
- Store resumes, cover letters, and other attachments
- Uploaded via base64 and retrieved through time-limited URLs
- Associations to candidates, applications, jobs, or employees are provider-dependent
Scorecards
- Capture interview feedback and evaluations
- Support create, update, and retrieve operations where the ATS allows it
Application Statuses
- Read-only list of normalized and provider-specific recruiting stages
- Used to understand and map pipeline state consistently
Provider-Specific Fields
Unified normalizes critical recruiting fields while still making provider-specific fields available when required. This allows teams to build against consistent objects without losing access to ATS-specific attributes.
Normalization stops where providers diverge. Unified does not invent missing fields or infer recruiting semantics.
Common ATS API Integration Use Cases
Recruiting Analytics & Reporting
Build dashboards that track pipeline velocity, time-to-hire, candidate sources, and recruiting performance across multiple ATS platforms.
Candidate Sourcing Tools
Create sourcing products that add candidates directly into ATS pipelines and track engagement across platforms.
Interview Scheduling & Assessment Platforms
Coordinate interviews, attach scorecards, and write results back to the ATS in real time.
Background Checks & Verification
Initiate background checks when applications reach specific stages and store results or documents back in the ATS.
Recruitment Marketing & Job Distribution
Publish jobs from ATS platforms to career sites or external channels and track application sources centrally.
AI-Based Candidate Analysis
Analyze resumes and applications using AI while keeping ATS data as the source of truth.
How Real-Time ATS Events Work
Native and Virtual Webhooks
- Native webhooks are forwarded immediately when supported by the ATS
- Virtual webhooks simulate event delivery by polling the source ATS at configurable intervals (as frequently as one minute on paid plans)
Both use the same subscription interface and event schema, allowing applications to process backfills and live updates consistently.
Retries, Health, and Visibility
- Polling intervals are configurable
- Built-in retry and backoff logic handles transient failures
- Each webhook has an audit trail and health status
Webhook execution follows usage-based pricing, and each run that checks for changes counts as an API call.
Authentication, Permissions, and Connection Health
Unified abstracts ATS authentication complexity:
- OAuth2 and API-key-based flows are handled automatically
- Unified scopes map to provider-specific permissions
- Embedded authorization components or manual flows are supported
Connections are identified by a connection ID, not credentials.
Unified manages:
- Token exchange and refresh
- Provider-specific OAuth behavior
- Standardized error responses
- Connection health states (
healthy,unhealthy,needs_reconnect)
Security, Privacy, and Data Handling for ATS Data
Recruiting data often includes sensitive information such as resumes and interview notes. Unified's architecture is designed to minimize risk.
Zero-Storage Architecture
- No candidate or recruiting data is stored at rest
- No ATS payloads are cached or mirrored
- Requests are stateless and pass-through
Document Handling
- Documents are uploaded via base64
- Retrieved through time-limited URLs (typically expiring after one hour)
- No long-term document retention on Unified infrastructure
Controls and Compliance
- SOC 2 Type II
- GDPR, CCPA/CPRA, PIPEDA, HIPAA
- TLS 1.2+ in transit, AES-256 for minimal operational metadata
- SAML/OIDC SSO, role-based access, IP allowlisting
- Optional log streaming to customer-owned Datadog instances
ATS and HR: Explicit References, No Implicit Lifecycle
Certain ATS objects include optional user_id or user_ids fields that reference HR employees (for example, recruiters or interviewers). These references are contextual only.
What Unified does not do:
- Automatically convert candidates into employees
- Trigger HR record creation when
hired_atis set - Infer employment from recruiting state
Hiring ends in the ATS. Employment begins in HR & Directory—when the application decides.
Challenges and Constraints to Plan For
Unified is explicit about ATS limitations:
- Write support varies by provider
- Some objects may be read-only
- Recruiting stages differ widely across platforms
- Certain fields may be slow or incomplete
- No inference or automation beyond what the provider supports
These constraints are intentional. Unified provides reliable recruiting primitives, not opinionated hiring logic.
Build vs Buy ATS API Integrations
Building In-House
- Multiple ATS APIs to learn and maintain
- Provider-specific authentication, pagination, and rate limits
- Custom polling, retries, and reconciliation
- Ongoing maintenance overhead
Using a Unified ATS API
- One ATS API surface across dozens of platforms
- Real-time data access without replicas
- Centralized authentication, event delivery, and maintenance
- Usage-based pricing aligned with scale
Best Practices for Implementing ATS API Integrations
- Rely on
original_statuswhen provider fidelity matters - Treat
hired_atas a signal, not an automation - Expect provider variability and partial data
- Monitor connection health and webhook delivery
- Keep recruiting and employment logic in the application layer
Build ATS integrations the right way
If your product depends on accurate recruiting data—candidate pipelines, interview updates, assessments, or hiring signals—batch syncs and one-off ATS integrations won't scale.
Unified's ATS API gives you real-time, authorized access to recruiting data across dozens of ATS platforms, without storing candidate data or forcing you to maintain provider-specific code paths.
→ Start your 30-day free trial
Test ATS integrations with real-time reads, writes, and webhooks—no setup fees during the trial.
Talk through your recruiting or ATS → HR use case with the team that built the platform.
FAQ
What is ATS API integration?
Connecting recruiting software to applicant-tracking platforms via APIs to access and update hiring data programmatically.
Which ATS platforms can I integrate with?
Unified supports dozens of ATS platforms, including Greenhouse, Lever, Workable, iCIMS, Jobvite, SmartRecruiters, and more.
Is ATS data real-time?
All API calls are routed directly to the source ATS. Events are delivered via native or virtual webhooks.
Can I write changes back to the ATS?
Yes, subject to provider support. Many objects support create and update operations.
Does the ATS API create employees automatically?
No. Employee creation must be handled explicitly using the HR & Directory API.
How are resumes and attachments handled?
Documents are uploaded via base64 and retrieved through time-limited URLs.