Supported native integrations
Information Direct maintains first-party integrations with the following applicant tracking systems. Each integration supports order initiation from the ATS, applicant data pre-fill, status sync, and report link passthrough.
- Workday - via Workday Cloud Connect. Supports both the Recruiting and HCM modules.
- Greenhouse - via the Greenhouse Harvest API. Installed as an Onboarding integration.
- BambooHR - via BambooHR's Background Check Integration marketplace.
- iCIMS - via iCIMS TextEngine + Partner Pass.
- Lever - via Lever's Approvals API.
- Taleo - via Oracle HCM Cloud Adapter.
- SmartRecruiters - via the SmartRecruiters Background Check Marketplace.
- JazzHR - via JazzHR's Integrations tab.
What the integration does
A native integration lets you:
- Initiate a background check from the ATS. From the candidate's profile in your ATS, click "Run background check." The integration pre-fills the applicant's name, email, DOB (if in the ATS), and requisition, selects a default package, and sends the invitation - all without leaving the ATS.
- Pre-fill applicant data. Fields you've already collected (name, address, phone) populate automatically. Applicants don't retype what you already have.
- Receive status updates. As each component of the check completes, the status syncs back to the ATS. Most ATSes show it as a stage, a tag, or a status field on the candidate record.
- Access the final report. When the report completes, the integration pushes a secure link into the candidate's ATS profile. Authorized ATS users click the link and the report opens in the Information Direct portal - no additional login.
- Log events. Every action - invitation sent, consent received, component complete, final adverse action issued - writes an event to the candidate's ATS activity log.
Setting up a native integration
Step 1: Enable the integration in your ATS
Each ATS has its own install flow. For Workday, it's an integration configuration in the tenant admin panel. For Greenhouse, it's a marketplace install. For BambooHR, it's a toggle in Integration Settings. Our help center has screenshots per platform; typically, the install is a two-click process.
Step 2: Exchange credentials
You'll get an OAuth prompt or an API-key exchange screen. Authenticate with an account that has admin rights in both systems. If your ATS is Workday or another enterprise platform with SSO, this step uses SSO - no additional password.
Step 3: Map fields
The integration includes a default field mapping. For most accounts, the defaults work as-is. If your ATS has custom fields - a specific requisition ID format, a custom "role category" field you want mapped to our package selector - map them in the settings screen. Field mapping is one-way from the ATS to Information Direct during order creation, and two-way for status updates.
Step 4: Configure default packages
Assign default packages by role, department, or manually. For example: "Drivers" to Premium + MVR, "Warehouse" to Plus, "Executives" to Premium + credit report. When a candidate is triggered from that role group, the corresponding package is preselected. The recruiter can override before submitting.
Step 5: Test with a single candidate
Before enabling for all users, run a test. Create a test candidate in the ATS, trigger a background check from their profile, confirm the applicant gets the invite, and watch the status updates flow back to the ATS as the check runs. Do this with a real (but non-production) applicant - a team member who has agreed to be test-checked, typically.
Step 6: Roll out
Enable for your recruiting team. Most teams train in under an hour because the new flow is simply "click the button in the ATS instead of logging into the portal."
Custom integrations via API
If your ATS isn't on the native list - or if you've built custom internal tools - you can integrate via our public API. The key endpoints for ATS-style workflows:
| Method | Endpoint | Purpose |
|---|---|---|
POST | /v1/orders | Create a new background check |
GET | /v1/orders/:id | Fetch order status and findings |
POST | /v1/orders/batch | Create a batch of orders |
POST | /v1/webhooks | Register a webhook endpoint |
GET | /v1/reports/:id/pdf | Download the finalized report PDF |
Webhooks fire on state transitions - consent signed, component complete, report complete, dispute opened, final adverse action issued. Register one webhook per environment. Payloads are signed with an HMAC-SHA256 header you verify server-side.
Event mapping for custom integrations
Most ATSes model a candidate's journey as a pipeline of stages. A clean pattern:
- Candidate advances to "Background check" stage, then your ATS calls
POST /v1/orderswith the applicant details. - Information Direct emits
order.consent_signed, then your ATS updates status to "Background check in progress." - Information Direct emits
order.report_completewithdisposition: clear, then your ATS advances to the next stage automatically. - Information Direct emits
order.report_completewithdisposition: records_found, then your ATS routes to a manual-review stage with the hiring manager.
This kind of pipeline is straightforward to build; we have reference implementations in Python, Node, and Go at apidocs.
Security
All integrations - native and API - use OAuth 2.0 bearer tokens. Tokens are scoped per-integration; revoking an integration revokes the token. Webhooks are HMAC-signed. The report link passthrough into the ATS uses short-lived signed URLs (default 30 minutes; configurable to 5 minutes for tighter-controlled environments).
Troubleshooting
Applicant data isn't pre-filling
Check your field mapping. The most common cause is an ATS that stores DOB in a non-default field that wasn't mapped. Update the mapping and re-run.
Status isn't syncing back to the ATS
Verify the webhook URL is reachable and returning a 2xx response within 10 seconds. If your ATS is behind a VPN, you may need to whitelist our egress IPs - email support for the current list.
Some candidates get duplicate invites
Usually caused by a retry loop in your ATS when the first order creation request times out. Set idempotency keys on your API calls (Idempotency-Key header) and we'll dedupe automatically.
Need help scoping?
If you're picking an ATS or evaluating whether to build vs. use a native integration, email moses@informationdirect.us. We'll share integration patterns from clients with similar stacks, time-to-live estimates, and known gotchas per platform.