HRMS migration
Field-level mapping, validation, and rollback between ELMO Suite and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.
ELMO Suite
Source
Bullhorn ATS & CRM
Destination
Compatibility
8 of 12
objects map 1:1 between ELMO Suite and Bullhorn ATS & CRM.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from ELMO Suite to Bullhorn is a category-shift migration, not a direct record copy. ELMO Suite is a cloud HRMS built around the employee as the central record, covering payroll, leave, performance, learning, and onboarding. Bullhorn is an ATS and CRM built around the candidate as the central record, with Jobs, Placements, and a back-office layer. These fundamentally different data models mean we must redesign the schema at migration time: employee-centric objects from ELMO map to candidate-centric objects in Bullhorn, payroll and compensation have no native Bullhorn equivalent and move into custom objects or are flagged for manual reconciliation, and custom performance review forms and engagement survey records require structured export as standalone data rather than native appraisal objects. Bullhorn's Custom Object limits vary by edition (none on ATS Starter, 2 on ATS Growth, 10 on Enterprise with 55 fields each), so we confirm the target edition before scoping any custom schema work. Workflows, automation rules, and learning paths do not migrate; we deliver a written inventory of these for the customer's Bullhorn admin to rebuild.
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 ELMO Suite 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.
ELMO Suite
Employee
Bullhorn ATS & CRM
Candidate
1:1ELMO Employee records map to Bullhorn Candidate. Core fields (name, email, phone, address, employment type, start date) map directly to Candidate standard fields. The ELMO employment status (active, inactive, terminated) maps to Candidate status values. Any ELMO employee who is also a job applicant in the recruitment module migrates as a Candidate record with employment history carried as a Candidate custom object or note. The migration direction determines whether the Employee record is the primary artifact: if the destination is a staffing firm with Bullhorn as their ATS, Candidates are the primary record. We flag employees without recruitment context for manual Bullhorn User provisioning.
ELMO Suite
Employee
Bullhorn ATS & CRM
Corporate User
1:1ELMO Employees who are internal recruiters, HR staff, or administrators map to Bullhorn Corporate Users. We resolve the mapping by email match. Any ELMO employee without a matching Bullhorn User goes to a reconciliation queue for the customer's Bullhorn admin to provision. OwnerId on Candidate and Job records must resolve to an active Bullhorn User, so User provisioning is a gate before record migration.
ELMO Suite
Recruitment / Applicant
Bullhorn ATS & CRM
Job Application
1:1ELMO Recruitment module applicant records map to Bullhorn JobSubmission (also called Job Application in Bullhorn UI). Application status, source, submission date, and interview scores transfer to Bullhorn JobSubmission fields. Position title and department assignments reconcile during the field-mapping phase against the target Job record.
ELMO Suite
Job Order / Position
Bullhorn ATS & CRM
Job
1:1ELMO recruitment job postings and position records map to Bullhorn Job. Job title, description, requirements, salary range, and status map directly to Bullhorn Job fields. The ELMO job type (permanent, contract, casual) maps to Bullhorn employmentType. We create Bullhorn Job records before JobSubmission records so that the JobOrder lookup is satisfied at insert time.
ELMO Suite
Onboarding Checklist
Bullhorn ATS & CRM
Bullhorn Onboarding (Able) or Custom Object
lossyELMO onboarding task lists and document checklists map to Bullhorn Onboarding (formerly Able) if the customer has the Bullhorn Onboarding add-on active. Task names, assignees, due dates, and completion status migrate as Onboarding task records. If Bullhorn Onboarding is not licensed, we create a custom object with task fields and flag the missing module for the customer's admin to activate or rebuild in Bullhorn.
ELMO Suite
Payroll / Compensation
Bullhorn ATS & CRM
Custom Object on Candidate or Placement
1:manyELMO payroll records (pay groups, pay rates, salary history, superannuation) have no native Bullhorn equivalent. Bullhorn is not a payroll engine; it handles contractor invoicing via the Back Office add-on but not payroll processing. We create Bullhorn custom objects (up to 2 on ATS Growth, 10 on Enterprise) to hold compensation and superannuation records linked to Candidate or Placement. TFN declarations and Super Fund details export as structured data. ANZ-specific fields are preserved with field labels intact for compliance audit.
ELMO Suite
Leave Balances
Bullhorn ATS & CRM
Custom Object on Candidate
1:1ELMO leave entitlements, accrual rules, and balance snapshots are source-system values that must be reconciled against the destination's accrual engine. Bullhorn has no native leave management. We export the leave balance as of the migration date and create a Bullhorn custom object linked to Candidate to store entitlement types (annual, sick, long service), accrual rates, and current balances. Leave approval workflows are not migrated; they require a separate HRMS or leave management tool post-migration.
ELMO Suite
Performance Review
Bullhorn ATS & CRM
Custom Object on Candidate
lossyELMO performance review cycles, objectives, goals, and appraisal ratings require a Bullhorn custom object because Bullhorn has no native performance management module. Rating scales, competency frameworks, and custom review forms vary significantly between ELMO organisations. We export review responses as structured records in a custom object and flag custom forms for post-migration manual reconciliation. If the customer uses fewer than 2 custom objects on ATS Growth or 10 on Enterprise, we scope which review data is highest priority for migration.
ELMO Suite
Learning Record
Bullhorn ATS & CRM
Custom Object on Candidate
1:1ELMO course completions, certifications, and skill profiles migrate to a Bullhorn custom object on Candidate. Custom learning paths and due dates require field-level mapping. Completion status and expiry dates are preserved. Bullhorn has no native LMS; the custom object approach preserves the learning record as a candidate skill and certification reference without requiring an external LMS integration.
ELMO Suite
Organisational Structure
Bullhorn ATS & CRM
Corporate User field or Department custom field
lossyELMO departments, cost centres, and business units map to Bullhorn Corporate User department and division fields, or to a custom field on User if the Bullhorn edition supports it. Reporting lines and manager assignments preserve as manager links on User records. The Bullhorn org chart does not replicate ELMO's full hierarchical structure; we map the business unit layer that is relevant for ATS workflow routing.
ELMO Suite
Engagement (activities, notes, interactions)
Bullhorn ATS & CRM
Note, Task, or Appointment on Candidate
1:1ELMO engagement records (candidate interactions, interview notes, communications) map to Bullhorn Note, Task, or Appointment records linked to the Candidate. Activity timestamps and engagement types preserve. Bullhorn's API supports all standard engagement entities; we use batch processing with rate-limit handling to move large engagement volumes. Note rich text and attachment links migrate as ContentDocument with ContentDocumentLink to the Candidate.
ELMO Suite
Expense Record
Bullhorn ATS & CRM
Bullhorn Back Office expense module or Custom Object
1:1ELMO expense claims, receipts, approval workflows, and reimbursement status migrate as expense records if the customer has Bullhorn Back Office active. Category codes and approval routing re-map to Bullhorn expense categories. If Back Office is not licensed, we create a custom object for expense records and flag the module gap.
| ELMO Suite | Bullhorn ATS & CRM | Compatibility | |
|---|---|---|---|
| Employee | Candidate1:1 | Fully supported | |
| Employee | Corporate User1:1 | Fully supported | |
| Recruitment / Applicant | Job Application1:1 | Fully supported | |
| Job Order / Position | Job1:1 | Fully supported | |
| Onboarding Checklist | Bullhorn Onboarding (Able) or Custom Objectlossy | Fully supported | |
| Payroll / Compensation | Custom Object on Candidate or Placement1:many | Fully supported | |
| Leave Balances | Custom Object on Candidate1:1 | Mapping required | |
| Performance Review | Custom Object on Candidatelossy | Fully supported | |
| Learning Record | Custom Object on Candidate1:1 | Fully supported | |
| Organisational Structure | Corporate User field or Department custom fieldlossy | Fully supported | |
| Engagement (activities, notes, interactions) | Note, Task, or Appointment on Candidate1:1 | Fully supported | |
| Expense Record | Bullhorn Back Office expense module or Custom Object1: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.
ELMO Suite gotchas
Per-user pricing means headcount inflation at migration adds cost
Modular licensing means scope creep during migration
Module-to-module data lag creates dirty migration snapshots
Custom performance review forms resist direct field mapping
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 Bullhorn edition confirmation
We audit the source ELMO environment across all active modules (payroll, time, performance, learning, onboarding, recruitment, expenses, engagement surveys) and count records by type. We pair this with a Bullhorn edition assessment: ATS Starter ($99/user/mo, no custom objects) covers straightforward candidate and job migrations; ATS Growth ($182/user/mo, 2 custom objects) covers most single-module migrations with compensation or leave as a custom object; Enterprise ($315/user/mo, 10 custom objects) is required if multiple HRMS modules need custom objects or the engagement volume exceeds 200,000 records. The discovery output is a written migration scope with a Bullhorn edition recommendation and a gap analysis of ELMO modules against Bullhorn object equivalents.
Schema design and custom object scope
We design the destination Bullhorn schema based on the edition-confirmed custom object budget. Compensation, leave, performance, and learning migrate as custom objects on Candidate. Onboarding migrates to Bullhorn Onboarding (Able) if licensed, or to a custom object if not. We create all custom object schemas (field names, types, picklist values, required constraints) in a Bullhorn Sandbox first. Bullhorn's Custom Object Setup Sheet template (available in Bullhorn Hub) defines the field limits per custom object (55 fields total, up to 20 of which can be pickers, dropdowns, or mini-pickers). We validate the schema against the ELMO data inventory before production migration begins.
Sandbox migration and reconciliation
We run a full migration into a Bullhorn Sandbox using production-like data volume. The customer's Bullhorn admin reconciles record counts (Candidates in, Contacts in, Jobs in, JobSubmissions in, Placements in, engagement records in), spot-checks 25-50 random records against the ELMO source, and validates custom object field values. Any mapping corrections happen in the Sandbox phase. Bullhorn Sandbox migrations can take from several minutes for a few thousand rows to 16 hours for millions of rows, per Bullhorn Plugin migration documentation.
Owner reconciliation and User provisioning
We extract every distinct ELMO employee referenced as a recruiter, hiring manager, or HR admin on candidate, job, and placement records and match by email against the Bullhorn destination org's User table. Owners without a matching Bullhorn User go to a reconciliation queue. The customer's Bullhorn admin provisions any missing Corporate Users (active or inactive depending on whether the original ELMO employee is still active). Migration cannot proceed past record import because OwnerId on Candidate, Job, and Placement requires a valid Bullhorn User reference.
Production migration in dependency order
We run production migration in Bullhorn's entity dependency order: Corporate Users (manual provisioning validated), Corporations (from ELMO company records), Contacts (client records), Candidates (from ELMO Employee and Applicant records), Jobs (from ELMO job postings), JobSubmissions (from ELMO applications), Placements (from ELMO placement or offer records), Onboarding tasks (to Bullhorn Onboarding or custom object), Activity history (Notes, Tasks, Appointments via Bullhorn REST API with chunking and rate-limit handling), Custom Objects for payroll, leave, performance, and learning (last because they have lookups to Candidates and Users). Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and rebuild handoff
We freeze ELMO writes during cutover, run a final delta migration of any records modified during the migration window, then enable Bullhorn as the system of record for recruitment. We deliver the Workflow, automation, and custom performance form inventory document to the customer's Bullhorn admin team with rebuild recommendations per object. We support a one-week hypercare window where we resolve any reconciliation issues raised by the customer's team. Bullhorn Workflows (Bullhorn Automation, formerly Herefish) and ELMO learning paths do not migrate as code; these are documented separately for the customer's admin to rebuild.
Platform deep dives
ELMO Suite
Source
Strengths
Weaknesses
Bullhorn ATS & CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard HRMS migration. All 7 core objects map 1:1 between ELMO Suite and Bullhorn ATS & CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across ELMO Suite and Bullhorn ATS & CRM.
Object compatibility
All 7 core objects map 1:1 between ELMO Suite 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
ELMO Suite: Not publicly documented.
Data volume sensitivity
ELMO Suite 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 ELMO Suite to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.
Walk through your ELMO Suite 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 ELMO Suite
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.