HRMS migration
Field-level mapping, validation, and rollback between Kallidus Recruit and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.
Kallidus Recruit
Source
Bullhorn ATS & CRM
Destination
Compatibility
7 of 12
objects map 1:1 between Kallidus Recruit and Bullhorn ATS & CRM.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Kallidus Recruit to Bullhorn is a migration from a UK-built ATS module within a broader talent suite to a staffing-focused ATS and CRM with global adoption in agency and enterprise recruitment. The primary structural difference is that Kallidus Recruit models Vacancies as standalone records with internal pipelines, while Bullhorn uses a Job object with separate Opportunity records for placements and a Client Corporation record for the hiring company. We map Kallidus Candidates directly to Bullhorn Candidates, map Vacancy records to Bullhorn Job postings with pipeline stages preserved, and link Applications to the Bullhorn JobOrder and Candidate records using the vacancy identifier as the dedupe key. Because Kallidus Recruit exposes its Backoffice API only to Super Users, we coordinate credential provisioning during scoping before any export tooling can authenticate. We do not migrate email templates, agency portal configurations, or automated reminder flows; we deliver a written inventory of these for the customer's admin to rebuild in Bullhorn.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Kallidus Recruit object lands in Bullhorn ATS & CRM, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Kallidus Recruit
Candidate
Bullhorn ATS & CRM
Candidate
1:1Kallidus Recruit Candidates map directly to Bullhorn Candidates. The primary contact fields (name, email, phone, address, candidate profile) transfer to Bullhorn Candidate. We use the candidate email address as the dedupe key during import to avoid duplicate records. Candidate status history from Kallidus (active, screening, interview, offer, placed) maps to Bullhorn Candidate status fields. Any notes attached to the Candidate record migrate as Bullhorn Note records linked via ContentDocumentLink.
Kallidus Recruit
Vacancy
Bullhorn ATS & CRM
JobOrder
1:1Kallidus Recruit Vacancies map to Bullhorn JobOrder records. Role title, department, location, job description, opening date, and closing date transfer directly. The Kallidus pipeline stage model maps to Bullhorn JobOrder status (Open, Interview, Offer, Extended, Filled, Closed). We inventory every custom vacancy field during scoping because customer-defined fields on Vacancy are not always consistently exposed in Kallidus exports; these require manual field creation in Bullhorn using Bullhorn's custom field editor or the Custom Objects API before the vacancy import.
Kallidus Recruit
Application
Bullhorn ATS & CRM
JobSubmission
1:1Kallidus Recruit Applications link a Candidate to a Vacancy and carry status, submission date, screening notes, and interview scores. We map Applications to Bullhorn JobSubmission records, resolving the Candidate reference and JobOrder reference at migration time using the Kallidus candidate email and vacancy identifier as foreign keys. Application status transitions (applied, short-listed, rejected, withdrawn) map to Bullhorn JobSubmission status values.
Kallidus Recruit
Interview Record
Bullhorn ATS & CRM
Placement Certification or Note
1:1Kallidus Recruit interview scheduling records (date, interviewer assignment, outcome, candidate self-scheduling confirmation) transfer as Note records or custom fields on the Bullhorn JobSubmission. Bullhorn does not have a native interview scheduling sub-object equivalent to Kallidus Recruit's interview management module, so interview outcome data is preserved as structured notes on the JobSubmission for admin reference. Candidate self-scheduling preferences do not have a Bullhorn equivalent and are noted in the handoff document for manual reconfiguration.
Kallidus Recruit
Hiring Manager and User
Bullhorn ATS & CRM
User and Contact (Client Corporation)
1:manyKallidus Recruit User accounts (internal staff and hiring managers) split into two Bullhorn objects. Internal recruiter and admin users map to Bullhorn User records via email match. Hiring managers attached to Vacancies map to Bullhorn Contact records under the relevant Client Corporation (JobOrder). Role-based permissions from Kallidus do not transfer to Bullhorn profiles; we document the role structure in the inventory and the customer's Bullhorn admin configures profiles and permissions post-migration.
Kallidus Recruit
Agency Portal Contact
Bullhorn ATS & CRM
Contact (under Client Corporation)
1:1External agency recruiters who submit candidates via the Kallidus agency portal have separate contact records (agency name, contact name, email, phone). These map to Bullhorn Contact records under a Client Corporation record representing the agency. We export submission history associated with each agency contact as Note records on the Contact for reference. The agency portal submission interface does not migrate; the customer's Bullhorn admin configures external recruiter access via Bullhorn's standard client portal or VMS connector if needed.
Kallidus Recruit
Custom Vacancy Fields
Bullhorn ATS & CRM
Custom Fields on JobOrder
lossyOrganisations that have added custom fields to Vacancy records in Kallidus Recruit to capture sector-specific data (for example, security clearance level, travel requirements, contract type) require manual schema creation in Bullhorn. We inventory all custom vacancy fields during scoping by exporting the Kallidus backoffice field configuration, then create matching custom fields on the Bullhorn JobOrder object using the Custom Objects API (up to 55 fields per entity). The customer reviews field names and types before we run the vacancy import. This is a manual configuration step that adds time to the scoping phase.
Kallidus Recruit
Email Template
Bullhorn ATS & CRM
Email Template (not migrated as code)
lossyKallidus Recruit email templates used for candidate communications (with merge fields for Candidate and Vacancy data) are exported as template bodies and field mapping documentation. Bullhorn email templates use a different merge field syntax and template structure. We do not migrate templates as code. We deliver a written inventory of every Kallidus email template with its body content, merge field references, and the candidate communication it triggers, so the customer's Bullhorn admin can recreate them in Bullhorn's template editor. The standard non-customisable reminder email is noted as a gap that Bullhorn's customisable templates will resolve.
Kallidus Recruit
Vacancy Poster (job-board posting)
Bullhorn ATS & CRM
Job Posting Distribution
lossyKallidus Recruit's Vacancy Poster distributes job postings to multiple boards from one place. We document the active job-board distribution list for each Vacancy (which boards, which date, current status). Bullhorn's job publishing module supports direct posting to major job boards and LinkedIn. We inventory the active board distribution and deliver it as a configuration guide; re-posting to job boards in Bullhorn is a manual step that the customer's admin performs or that can be configured as part of Bullhorn's standard job-board integration setup.
Kallidus Recruit
Candidate Status History
Bullhorn ATS & CRM
Candidate History via Note
1:1Kallidus Recruit tracks candidate status changes over time (applied, screening, interview, offer, placed, rejected). Bullhorn Candidate records do not preserve a native status history timeline beyond the current status field. We export the full status change log from Kallidus as a series of dated Note records on the Bullhorn Candidate, each stamped with the original status and timestamp, so that the hiring manager or recruiter can review the candidate's journey without referring back to the source system.
Kallidus Recruit
GDPR Anonymisation and Redaction Data
Bullhorn ATS & CRM
Candidate (with data handling notes)
lossyKallidus Recruit includes built-in GDPR-compliant candidate anonymisation and redaction tooling. We document any candidates that have been anonymised or had data redacted under GDPR requests, with the redaction date and scope. Bullhorn does not have a native GDPR redaction workflow equivalent; we flag these records in the migration inventory so the customer's Bullhorn admin can apply appropriate data handling notes or engage Bullhorn's compliance documentation process if required.
Kallidus Recruit
Xref and Adobe Sign Integration Records
Bullhorn ATS & CRM
Note (inventory only)
1:1Kallidus Recruit customers who use Xref for reference checks or Adobe Sign for document flows have linked records and attachments that do not export as structured data. We inventory the Kallidus integration configuration (which vacancy stages trigger Xref, which document types use Adobe Sign) and deliver it as a reference document for the customer's Bullhorn admin to re-establish via Bullhorn's native integrations (Bullhorn has an Adobe Sign connector in the marketplace) or to document as a gap in the Bullhorn setup.
| Kallidus Recruit | Bullhorn ATS & CRM | Compatibility | |
|---|---|---|---|
| Candidate | Candidate1:1 | Fully supported | |
| Vacancy | JobOrder1:1 | Fully supported | |
| Application | JobSubmission1:1 | Fully supported | |
| Interview Record | Placement Certification or Note1:1 | Fully supported | |
| Hiring Manager and User | User and Contact (Client Corporation)1:many | Fully supported | |
| Agency Portal Contact | Contact (under Client Corporation)1:1 | Fully supported | |
| Custom Vacancy Fields | Custom Fields on JobOrderlossy | Mapping required | |
| Email Template | Email Template (not migrated as code)lossy | Fully supported | |
| Vacancy Poster (job-board posting) | Job Posting Distributionlossy | Fully supported | |
| Candidate Status History | Candidate History via Note1:1 | Fully supported | |
| GDPR Anonymisation and Redaction Data | Candidate (with data handling notes)lossy | Fully supported | |
| Xref and Adobe Sign Integration Records | Note (inventory only)1:1 | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
Kallidus Recruit gotchas
API tokens restricted to Super Users
Recruit and HRIS share a brand but not a schema
Standard email templates cannot be customised by the customer
Limited public documentation of API rate limits
Bullhorn ATS & CRM gotchas
ATS Growth edition has no API access
Attachments excluded from CSV bulk exports
Custom Object limits vary sharply by edition
Opportunity pipeline stages are recruitment-specific
Resume parse quality varies by document format
Pair-specific challenges
Migration approach
Discovery and Super User credential provisioning
We conduct a structured discovery call with the customer's Kallidus Recruit administrator to audit the source portal. This includes an inventory of Candidate records, Vacancy records (active and closed), Application records, Hiring Manager and User accounts, agency portal contacts, custom vacancy fields, and any active Xref or Adobe Sign integration configurations. Because the Kallidus Backoffice API requires Super User access, we coordinate the provisioning of a Super User token or a named migration contact with Super User permissions before any export tooling can authenticate. The discovery output is a written migration scope document with record counts, object inventory, and a Bullhorn edition recommendation based on the customer's team size and feature requirements.
Destination schema design and pipeline mapping
We design the Bullhorn destination schema before any data moves. This includes creating Client Corporation records (one per unique hiring company in the Vacancy data), configuring JobOrder record types and status values that map to the Kallidus vacancy pipelines, setting up Candidate custom fields if required, and mapping the Kallidus application status values to Bullhorn JobSubmission statuses. Custom vacancy fields from Kallidus are reviewed with the customer, created as custom fields on Bullhorn JobOrder using the Custom Objects API, and validated before vacancy import begins. This phase produces a schema design document and a Bullhorn sandbox configuration that the customer reviews and approves.
Sandbox migration and record reconciliation
We run a full migration into a Bullhorn Sandbox using a representative data sample. The customer's recruiter lead and system administrator reconcile record counts (Candidates in, Client Corporations in, JobOrders in, JobSubmissions in), spot-check 25-50 random records against the Kallidus source for field-level accuracy, and verify that custom vacancy fields have populated correctly on JobOrder records. Any mapping corrections are applied to the migration scripts before production migration begins. This step prevents discovery of mapping errors after the production cutover has started.
User and Contact provisioning
We extract every distinct Hiring Manager and User from Kallidus Recruit and separate them into two groups: internal staff who will use Bullhorn (mapped to Bullhorn User records via email match) and external hiring managers or agency contacts (mapped to Bullhorn Contact records under Client Corporation). Internal recruiters without a matching Bullhorn User account are held in a reconciliation queue for the customer's admin to provision before record import resumes. Agency contact records are imported after Client Corporation records are in place so that the parent lookup is satisfied.
Production migration in dependency order
We run production migration in record-dependency order: Client Corporations (from hiring companies on Vacancies), Bullhorn Users (validated by admin), Candidates (from Kallidus Candidate records), JobOrders (from Kallidus Vacancies with custom fields created in step 2), JobSubmissions (linking Candidate to JobOrder), agency Contact records, interview outcome notes, candidate status history notes, and integration inventory documentation. Each phase emits a row-count reconciliation report before the next phase begins. We use Bullhorn's REST API with adaptive throttling, starting conservatively and ramping up while monitoring for rate-limit responses.
Cutover, delta sync, and workflow inventory handoff
We freeze Kallidus Recruit writes during the cutover window, run a final delta migration of any records modified during the migration window (new Candidates applied, status changes), then enable Bullhorn as the system of record. We deliver the email template inventory, agency portal configuration notes, job-board distribution list, Xref and Adobe Sign integration notes, and the GDPR redaction log to the customer's Bullhorn admin. We support a one-week hypercare window where we resolve any data quality issues raised by the customer's team. We do not rebuild Kallidus email templates, agency portal configurations, or any automated reminder flows inside the migration scope; those are separate configuration tasks for the customer's admin.
Platform deep dives
Kallidus Recruit
Source
Strengths
Weaknesses
Bullhorn ATS & CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard HRMS migration. All 7 core objects map 1:1 between Kallidus Recruit and Bullhorn ATS & CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Kallidus Recruit and Bullhorn ATS & CRM.
Object compatibility
All 7 core objects map 1:1 between Kallidus Recruit and Bullhorn ATS & CRM.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
7-object category — typical timelines run 2–7 days end-to-end.
API constraints
Kallidus Recruit: Not publicly documented in the Backoffice API guide.
Data volume sensitivity
Kallidus Recruit doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Kallidus Recruit to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.
Walk through your Kallidus Recruit to Bullhorn ATS & CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Kallidus Recruit
Other ways to arrive at Bullhorn ATS & CRM
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.