HRMS migration
Field-level mapping, validation, and rollback between Infor HCM and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.
Infor HCM
Source
Bullhorn ATS & CRM
Destination
Compatibility
9 of 13
objects map 1:1 between Infor HCM and Bullhorn ATS & CRM.
Complexity
BStandard
Timeline
4-6 weeks
Overview
Moving from Infor HCM to Bullhorn is an unusual but well-supported migration path, most common when staffing or recruitment-focused organizations that onboarded Infor HCM for internal HR now want to consolidate onto Bullhorn's ATS and CRM platform built specifically for placement work. Infor HCM stores employee records with effective-dated history rows across dozens of tables, exports data through file-based IDM tools and CSV/Excel extracts rather than a public REST API, and supports user-defined fields (M3) or configurable fields (HCM) that must be explicitly mapped before load. We sequence exports by effective date, extract the full org chart hierarchy through parent-child traversal, and load records into Bullhorn's Candidate, Contact, Client Corporation, and Placement objects. Bullhorn's custom object limits differ by edition (10 in Growth/Enterprise ATS, 2 in standard ATS), which constrains how many Infor user-defined fields can migrate natively; fields exceeding the limit are flagged for Bullhorn admin to add post-load. Workflows, payroll calculation rules, accrual logic, and IDM document version history do not migrate; we deliver written inventories for the customer's 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 Infor HCM 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.
Infor HCM
Employee
Bullhorn ATS & CRM
Candidate
1:1Infor HCM Employee records map to Bullhorn Candidate. Core biographical fields (legal name, date of birth, address, contact details, employment status) migrate directly. Infor's effective-dated job-title and manager-assignment rows extract as a dated history; the latest active row drives the primary Candidate record, and prior rows load into a Bullhorn Custom Object (e.g., customObject1s) as a job history timeline to preserve the full record. Employee type (full-time, contractor, temporary) maps to Bullhorn employmentType with a custom source_hcm_employee_type__c field retained for audit.
Infor HCM
Employee
Bullhorn ATS & CRM
ClientContact (internal employee)
1:1Infor HCM employee records for the customer's own internal staff (not contractors being placed) map to Bullhorn ClientContact records representing the agency's internal employees using Bullhorn. This distinction is determined during scoping based on the customer's use case; the same Infor employee table may yield both Candidate and ClientContact records depending on whether the individual is a contractor being placed or an internal staffer.
Infor HCM
Organization / Department
Bullhorn ATS & CRM
Category or ClientCorporation
lossyInfor HCM org structures are hierarchical trees with cost center and location associations. Bullhorn does not have a native internal org chart object. We reconstruct the org tree by mapping each Infor org unit to a Bullhorn Category (for internal department classification) or a ClientCorporation record (if the org unit represents a client relationship). The parent-child hierarchy is preserved by storing the Infor parent_org_id as a custom field on each Category for post-migration admin reconstruction.
Infor HCM
Position
Bullhorn ATS & CRM
JobOrder
1:manyInfor HCM Positions define headcount slots with grade, department, and salary grade associations. When the customer uses Infor HCM to track open job reqs or req-linked positions, these map to Bullhorn JobOrder records representing open job orders to be filled. A single Infor Position can yield one JobOrder in Bullhorn. Position hierarchies (reporting lines encoded in position structures) are stored as custom fields on the JobOrder for admin to map to Bullhorn's reporting structure post-load.
Infor HCM
Compensation History
Bullhorn ATS & CRM
Placement + customObject (compensation timeline)
1:manyInfor HCM compensation history (salary, bonus, equity entries with effective dates) extracts as a dated history table. We load the most recent compensation row as the primary pay rate on the Bullhorn Placement record (fields: payRate, billRate, OTMultiplier). Prior history rows load into a Bullhorn Custom Object (e.g., customObject2s) as a compensation timeline with effectiveDate, payType, and amount fields. Bullhorn's compensation timeline is flat per Placement rather than a full retroactive history table; the Custom Object preserves the audit trail within Bullhorn's limits.
Infor HCM
Benefits Enrollments
Bullhorn ATS & CRM
customObject
1:1Infor HCM benefit plan enrollments and coverage tiers map to Bullhorn Custom Objects attached to the Candidate record. We extract plan name, enrollment date, coverage level (employee, employee-plus-spouse, family), and carrier. Bullhorn has no native benefits object, so plan identifiers and enrollment details live in the Custom Object. Benefit plan identifiers in Infor are customer-specific and must be mapped to the customer's post-migration benefits administration system by the admin.
Infor HCM
Time and Attendance / Accruals
Bullhorn ATS & CRM
customObject
1:1Infor Workforce Management time entries, absence balances, and accrual calculations map to Bullhorn Custom Objects on the Candidate or ClientContact record. We extract current PTO/sick balances and leave histories as typed records (leaveType, balanceHours, asOfDate). Infor accrual calculation rules (accrual rates, carryover limits, vesting schedules) are calculation logic that does not migrate; we document the current rule set for the customer's HR admin to configure in their chosen benefits or payroll system post-migration.
Infor HCM
Performance Reviews / Goals
Bullhorn ATS & CRM
customObject
1:1Infor Talent Management performance documents, goal alignments, and review ratings extract as flat records per completed review cycle. We map to Bullhorn Custom Objects (e.g., customObject3s) attached to the Candidate record with fields: reviewCycle, overallRating, competencyScores, goalStatus, and comments. Review template structures and competency framework definitions in Infor are configuration data that does not have a direct Bullhorn equivalent; we deliver a template inventory for the admin to rebuild in Bullhorn's goal-setting or a third-party performance tool.
Infor HCM
Talent Profiles / Skills / Certifications
Bullhorn ATS & CRM
Candidate (skills, certifications, credentials)
1:1Infor Talent Science skills, certifications, and credential data link to employee records as tagged attributes. These migrate as Bullhorn Candidate skills, certifications, and credentials using Bullhorn's standard Candidate fields (skillIDs, certification, education). Infor skill taxonomy codes map to Bullhorn skill name strings with a source_taxonomy__c field retained for reference. Where the Infor taxonomy is more granular than Bullhorn's flat skill list allows, we map to the closest Bullhorn skill or store the original taxonomy code as a custom text field.
Infor HCM
User-Defined Fields (M3) / Configurable Fields (HCM)
Bullhorn ATS & CRM
customObject fields
1:1Infor M3 and HCM user-defined fields (alphanumeric, numeric, date, text) defined in CMS470 sessions are extracted as name-value pairs per record. Bullhorn editions limit Custom Objects to 10 (Growth/Enterprise ATS) or 2 (standard ATS), each with a maximum of 55 fields. During scoping, we inventory every Infor user-defined field per object, rank them by business criticality, and allocate high-priority fields to Bullhorn customObject slots. Fields exceeding the allocation are flagged in a written supplement for Bullhorn admin to add via Bullhorn Support tickets post-load. Fields are type-mapped: Infor date UDFs become Bullhorn date fields, numeric UDFs become Bullhorn float or integer fields, text UDFs become Bullhorn string fields.
Infor HCM
Documents (IDM)
Bullhorn ATS & CRM
ContentDocument (Bullhorn Files)
1:1Infor Document Management (IDM) documents and SharePoint attachments (contracts, IDs, performance records) attached to employee records extract as binary files. We map them to Bullhorn's ContentDocument (Files) attached to the corresponding Candidate or ClientContact record via ContentDocumentLink. Bullhorn supports file upload via REST API, so documents attach to the correct parent record using the employee-to-candidate ID mapping. Document version history from IDM is excluded per Infor's standard export limitation; we flag this for compliance review.
Infor HCM
Payroll / GL Transactions (LN)
Bullhorn ATS & CRM
Placement (pay/bill rates) + external payroll system
lossyInfor LN payroll journal entries and GL postings live in the financial module rather than HCM proper. We extract payroll register data (pay period, gross pay, deductions, net pay) via file export. Pay calculation rules, tax jurisdiction configurations, and GL account mappings are Infor LN configuration that does not migrate. We deliver a payroll register summary extract for the customer's new payroll administrator to set up in their chosen payroll system. Bullhorn does not include native payroll; the payroll system replacement is a separate evaluation.
Infor HCM
Worker (contractor / contingent worker)
Bullhorn ATS & CRM
Candidate + Placement (active)
1:1Infor HCM contractor and contingent worker records (if stored in the same employee table) map to Bullhorn Candidate records with the employmentType set to Contract. If the contractor has an active placement assignment in Infor HCM, that assignment maps to a Bullhorn Placement record with status, start date, end date, and bill/pay rates. Contractor skill classifications from Infor migrate as Candidate skills using the same taxonomy mapping as permanent employee skills.
| Infor HCM | Bullhorn ATS & CRM | Compatibility | |
|---|---|---|---|
| Employee | Candidate1:1 | Fully supported | |
| Employee | ClientContact (internal employee)1:1 | Fully supported | |
| Organization / Department | Category or ClientCorporationlossy | Fully supported | |
| Position | JobOrder1:many | Fully supported | |
| Compensation History | Placement + customObject (compensation timeline)1:many | Mapping required | |
| Benefits Enrollments | customObject1:1 | Mapping required | |
| Time and Attendance / Accruals | customObject1:1 | Fully supported | |
| Performance Reviews / Goals | customObject1:1 | Mapping required | |
| Talent Profiles / Skills / Certifications | Candidate (skills, certifications, credentials)1:1 | Fully supported | |
| User-Defined Fields (M3) / Configurable Fields (HCM) | customObject fields1:1 | Fully supported | |
| Documents (IDM) | ContentDocument (Bullhorn Files)1:1 | Fully supported | |
| Payroll / GL Transactions (LN) | Placement (pay/bill rates) + external payroll systemlossy | Fully supported | |
| Worker (contractor / contingent worker) | Candidate + Placement (active)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.
Infor HCM gotchas
IDM document export excludes version history
Non-public API requires file-based extraction
Hidden implementation and consulting costs inflate the real TCO
Effective-dated history requires sequenced loading
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 extraction method determination
We audit the Infor HCM deployment to identify the extraction method available: IDM tools, CSV/Excel exports from the application UI, or direct database access for on-premise LN deployments. We inventory employee record counts, effective-dated history row volumes, user-defined field counts per object, org chart depth, and any SharePoint document integration. We also identify the Bullhorn edition in use (standard ATS, Growth, or Enterprise) to determine Custom Object allocation headroom. The discovery output is a written extraction plan specifying file export schedules, chunking sizes, and the effective-date sequencing requirements for history tables.
Custom Object allocation and schema design
We design the Bullhorn destination schema based on the scoping inventory. This includes identifying which Bullhorn Custom Objects will carry compensation history (customObject1), benefits enrollments (customObject2), performance review data (customObject3), and remaining user-defined fields (customObject4+). We allocate fields within the 55-field limit per Custom Object, map Infor UDF data types to Bullhorn field types (date, float, string, integer), and reserve slots for any fields that exceed the allocation for post-load admin addition. Bullhorn Support tickets for Custom Object provisioning are submitted during this phase so the schema is ready before data loading begins.
File-based extraction in effective-date sequence
We coordinate the Infor file exports in strict effective-date order, scheduling chunked export runs for employee populations exceeding the per-run export limit. Each chunk is validated for completeness (record count, field coverage) before the next chunk is triggered. For on-premise LN deployments, we work with the customer's IT team to establish a read-only database connection for direct table extracts, which we run during off-peak hours to avoid impacting production system performance. Document extracts run in parallel with record extracts and are mapped to Bullhorn Candidate and ClientContact IDs after the primary record mapping is complete.
Transformation and field mapping
We transform Infor extracts into Bullhorn API-ready payloads. Employee records split into Candidate (for contractors and external candidates) and ClientContact (for internal staff) based on the employmentType determination made during scoping. Effective-dated history rows for each employee are sorted ascending by effective date and loaded as Custom Object records attached to the parent Candidate or ClientContact. Infor skill taxonomy codes are mapped to Bullhorn skill name strings. Org chart parent-child relationships are flattened into custom fields on Bullhorn Category or ClientCorporation records. User-defined fields are distributed across allocated Custom Objects per the schema design.
Staged load with reconciliation
We load records into Bullhorn in dependency order: Custom Object schema first (so destination fields exist), then Candidates and ClientContacts (the parent records), then Custom Object history rows attached to those parents, then Documents attached via Bullhorn's REST file upload. Each phase emits a row-count reconciliation report showing records loaded, records skipped (duplicates), and records rejected with error reasons. Bullhorn API rate limits are managed with exponential backoff and batch chunking. Owner resolution matches Infor employee managers to Bullhorn User records by email lookup; unmatched owners are flagged in a reconciliation queue for the Bullhorn admin to resolve before production cutover.
Cutover, validation, and admin handoff
We freeze Infor HCM writes during the cutover window, run a final delta migration of any records modified during the migration window, then enable Bullhorn as the system of record. We deliver a written inventory of every Infor workflow, payroll calculation rule, accrual configuration, and document version history that does not migrate, with Bullhorn-replacement guidance for each item. We support a one-week hypercare window where we resolve data quality issues raised by the Bullhorn admin team. Workflow rebuild, payroll system selection, and accrual rule reconfiguration are outside standard migration scope and are flagged as separate engagement items.
Platform deep dives
Infor HCM
Source
Strengths
Weaknesses
Bullhorn ATS & CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard HRMS migration. All 7 core objects map 1:1 between Infor HCM and Bullhorn ATS & CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Infor HCM and Bullhorn ATS & CRM.
Object compatibility
All 7 core objects map 1:1 between Infor HCM 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
Infor HCM: Not publicly documented.
Data volume sensitivity
Infor HCM 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 Infor HCM to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.
Walk through your Infor HCM 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 Infor HCM
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.