HRMS migration
Field-level mapping, validation, and rollback between Dayforce and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.
Dayforce
Source
Bullhorn ATS & CRM
Destination
Compatibility
7 of 13
objects map 1:1 between Dayforce and Bullhorn ATS & CRM.
Complexity
BStandard
Timeline
5-8 weeks
Overview
Dayforce and Bullhorn serve different stages of the employment lifecycle. Dayforce is a full-stack HCM platform managing payroll, benefits, time off, and workforce scheduling across the entire employment relationship. Bullhorn is an ATS and recruitment CRM built to track candidates, job orders, and placements from first submission through hire. These platforms share a workforce data vocabulary but diverge sharply on scope: Dayforce holds the employment record; Bullhorn holds the recruiting pipeline. We bridge that gap by mapping Dayforce Workers to Bullhorn Candidates, Job Assignments to Job Orders, and building custom objects in Bullhorn for historical pay rates, earning groupings, and benefits enrollments that have no native Bullhorn equivalent. We do not migrate payroll, benefits carrier feeds, time and attendance data, or Dayforce Position Management hierarchies as these require specialized payroll and HRIS infrastructure that Bullhorn does not provide. Workflows, automations, and Dayforce-specific compliance configurations do not migrate; we deliver a written inventory of these for the customer's Bullhorn admin to rebuild in Bullhorn Automation.
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 Dayforce 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.
Dayforce
Worker
Bullhorn ATS & CRM
Candidate
1:1Dayforce Worker records map to Bullhorn Candidate. We extract biographical data (legal name, date of birth, address, contact information), employment status, and the Dayforce worker number as the Bullhorn Candidate externalID for dedupe. Dayforce Quick Entry data attached to a Worker migrates as a Candidate note with a timestamp reference. Workers who have been placed or are actively assigned in Dayforce carry an active assignment flag we use to populate the Candidate status and last-placement date in Bullhorn.
Dayforce
Job Assignment
Bullhorn ATS & CRM
Job Order
1:1Dayforce Job Assignments associate a Worker to a Job with effective dates, classification codes, and assignment status. We map Job Assignment status (Active, Terminated, On Leave) to Bullhorn Candidate employment status on the Person record. Department, employment type, and work location from Job Assignment transfer to custom fields or the Job Order's corporate information section. Terminated assignments generate a placement history record in Bullhorn with the end date and termination reason preserved.
Dayforce
Job
Bullhorn ATS & CRM
Job Order
lossyDayforce Job records define role-level attributes including job title, FLSA classification, and Workers Comp codes. We create Bullhorn Job Orders as the role-level record, populating title, required skills (from Dayforce job qualifications), and job description. Multiple active Job Assignments under a single Dayforce Job produce multiple Bullhorn Candidate records with the same Job Order reference, representing individual placements under a shared role.
Dayforce
Position Term
Bullhorn ATS & CRM
Candidate (employment segment)
1:1Dayforce Position Terms define the duration and status of a position (ongoing, fixed-term, seasonal). We map Position Term status and duration to Bullhorn Candidate custom fields tracking employment type (full-time, part-time, contract) and assignment end date. The ShortName sort key from Dayforce's PositionTerm export becomes a Bullhorn reference number for cross-system audits.
Dayforce
Legal Entity
Bullhorn ATS & CRM
Corporation (Bullhorn)
1:1Dayforce Legal Entities define the employing corporate entity per jurisdiction. We map each Dayforce Legal Entity to a Bullhorn Corporation record used as the employer of record for staffing and placement purposes. Corporate address, tax ID, and jurisdiction flags transfer to the Bullhorn Corporation. This mapping is required before any Candidate or Job Order migration because Bullhorn ties employment and placement records to a Corporation.
Dayforce
Pay Rate
Bullhorn ATS & CRM
Custom Object: Employment Compensation History
lossyDayforce Pay Rates are effective-dated on Workers with rate type, amount, and currency. Bullhorn has no native equivalent. We create a custom object Employment_Compensation_History__c on the Candidate record with fields for effective_date, rate_type, hourly_or_salary, amount, currency, and end_date. Effective-dated rates with overlapping start dates are normalized chronologically before import: Dayforce auto end-dates a prior rate when a new one overlaps, and we replicate that logic to preserve a clean rate sequence. We flag any gaps in the rate history that indicate a pay discontinuity.
Dayforce
Earning Grouping
Bullhorn ATS & CRM
Custom Object: Earning Component Record
lossyDayforce Earning Groupings categorize pay components (hours-based, flat, bonus, commission) with MTD/QTD/YTD accumulations. Bullhorn's placement and billing records track commission and contractor pay rates but not HR earning accumulations. We create a custom object Earning_Component__c linked to Candidate, with fields for component_type, hours_or_flat, current_accumulation, and pay_frequency. Accumulation totals migrate as snapshot values at the time of cutover.
Dayforce
Time Off Balance
Bullhorn ATS & CRM
Custom Object: Time Off Snapshot
lossyDayforce Time Off Balances track accrual balances, carryover, and usage per Worker. Bullhorn does not natively manage accrual tracking. We create a custom object Time_Off_Snapshot__c on the Candidate record capturing the accrual type, current balance, accrual rate, carryover amount, and expiration date at migration time. We note that ongoing accrual calculations do not continue post-migration; the customer must configure accrual logic in Bullhorn's custom object or a connected time-tracking tool if ongoing accrual tracking is required.
Dayforce
Benefits Enrollment and Tier
Bullhorn ATS & CRM
Custom Object: Benefits Enrollment Record
lossyDayforce maps benefit plan options to Tiers based on dependent coverage levels with carrier-compatible 063/064 record export. Bullhorn has no native benefits enrollment or administration object. We create a custom object Benefits_Enrollment__c linked to Candidate capturing plan_name, coverage_tier (Employee, Employee+Spouse, Employee+Children, Family), election_status, monthly_premium, and carrier_name. Carrier feed files (063/064 records) do not migrate to Bullhorn and must be reconfigured with the new benefits administrator or carrier directly.
Dayforce
Workers Comp Code
Bullhorn ATS & CRM
Custom Object: Workers Comp Classification
1:1Dayforce Workers Comp codes are assigned to Jobs in Org Setup with classification rates and multi-select job-to-code mappings. Bullhorn Job Orders support custom fields for compliance classification. We extract the Workers Comp code-to-job mapping from the Job Assignment export and create a custom object Workers_Comp_Classification__c linked to the Job Order, populating code, classification_description, and rate per code.
Dayforce
Document (Worker-attached)
Bullhorn ATS & CRM
Document (Candidate-attached)
1:1Dayforce manages documents attached to Workers (offer letters, contracts, certifications, I-9s). Bullhorn's Document entity attaches files to Candidate records. We extract document metadata (document type, upload date, file name) and binary blobs where accessible via the Dayforce API, and load them as Bullhorn Candidate documents. Document type taxonomy differs between systems: we map Dayforce document types to the closest Bullhorn document category during import. I-9 and tax withholding forms may require re-execution under the new employer and are flagged for the customer's HR admin.
Dayforce
Custom Fields (Worker-level)
Bullhorn ATS & CRM
Custom Fields (Candidate-level)
lossyDayforce supports custom fields at the Worker level with computed-value functions. We extract all custom field values and create matching custom fields on the Bullhorn Candidate object with equivalent data types (text, number, date, picklist). Custom field functions (computed values) do not replicate in Bullhorn; we preserve the last computed value as a static field and document the original function logic for the customer's Bullhorn admin to rebuild as a formula field if supported on the custom field type.
Dayforce
Owner (Worker owner)
Bullhorn ATS & CRM
User (Bullhorn user)
1:1Dayforce Workers can have an assigned HR owner or manager. We resolve Dayforce worker owners by email match against Bullhorn User records. Any Dayforce owner without a matching Bullhorn User is held in a reconciliation queue for the customer's Bullhorn admin to provision before record migration resumes. Bullhorn's user-based ownership model differs from Dayforce's HR role assignment, so manager relationships may require a custom field on the Candidate record rather than a native ownership link.
| Dayforce | Bullhorn ATS & CRM | Compatibility | |
|---|---|---|---|
| Worker | Candidate1:1 | Fully supported | |
| Job Assignment | Job Order1:1 | Fully supported | |
| Job | Job Orderlossy | Fully supported | |
| Position Term | Candidate (employment segment)1:1 | Fully supported | |
| Legal Entity | Corporation (Bullhorn)1:1 | Fully supported | |
| Pay Rate | Custom Object: Employment Compensation Historylossy | Fully supported | |
| Earning Grouping | Custom Object: Earning Component Recordlossy | Fully supported | |
| Time Off Balance | Custom Object: Time Off Snapshotlossy | Fully supported | |
| Benefits Enrollment and Tier | Custom Object: Benefits Enrollment Recordlossy | Fully supported | |
| Workers Comp Code | Custom Object: Workers Comp Classification1:1 | Fully supported | |
| Document (Worker-attached) | Document (Candidate-attached)1:1 | Fully supported | |
| Custom Fields (Worker-level) | Custom Fields (Candidate-level)lossy | Fully supported | |
| Owner (Worker owner) | User (Bullhorn user)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.
Dayforce gotchas
RESTful API rate limiter is undocumented
National ID migration supports only TIN and SIN
CSV Quick Entry import requires strict formatting
Effective-dated rates auto end-date on overlap
Time and attendance problems flag incomplete records
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 scope definition
We audit the Dayforce instance for Worker count, Job Assignment count, Legal Entity count, active pay rate records, earning grouping records, and any custom fields at the Worker level. We map each Dayforce object against Bullhorn's native object model to identify gaps (payroll, benefits, time off accruals, Position Management hierarchy) requiring custom object creation. We review the Bullhorn edition and confirm custom object availability. The discovery output is a written migration scope specifying which objects migrate, which migrate to custom objects, and which are flagged as manual-reentry or excluded. We identify all non-TIN/SIN national IDs and flag them for manual processing.
Schema design and custom object creation
We design the Bullhorn destination schema before any data extraction begins. This includes creating custom objects (Employment_Compensation_History__c, Earning_Component__c, Time_Off_Snapshot__c, Benefits_Enrollment__c, Workers_Comp_Classification__c) with all required fields, field types, and lookup relationships to the Candidate object. We configure Corporation records for each Dayforce Legal Entity. We design the Bullhorn user mapping: Dayforce worker owners resolved by email match to Bullhorn Users, with missing users placed in a reconciliation queue for the customer's Bullhorn admin to provision.
Sandbox migration and reconciliation
We run a full migration into a Bullhorn Sandbox using production-equivalent data volume. The customer's Bullhorn admin and HR lead reconcile record counts (Candidates in, Job Orders in, compensation history in, documents in), spot-check 30-50 random records against the Dayforce source, and validate that custom object data is correctly linked to the parent Candidate. Any mapping corrections, field type mismatches, or dedupe key conflicts are resolved in the Sandbox before production migration begins.
Dayforce data extraction with rate-limit handling
We extract Worker records, Job Assignments, Job records, Position Terms, Legal Entities, Pay Rate history, Earning Grouping records, Time Off balance snapshots, Benefits enrollment records, Workers Comp code mappings, Document metadata and binary blobs, and custom field values from Dayforce via its RESTful API. We apply conservative throttling and exponential backoff throughout to mitigate Dayforce's undocumented rate limiter. CSV-based exports (Job Assignment, Job, PositionTerm) are validated against Dayforce's import formatting requirements before processing. National ID extraction flags any IDs that are not TIN or SIN for the manual-reentry workflow.
Production migration in dependency order
We run production migration in this order: Bullhorn Users (validated against Dayforce owner emails), Corporations (from Dayforce Legal Entities), custom object schema deployment, Candidate records (with dedupe by externalID), Job Orders (with Corporation lookup resolved), Employment Compensation History (linked to Candidate), Earning Components, Benefits Enrollments, Workers Comp Classifications, Time Off Snapshots, and Documents (binary blobs last due to size). Each phase emits a row-count reconciliation report before the next phase begins. We use Bullhorn's REST API for individual record operations and bulk CSV for high-volume Candidate loads with validation.
Cutover, delta sync, and handoff documentation
We freeze Dayforce writes during cutover, run a final delta migration of any records modified during the migration window, then enable Bullhorn as the recruiting system of record. We deliver a written inventory of Dayforce workflows, automations, and approval chains that do not migrate to Bullhorn Automation, along with recommended rebuild steps for each. We do not rebuild Dayforce workflows as Bullhorn Automation inside the migration scope. We support a one-week hypercare window where we resolve reconciliation issues raised by the customer's recruiting and HR teams. Benefits carrier feed reconfiguration, payroll system cutover, and I-9 re-execution are the customer's HR team's responsibility post-migration.
Platform deep dives
Dayforce
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 Dayforce 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
Dayforce: Not publicly documented — Dayforce applies rate limiting at the client level but does not publish specific request thresholds.
Data volume sensitivity
Dayforce 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 Dayforce to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.
Walk through your Dayforce 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 Dayforce
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.