HRMS migration

Migrate from ELMO Software to Bullhorn ATS & CRM

Field-level mapping, validation, and rollback between ELMO Software and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.

ELMO Software logo

ELMO Software

Source

Bullhorn ATS & CRM

Destination

Bullhorn ATS & CRM logo

Compatibility

62%

8 of 13

objects map 1:1 between ELMO Software and Bullhorn ATS & CRM.

Complexity

BStandard

Timeline

4-6 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from ELMO Software to Bullhorn is an HRMS-to-ATS migration that requires translating a people-and-payroll data model into a recruitment-and-placement CRM structure. ELMO organises around Employees, Positions, Legal Entities, and a payroll calendar tied to Australian STP and New Zealand KiwiSaver compliance. Bullhorn centres on Candidates, Jobs, Placements, and client Accounts without a native HRMS layer. We extract employee profiles and employment histories from ELMO HR Core, map them into Bullhorn's Candidate and Contact objects, and attach employment metadata as structured notes and custom fields. Leave balances, legal entities, and custom configurable fields from ELMO require pre-import schema design in Bullhorn because Bullhorn has no equivalent leave-tracking or payroll-calendar object — we document the gap and provide a custom object or note strategy. Bullhorn automations, saved searches, and integrations do not migrate as code; we deliver a written inventory for the customer's admin to rebuild. Bullhorn's API access requires no Account Manager sign-off (unlike ELMO), making post-migration data hygiene more tractable.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

ELMO Software logo

ELMO Software

What's pushing teams away

  • Steep learning curve and clunky navigation mean HR teams spend excessive time training staff and performing manual tasks that the software should automate.
  • Module synchronisation failures require manual updates between HR Core, Payroll, Performance and other modules, creating data inconsistency and extra work.
  • Performance review framework is muddled, with inconsistent appraisal cycles and manual processes for updating employee details.
  • Integration limitations restrict connectivity with other enterprise systems, complicating workflows for organisations with established tech stacks.
  • Custom pricing model and lack of transparent published tiers make it difficult for organisations to budget or compare costs against alternatives.

Choosing

Bullhorn ATS & CRM logo

Bullhorn ATS & CRM

What's pulling them in

  • Agencies choose Bullhorn because it combines ATS and CRM in one platform, eliminating the need to switch between separate tools for candidate management and client relationship tracking.
  • The resume parser extracts contact details, work history, and skills into structured, searchable candidate profiles automatically without manual data entry, reportedly driving 24% more placements per recruiter.
  • Bullhorn's placement and split-billing model natively supports contract staffing workflows, handling start/end dates, overtime rules, and multi-party pay/charge rates in a single record.
  • The platform offers extensive third-party integrations through its Recruitment Cloud Marketplace, connecting with back-office, onboarding, and payroll systems used by staffing agencies.
  • 72% of Bullhorn customers are teams with fewer than 10 users, and Bullhorn's implementation team handles setup and data migration for small agencies going live within weeks.

Object mapping

How ELMO Software objects map to Bullhorn ATS & CRM

Each row shows how a ELMO Software 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 Software

Employee

maps to

Bullhorn ATS & CRM

Candidate

1:1
Fully supported

ELMO employee records map to Bullhorn Candidate profiles. The ELMO user name, contact details, email, and phone migrate to Candidate firstName, lastName, email, and phone. Employment type (full-time/part-time/casual), start date, and position migrate as custom fields on the Candidate record. Bullhorn's Candidate does not store payroll frequency or superannuation details natively; we create custom text or date fields to carry these for HR reference.

ELMO Software

Employee

maps to

Bullhorn ATS & CRM

Contact

1:1
Fully supported

ELMO employee records also map to Bullhorn Contact if the organisation uses Bullhorn for internal staffing or contractor relationship tracking. Contact firstName, lastName, email, and phone copy directly. Department and position from ELMO map to Bullhorn Contact custom fields. The customer chooses whether to use Candidate, Contact, or both during scoping based on whether the Bullhorn instance serves external candidates, internal candidates, or both.

ELMO Software

Position

maps to

Bullhorn ATS & CRM

Candidate custom field or JobOrder custom field

lossy
Fully supported

ELMO positions (GET /positions) define role titles and reporting lines. We map position title to Bullhorn Candidate.customText1 or a dedicated jobtitle custom field. If Bullhorn Jobs are in scope, the position also maps to JobOrder custom fields to preserve the original position hierarchy. Bullhorn does not have an organisational hierarchy object; we document the hierarchy as a note or structured field for admin reference.

ELMO Software

Department

maps to

Bullhorn ATS & CRM

Candidate/Contact custom field or ClientCorporation

1:1
Fully supported

ELMO department records (GET /departments) map to Bullhorn custom fields on Candidate and Contact. For staffing firms tracking candidate placement by department, we create a custom picklist field mapped to the ELMO department name. If departments correspond to client organisations, we map them to ClientCorporation records. We preserve the full department tree in a structured reference document.

ELMO Software

Location

maps to

Bullhorn ATS & CRM

Candidate/Contact address fields or JobOrder location

1:1
Fully supported

ELMO location records (GET /locations) contain physical address and timezone. Bullhorn Candidate has address fields (address, city, state, zip) and JobOrder has a location field. We map ELMO location address to Bullhorn Candidate address and timezone to a custom field. Multi-location organisations with distinct compliance jurisdictions (AU vs NZ vs SG) require separate location records and corresponding Bullhorn custom fields.

ELMO Software

Legal Entity

maps to

Bullhorn ATS & CRM

ClientCorporation (Account)

1:1
Fully supported

ELMO legal entities (GET /legal-entities) define ABN/ACN-level employer records for AU/NZ payroll. Bullhorn ClientCorporation serves as the Account counterpart but is not payroll-linked. We map legal entity name to ClientCorporation name, ABN/ACN to a custom field, and address to the ClientCorporation address. If the organisation operates multiple legal entities, each becomes a separate ClientCorporation in Bullhorn. Bullhorn does not support payroll calendar configuration; legal entity metadata migrates as structured fields only.

ELMO Software

Employment Details

maps to

Bullhorn ATS & CRM

Candidate custom fields

1:1
Mapping required

ELMO employment details (GET /employment-details) include start date, employment type, pay frequency, and superannuation fund. We map these to Bullhorn Candidate custom fields: employmentStartDate (date), employmentType (picklist), payFrequency (picklist), superannuationFund (text). Employment type values (full-time, part-time, casual, fixed-term) map to Bullhorn picklist values that we define during schema design. Superannuation fund name migrates as text but is not linked to any Bullhorn payroll feature.

ELMO Software

Leave Balance

maps to

Bullhorn ATS & CRM

Candidate custom fields or Note

1:1
Fully supported

ELMO leave balances (GET /leave-requests BETA endpoint) contain current entitlement, accrued, and taken values per leave type. Because Bullhorn has no leave management object, we create custom numeric fields per leave type (annualLeaveBalance, sickLeaveBalance, parentalLeaveBalance) on the Candidate record, or attach a structured Note with all leave data serialised. We cross-validate against payroll reports exported from ELMO's UI before finalising the import.

ELMO Software

Leave Type

maps to

Bullhorn ATS & CRM

Candidate custom picklist fields

lossy
Fully supported

ELMO configurable leave types (annual, sick, parental, long service, etc.) map to Bullhorn custom picklist fields on Candidate. We extract the full leave type schema from GET /configurable-fields-meta during scoping and create matching picklist values in Bullhorn. Leave type entitlement rules (accrual rates, carry-over limits) do not migrate as executable logic; we document them in the migration handoff notes for the customer's HR admin to reconfigure.

ELMO Software

Payroll Calendar

maps to

Bullhorn ATS & CRM

Note or custom object (documentation only)

lossy
Mapping required

ELMO payroll calendars define pay periods, pay run dates, and STP reporting cycles. Bullhorn has no payroll calendar object. We export the calendar definition as a structured Note attached to the primary ClientCorporation or as a Bullhorn Custom Object named PayrollCalendar with fields for payPeriodStart, payPeriodEnd, and payRunDate. The customer uses this as reference data; Bullhorn does not execute payroll scheduling.

ELMO Software

Group

maps to

Bullhorn ATS & CRM

User role or Team (Bullhorn Nova)

lossy
Fully supported

ELMO groups (GET /groups) define organisational units for access control and reporting. Bullhorn uses User roles and, in Nova (S-Release), Teams to manage access. We map ELMO group membership to Bullhorn role assignments and document the mapping. Bullhorn Nova Teams do not map directly to ELMO groups; we flag any structural mismatch during scoping.

ELMO Software

Custom Configurable Fields

maps to

Bullhorn ATS & CRM

Custom fields on Candidate, Contact, or ClientCorporation

1:1
Mapping required

ELMO organisations define custom metadata fields via GET /configurable-fields-meta. We extract field definitions (label, type, picklist values) and create matching Bullhorn custom fields before import. Bullhorn entity limits on custom fields vary by object and edition; we check limits during scoping and recommend Custom Objects for field counts exceeding entity limits. Field-level data migrates directly as values once the Bullhorn schema is deployed.

ELMO Software

Payroll Data (pay runs, superannuation, PAYG)

maps to

Bullhorn ATS & CRM

Not migrated

lossy
Fully supported

ELMO payroll data (pay runs, PAYG withholdings, superannuation contributions) does not migrate to Bullhorn. Bullhorn is a recruitment ATS and CRM, not a payroll system, and has no equivalent payroll execution object. We export payroll summaries as PDF or CSV from ELMO for the customer's finance team to retain for audit purposes. The payroll calendar metadata migrates as documentation only (see Leave Type entry).

Gotchas + challenges

What specifically takes care here

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 Software logo

ELMO Software gotchas

High

API access requires Account Manager sign-off

High

Leave request endpoint is marked BETA

Medium

Module subscriptions must be mapped individually

Medium

Legacy Elmo32 import limitations are documented

Low

Rate limits are not publicly documented

Bullhorn ATS & CRM logo

Bullhorn ATS & CRM gotchas

High

ATS Growth edition has no API access

High

Attachments excluded from CSV bulk exports

Medium

Custom Object limits vary sharply by edition

Medium

Opportunity pipeline stages are recruitment-specific

Low

Resume parse quality varies by document format

Pair-specific challenges

  • ELMO leave request API is BETA — cross-validate against payroll exports

    The ELMO User API v1 explicitly marks leave request and leave type endpoints as BETA with no production stability guarantee. We treat these endpoints as best-effort during scoping and cross-validate all leave balances against payroll reports exported directly from ELMO's UI before finalising the import. Leave balance data that disagrees between the BETA API and the payroll export defaults to the payroll export value. This step adds one to two days to the scoping phase for accounts with complex leave accrual rules.

  • Bullhorn has no leave management object — custom fields required

    Bullhorn's ATS core does not include a leave management or HRMS object. Leave balances, accrual rules, and entitlements from ELMO must be represented as Bullhorn custom fields on Candidate or Contact, or as a Custom Object. We pre-design this schema during scoping, but Bullhorn's per-entity custom field limits (which vary by edition) may require Custom Objects for organisations with more than twenty leave-related fields. We flag this constraint before production migration begins.

  • ELMO API access requires Account Manager sign-off during scoping

    ELMO's User API v1 is not self-service; access must be requested through an Account Manager and may be limited to selected customers. This means we cannot programmatically validate data connectivity during scoping without an active API subscription. We resolve this by requesting API credentials on the customer's behalf during the discovery call and falling back to CSV/Bulk export where API access is unavailable. This affects the scoping timeline by one to two weeks if the customer does not already hold an API-enabled subscription.

  • Module subscriptions create data completeness gaps

    ELMO charges per-user-per-module, so an organisation may have HR Core without Payroll, or Performance without Learning. When migrating out of ELMO, we scope each module's data independently and flag any module-gated data that is absent because the customer did not purchase the relevant module. We cannot backfill absent module data from ELMO if that module was not active; the customer must acknowledge these gaps in the migration scope document.

  • Bullhorn saved search field logic changed in Nova (S-Release)

    Bullhorn's transition to the New Candidate List (Nova/S-Release) changed the field logic for saved searches. Searches migrated automatically in most cases, but certain criteria behave differently and unsupported fields (such as Address and Category at the time of the KB update) may be dropped. We review all migrated saved searches after Bullhorn cutover and flag any that return different result sets, providing a field-level remediation note to the customer's admin.

Migration approach

Six steps for a successful ELMO Software to Bullhorn ATS & CRM data migration

  1. Discovery and ELMO module audit

    We audit the source ELMO instance across active modules (HR Core, Payroll, Recruitment, Onboarding, Performance, Learning), API subscription status, and custom configurable field definitions. We extract the full schema from GET /configurable-fields-meta and map each field to a Bullhorn custom field, custom object, or Note strategy. We also audit leave type configurations, employment detail schemas, and legal entity hierarchies. This step produces a written migration scope document covering record counts, schema gaps, and any module-gated data that will not migrate.

  2. Bullhorn schema design and sandbox setup

    We design the Bullhorn destination schema in a Sandbox environment before production migration begins. This includes creating custom fields on Candidate, Contact, and ClientCorporation for employment metadata, leave balances, and legal entity data; defining custom picklist values mapped to ELMO employment types and leave categories; and designing any Custom Objects required for complex HR data that exceeds Bullhorn's per-entity field limits. We validate the schema with a trial import of a representative 50-record sample before scaling to full volume.

  3. ELMO data extraction and transformation

    We extract data from ELMO using the User API v1 (GET /users, /positions, /departments, /locations, /legal-entities, /employment-details, /groups) and CSV/Bulk exports where the API is unavailable or gated. Leave data from the BETA leave endpoints is cross-validated against payroll report exports from the ELMO UI. We transform ELMO employment records into Bullhorn Candidate and Contact records, map employment type and start date to custom fields, and serialise leave balances into structured fields or Notes. Legal entities map to ClientCorporation records with ABN/ACN stored in custom fields.

  4. Sandbox migration and reconciliation

    We run a full migration into the Bullhorn Sandbox using production-like data volume. The customer's HR and recruitment leads reconcile record counts across ELMO and Bullhorn, spot-check 25-50 random Candidate records against the ELMO source, and verify that employment metadata and leave balances are correctly represented in Bullhorn custom fields. The customer signs off the sandbox validation before we proceed to production migration.

  5. Production migration in dependency order

    We run production migration in dependency order: ClientCorporation records (from Legal Entities) first; then Candidate and Contact records with custom fields resolved; then employment details as linked custom field updates. Leave balances and payroll calendar metadata migrate as final-phase updates to existing Candidate records. Each phase emits a row-count reconciliation report before the next phase begins. We freeze ELMO writes during the final 48 hours and run a delta import to capture any records modified during the migration window.

  6. Cutover, validation, and automation rebuild handoff

    We enable Bullhorn as the system of record after the delta import is complete and validated. We deliver a written inventory of ELMO module configurations, active workflows, leave entitlement rules, and payroll calendar definitions for the customer's admin to rebuild in Bullhorn or a separate payroll system. Bullhorn automations, saved searches, and integrations require separate rebuild scope and are not included in the migration deliverable. We support a one-week post-cutover hypercare window for reconciliation issues raised by the customer's team.

Platform deep dives

Context on both ends of the pair

ELMO Software logo

ELMO Software

Source

Strengths

  • ISO 27001:2013 certified security posture across all modules and data handling.
  • Native Single Touch Payroll (AU) and Payday Filing / KiwiSaver (NZ) compliance built into payroll module.
  • Modular architecture lets organisations subscribe to HR Core, Payroll, Recruitment, Onboarding, Performance and Learning independently.
  • 400+ built-in courses with custom course builder and completion analytics in the Learning module.
  • Bi-directional integration support for payroll-to-third-party flows with inbound and outbound data movement.

Weaknesses

  • Steep learning curve and clunky navigation reported across multiple G2 reviews.
  • Module synchronisation issues require manual workarounds to keep data consistent across HR Core, Payroll and Performance.
  • Performance review framework lacks consistency; appraisal cycles and rating scales are difficult to configure uniformly.
  • API access is gated — requires existing customers to contact their Account Manager for subscription; not self-service.
  • Pricing is opaque with no publicly available tier structure; requires custom quote per organisation.
Bullhorn ATS & CRM logo

Bullhorn ATS & CRM

Destination

Strengths

  • Unified ATS and CRM on one platform purpose-built for staffing agencies, eliminating separate tools for candidates and clients.
  • Automated resume parsing extracts structured candidate data—contact details, work history, skills—into searchable profiles instantly.
  • Native placement and split-billing model handles contract staffing workflows including start/end dates and overtime rules.
  • Bullhorn Recruitment Cloud Marketplace offers 100+ pre-validated third-party integrations spanning the full recruiting lifecycle.
  • 24/7 global support coverage from 350+ support staff with dedicated account management included at all tiers.

Weaknesses

  • Widely regarded as old and bloated with an unintuitive interface and steep learning curve for new recruiters.
  • Slow page loads and performance lag cited in over 200 verified G2 reviews during high-volume recruiting periods.
  • Pricing is opaque—custom-negotiated per organization with significant upfront implementation fees that vary by deal.
  • ATS Growth edition excludes API access entirely, preventing automated data export without upgrading first.

Complexity grading

How hard is this migration?

Standard HRMS migration. All 7 core objects map 1:1 between ELMO Software and Bullhorn ATS & CRM.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across ELMO Software and Bullhorn ATS & CRM.

  • Object compatibility

    A

    All 7 core objects map 1:1 between ELMO Software and Bullhorn ATS & CRM.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    7-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    ELMO Software: Not publicly documented — differs between sandbox and production environments.

  • Data volume sensitivity

    B

    ELMO Software doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your ELMO Software to Bullhorn ATS & CRM migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about ELMO Software to Bullhorn ATS & CRM data migrations

Answers to the questions buyers ask most during ELMO Software to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your ELMO Software to Bullhorn ATS & CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations land between four and six weeks for organisations under 500 employees with no more than twenty custom configurable fields. Migrations with complex leave balance histories, multiple legal entities, multi-state employment records (AU vs NZ vs SG), or custom field schemas exceeding Bullhorn's per-entity limits extend to eight to fourteen weeks because of custom object pre-design, BETA endpoint cross-validation, and legal entity hierarchy mapping.

Adjacent paths

Related migrations to explore

Ready when you are

Move from ELMO Software.
Land in Bullhorn ATS & CRM, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day