HRMS migration
Field-level mapping, validation, and rollback between empeon and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.
empeon
Source
Bullhorn ATS & CRM
Destination
Compatibility
4 of 12
objects map 1:1 between empeon and Bullhorn ATS & CRM.
Complexity
BStandard
Timeline
4-6 weeks
Overview
Moving from Empeon to Bullhorn is a platform-category transition from a healthcare HCM system to a staffing ATS and CRM. Empeon structures its data around employee profiles, payroll registers, accrual balances, and benefit enrollments; Bullhorn uses a Candidate and ClientCorporation model built around the recruiting and placement lifecycle. We resolve the employee-to-candidate split during scoping: currently employed staff at a staffing firm become Bullhorn Candidates, former employees become inactive Candidates or archived records, and contractors map to Placement records once placed. Direct deposit routing and benefit enrollments are not native Bullhorn fields; we map them to custom fields on the Candidate entity and document the configuration for the customer's Bullhorn admin. Empeon's ESS Hub email-must-match requirement means we flag every email address mismatch before cutover to prevent self-service access breakage. Bullhorn does not include payroll processing as standard scope; we do not migrate payroll register data as an operational system. We deliver benefit enrollment data and accrual balances as structured CSV exports alongside the Bullhorn import for the customer's HR admin to reconcile against any retained payroll system.
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 empeon 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.
empeon
Employee
Bullhorn ATS & CRM
Candidate
1:1Empeon Employee records map to Bullhorn Candidate records. The primary mapping key is employee email address to Candidate email. Employment status in Empeon (Active, Inactive, Terminated) maps to Candidate status in Bullhorn (Active, Lead, Inactive). Hire date maps to dateAdded; job title maps to occupation. We flag candidates who are currently employed versus former employees so the customer can set appropriate Candidate statuses in Bullhorn. The mapping excludes payroll compensation fields that have no standard Bullhorn equivalent; those are passed as structured CSV alongside the Bullhorn import.
empeon
Employee
Bullhorn ATS & CRM
Contact (on ClientCorporation)
1:manyEmpeon employees who represent staffing firm clients or contacts map to Bullhorn Contact records on the relevant ClientCorporation. This handles the scenario where a healthcare facility's HR contact at a client organization is stored in Empeon and needs to become a Bullhorn Contact for business development purposes. We distinguish between internal employees (mapped to Candidate) and external client contacts (mapped to Contact on ClientCorporation) using Empeon's organizational hierarchy data.
empeon
Company Settings (Departments)
Bullhorn ATS & CRM
ClientCorporation
1:1Empeon Company Settings departments and cost centers map to Bullhorn ClientCorporation records when the department represents a client organization. For internal-only departments (IT, Finance, Clinical), we document the mapping without creating Bullhorn records since Bullhorn is a staffing ATS and does not use internal org structures. The customer's Bullhorn admin decides which departments represent staffing clients requiring ClientCorporation records.
empeon
Direct Deposit
Bullhorn ATS & CRM
Custom Fields on Candidate
lossyEmpeon direct deposit routing numbers and account numbers do not have native Bullhorn equivalents because Bullhorn ATS is not a payroll system. We map these to Bullhorn custom text fields on the Candidate entity. Routing numbers are encrypted in transit and stored with masked display (showing only last four digits). The customer provisions these custom fields during Bullhorn admin setup, or we coordinate with Bullhorn Support to create the fields. Direct deposit data is never written to logs or intermediate files.
empeon
Benefit Enrollments
Bullhorn ATS & CRM
Custom Fields on Candidate
lossyEmpeon benefit plan names, carrier codes, coverage tiers, and enrollment dates are exported as structured records per employee and mapped to Bullhorn custom fields on the Candidate entity. Plan names and carrier codes require a cross-reference table because Empeon plan identifiers often differ from the carrier's standard naming convention. We deliver benefit enrollment data as a structured CSV alongside the Bullhorn import, with the customer deciding whether to use Bullhorn Onboarding (formerly Able) for digital benefit enrollment post-migration.
empeon
Accrual Balances
Bullhorn ATS & CRM
Custom Fields on Candidate
lossyEmpeon PTO, sick leave, and accrual balances map to Bullhorn custom numeric fields on Candidate. Effective-dated balance snapshots migrate as the current balance value only; historical balance change logs are not transferred because Bullhorn does not have a native accrual audit trail object. We flag accrual balance data in the scoping document and recommend the customer retain Empeon for accrual tracking if the business requires historical accrual audit trails.
empeon
Documents
Bullhorn ATS & CRM
Candidate Document Attachments
1:1Empeon documents attached to employee profiles (offer letters, performance reviews, certifications, credentials) are exported as binary files with metadata and mapped to Bullhorn Candidate document attachments via the Bullhorn REST API. Certification documents migrate with the certification name in the document title and the expiration date stored in a custom date field. We process documents in batches of 50 to observe Bullhorn API rate limits and retry failed uploads with exponential backoff.
empeon
Time and Attendance
Bullhorn ATS & CRM
Bullhorn Time & Expense (add-on)
lossyEmpeon time entries and clock punches are not standard Bullhorn ATS records. If the customer licenses Bullhorn Time & Expense, we map Empeon clock punches to Bullhorn time entries by employee and date. If Bullhorn Time & Expense is not licensed, we deliver a time-and-attendance CSV export for the customer's payroll administrator to reconcile. We do not migrate Advanced Scheduling assignments because Bullhorn's scheduling model (Candidate availability, JobOrder shifts) differs fundamentally from Empeon's Employee View and Daily View scheduling paradigm.
empeon
Payroll History
Bullhorn ATS & CRM
CSV Export (not Bullhorn)
lossyEmpeon payroll registers, pay periods, gross/net pay amounts, tax withholding, and deduction line items do not migrate into Bullhorn because Bullhorn is not a payroll system. We export payroll history as structured CSV organized by pay period, with each row representing an employee's earnings for that period. The customer retains Empeon for payroll operations or migrates to Bullhorn One's back-office payroll module as a separate implementation project. We flag this clearly in the scoping document and do not attempt to map payroll fields to Bullhorn Candidate fields.
empeon
Custom Fields (Input and Checkbox)
Bullhorn ATS & CRM
Custom Fields on Candidate
lossyEmpeon free-text Input fields and Checkbox fields map to Bullhorn custom text and checkbox fields on the Candidate entity. Free-text values are copied verbatim; checkbox values (yes/no) map to Bullhorn checkbox fields. Because Empeon does not support picklists or date fields natively, any structured data stored as free text (e.g., a date entered as '01/15/2024') is parsed and coerced to the appropriate Bullhorn field type during migration. Data quality in unstructured free-text fields cannot be guaranteed.
empeon
Live Reports
Bullhorn ATS & CRM
Bullhorn Report Exports
1:1Empeon Live Report definitions are documented as written specifications during scoping. We export the underlying row data as structured output and note the column configuration required to reproduce each report. Report formatting, grouping hierarchies, and custom column ordering do not transfer. The customer uses Bullhorn's built-in reporting to reconstruct equivalent views. Standard Reports are handled the same way.
empeon
ESS Hub Access
Bullhorn ATS & CRM
Candidate Email Authentication Mapping
lossyThe ESS Hub email-must-match requirement means the employee's email in their Empeon Workforce profile must match the email they use for self-service authentication. We capture all employee email addresses during discovery and cross-reference against the destination Bullhorn candidate email to flag mismatches before cutover. Email domain changes during migration (e.g., corporate rebranding) break ESS access and require employee re-registration. We document all flagged mismatches in the migration handoff document.
| empeon | Bullhorn ATS & CRM | Compatibility | |
|---|---|---|---|
| Employee | Candidate1:1 | Fully supported | |
| Employee | Contact (on ClientCorporation)1:many | Fully supported | |
| Company Settings (Departments) | ClientCorporation1:1 | Fully supported | |
| Direct Deposit | Custom Fields on Candidatelossy | Mapping required | |
| Benefit Enrollments | Custom Fields on Candidatelossy | Mapping required | |
| Accrual Balances | Custom Fields on Candidatelossy | Fully supported | |
| Documents | Candidate Document Attachments1:1 | Mapping required | |
| Time and Attendance | Bullhorn Time & Expense (add-on)lossy | Fully supported | |
| Payroll History | CSV Export (not Bullhorn)lossy | Mapping required | |
| Custom Fields (Input and Checkbox) | Custom Fields on Candidatelossy | Fully supported | |
| Live Reports | Bullhorn Report Exports1:1 | Mapping required | |
| ESS Hub Access | Candidate Email Authentication Mappinglossy | Mapping required |
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.
empeon gotchas
API Connector is a paid add-on required for programmatic migration
Frequent session timeouts disrupt migration scoping activities
ESS Hub email-must-match requirement can break self-service after migration
Custom Field types are limited to Input and Checkbox
Live Report exports require manual column selection
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 API Connector confirmation
We audit the Empeon instance for record counts (employees, benefit enrollments, accrual records, documents), custom field inventory (Input and Checkbox fields per employee), Live Report configurations, and ESS Hub setup. We confirm API Connector licensing status and advise the customer to provision it before the engagement begins if not already licensed. We identify all distinct email addresses across the employee population and begin cross-referencing against the destination Bullhorn candidate email field. Bullhorn Support tickets for custom object provisioning are opened in parallel. The discovery output is a written migration scope covering record counts, custom field mapping, and email mismatch flags.
Schema design and custom field provisioning
We design the Bullhorn candidate schema covering all required custom fields: direct deposit routing (text, encrypted), benefit enrollment plan and carrier (text), accrual balance amounts (numeric), and certification expiration dates (date). Bullhorn Support provisions the custom objects; we validate their API names against our mapping document. We map Empeon employment status to Bullhorn Candidate status and define the internal-employee versus external-client-contact split rule. Company hierarchy from Empeon Company Settings maps to ClientCorporation records for staffing clients only.
Sandbox migration and reconciliation
We run a full migration into a Bullhorn Sandbox using a representative data sample. The customer's Bullhorn admin reviews candidate record completeness, validates custom field values, confirms document attachment presence, and spot-checks 25-50 records against the Empeon source. Any mapping corrections (wrong field assignments, missing lookups, encoding issues in free-text custom fields) are resolved here before production migration begins. This step also validates Bullhorn Support's custom object provisioning and confirms that the Bullhorn API credentials have sufficient permission for the import pipeline.
Employee-to-candidate split and direct deposit handling
We apply the employment-status split rule to classify each Empeon Employee record as a Bullhorn Candidate (active or former employee), a Contact on a ClientCorporation (external client contact), or an archived record. Direct deposit routing numbers are encrypted at ingest, stored in masked custom fields, and never written to logs or intermediate files. We generate a parallel payroll history CSV organized by pay period as a separate deliverable outside the Bullhorn migration scope.
Production migration in dependency order
We run production migration in record order: custom fields provisioned and validated first, then Employees mapped to Candidates, then Company Settings mapped to ClientCorporations, then document attachments in batches of 50 with retry logic. Benefit enrollment and accrual balance CSV exports are delivered alongside the Bullhorn import as structured reference data. Each phase emits a row-count reconciliation report before the next phase begins. Bullhorn API rate limits are respected throughout via batch chunking and exponential backoff.
Cutover, validation, and ESS email mismatch handoff
We freeze writes to the Empeon source during cutover, run a final delta migration of any records modified during the window, then mark Bullhorn as the system of record for candidate data. We deliver the ESS Hub email mismatch report to the customer's HR admin with recommended remediation steps (email update in Empeon or employee re-registration instructions). We do not rebuild Empeon workflows, time-and-attendance scheduling rules, or accrual calculation logic; these are documented as separate recommendations for the customer's Bullhorn admin or a Bullhorn implementation partner.
Platform deep dives
empeon
Source
Strengths
Weaknesses
Bullhorn ATS & CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard HRMS migration. 1 of 7 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across empeon and Bullhorn ATS & CRM.
Object compatibility
1 of 7 objects need a mapping; the rest are 1:1.
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
empeon: Not publicly documented.
Data volume sensitivity
empeon 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 empeon to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.
Walk through your empeon 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 empeon
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.