Skip to content

Unified API

Unified ATS API

One standardized interface to read and write applicant tracking system data across every provider. 17 unified resources, 27 supported integrations, zero provider-specific code.

https://api.truto.one/unified/ats
Start integrating API docs
17

Unified resources

27

Supported integrations

Pass‑through

Real-time, no data storage

Data Model

ATS resources

Every resource is normalized across providers. Use the same schema whether your customer is on ApplicantStack or Ashby.

Activities

The activity on a candidate performed by a user.

12 fields Docs →
Activities fields
id string
candidate object
actor object
activity_type string
from array
to array
cc array
subject string
body string
visibility string
updated_at string
created_at string

Applications

The applications represent an application for a job.

12 fields Docs →
Applications fields
id string
candidate object
job object
applied_at string
rejected_at string
source object
credited_to object
current_stage object
reject_reason string
attachments array
created_at string
updated_at string

Attachments

The attachments represent an attachment for a candidate.

9 fields Docs →
Attachments fields
id string
file_name string
file_url string
candidate object
application object
job object
attachment_type string
created_at string
updated_at string

Candidates

The candidates represent a candidate.

18 fields Docs →
Candidates fields
id string
first_name string
last_name string
name string
company string
title string
last_interaction_at string
is_private string
can_email boolean
locations array
phones array
emails array
urls array
tags array
applications array
attachments array
created_at string
updated_at string

Departments

The departments represent a department.

6 fields Docs →
Departments fields
id string
name string
parent object
status string
created_at string
updated_at string

Eeocs

The eecocs represent an Equal Employment Opportunity Commission data submitted by the candidates.

9 fields Docs →
Eeocs fields
id string
candidate object
submitted_at string
race string
gender string
veteran_status string
disability_status string
created_at string
updated_at string

Interviews

The interviews represent an interview.

12 fields Docs →
Interviews fields
id string
application object
candidate object
job_interview_stage object
organizer object
interviewers array
location string
start_at string
end_at string
status string
created_at string
updated_at string

Job Form Fields

The form fields used to apply to a job.

12 fields Docs →
Job Form Fields fields
id string
name string
job object
label string
index integer
is_required boolean
answer_visibility string
description string
type string
options array
group_id string
group_name string

Job Interview Stages

The job interview stages represent a job interview stage.

7 fields Docs →
Job Interview Stages fields
id string
name string
status string
job object
position integer
created_at string
updated_at string

Jobs

The jobs represent a job.

23 fields Docs →
Jobs fields
id string
name string
description string
code string
requisition_id string
status string
locations array
job_posting_urls array
confidential boolean
departments array
teams array
offices array
hiring_managers array
recruiters array
tags array
is_remote boolean
job_type string
job_position_level string
compensation object
created_at string
updated_at string
closed_at string
opened_at string

Offers

The offers represent an offer.

11 fields Docs →
Offers fields
id string
application object
candidate object
job object
creator object
closed_at string
sent_at string
start_date string
status string
created_at string
updated_at string

Offices

The offices represent an office.

7 fields Docs →
Offices fields
id string
name string
parent object
location string
is_remote boolean
created_at string
updated_at string

Organizations

The organizations represent the organization.

4 fields Docs →
Organizations fields
id string
name string
created_at string
updated_at string

Reject Reasons

The reject reasons represent a reject reason.

4 fields Docs →
Reject Reasons fields
id string
name string
created_at string
updated_at string

Scorecards

The scorecards represent a scorecard.

10 fields Docs →
Scorecards fields
id string
application object
candidate object
interview object
interviewer object
submitted_at string
overall_recommendation string
form_values array
created_at string
updated_at string

Tags

The tags represent a tag for a candidate.

4 fields Docs →
Tags fields
id string
name string
created_at string
updated_at string

Users

The users represent a user.

9 fields Docs →
Users fields
id string
first_name string
last_name string
name string
emails array
disabled boolean
access_role string
created_at string
updated_at string

How It Works

From zero to integrated

Go live with the Unified ATS API in under an hour. No boilerplate, no maintenance burden.

01

Connect your customer’s account

Use Truto’s pre-built auth flows to connect any applicant tracking system provider. OAuth, API keys, and custom auth — all handled.

02

Query the unified API

Read and write data through a single, normalized REST API. Same endpoints, same schema, regardless of the underlying provider.

03

Customize with JSONata

Need a field the unified model doesn’t cover? Extend the schema with declarative JSONata mappings — no code deploys, no waiting on us.

From the Blog

ATS integration guides

Deep dives, architecture guides, and practical tutorials for building applicant tracking system integrations.

Unified ATS API

Start building with the Unified ATS API

27 integrations. 17 unified resources. Zero provider-specific code. Ship applicant tracking system integrations in hours, not months.

Talk to us