HRMS migration
Field-level mapping, validation, and rollback between HROne and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.
HROne
Source
Bullhorn ATS & CRM
Destination
Compatibility
6 of 12
objects map 1:1 between HROne and Bullhorn ATS & CRM.
Complexity
BStandard
Timeline
4-8 weeks
Overview
Moving from HROne to Bullhorn is a cross-category migration from an HRMS to a recruitment ATS and CRM. HROne stores employees, compensation histories, time-and-attendance logs, and leave balances. Bullhorn stores candidates, contacts, job orders, and placements. There is no 1:1 object match, so every record type from HROne requires an explicit mapping decision during discovery. Employees who are existing placed candidates or prospective hires map to Bullhorn Candidate or Contact; those who are internal staff only do not map to Bullhorn at all and should remain in HROne or another HRMS post-migration. We handle the per-record extraction from HROne's API, the timezone normalization of attendance data, and the Bullhorn bulk import process. Workflows, payroll automations, leave approval rules, and compliance configurations do not migrate; we deliver a written inventory of these for the customer's admin to rebuild in Bullhorn or a companion HR 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 HROne 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.
HROne
Employee
Bullhorn ATS & CRM
Candidate or Contact (split required)
1:manyHROne Employee records require an explicit type decision during scoping. Employees who represent placed candidates or prospective talent map to Bullhorn Candidate. Employees who represent existing clients or hiring managers map to Bullhorn Contact attached to a ClientCorporation. Internal staff with no candidate or client relationship do not map into Bullhorn; we flag these for the customer to retain in HROne or another HRMS post-migration. We use email address as the dedupe key during Bullhorn import and preserve the original HROne employee ID in a custom field hrone_employee_id__c for audit and cross-reference.
HROne
Department and Cost Center
Bullhorn ATS & CRM
ClientCorporation (for client-side) or Department Custom Object
lossyHROne's org structure (departments, cost centers, reporting hierarchy) maps to Bullhorn ClientCorporation for external-facing organizational records. For internal department tracking within Bullhorn, we use Bullhorn's Custom Objects to preserve department assignments if the customer requires them for reporting across placements.
HROne
Compensation Record
Bullhorn ATS & CRM
Custom Object (on Bullhorn Candidate or Placement)
1:1HROne salary structures, pay components, and compensation histories do not have a native Bullhorn standard object equivalent. We map these to a Bullhorn Custom Object (created per Bullhorn's custom object setup process) attached to the Candidate record. Fields include pay frequency, currency, base salary, and relevant allowances. Compensation on active Placements can be stored on the Placement record directly if the Bullhorn edition supports the required fields.
HROne
Time and Attendance Log
Bullhorn ATS & CRM
Custom Object or Placement Shift tracking
lossyClock-in/out logs, shift assignments, and overtime records in HROne store timestamps in the local timezone of the office or biometric device. We normalize all timestamps to UTC during transformation before mapping to Bullhorn. Bullhorn has no native attendance tracking module; attendance data maps to a Bullhorn Custom Object attached to the Candidate or Placement record, or is flagged for handoff to Bullhorn Time & Expense if that companion product is included in the customer's Bullhorn license.
HROne
Leave Balance
Bullhorn ATS & CRM
Custom Object (on Candidate or separate HRMS required)
lossyLeave entitlements, accrual policies, and current balances from HROne do not map into Bullhorn's ATS schema. Bullhorn is not designed to manage leave tracking. We map leave balance data to a Bullhorn Custom Object if the customer needs it visible on the candidate or placement record, but we recommend a separate HRMS or Bullhorn Time & Expense for leave management post-migration. Carry-forward rules and leave type configurations are preserved in the mapping document for the customer's HR admin.
HROne
Document (Offer Letter, Contract, ID Proof)
Bullhorn ATS & CRM
ContentDocument linked to Candidate or Contact
1:1HROne stores employee documents as file attachments or DocumentTemplate records. We extract file binaries and their metadata (document type, language, upload date) from HROne and import them into Bullhorn as ContentDocument records linked via ContentDocumentLink to the corresponding Candidate or Contact. We preserve the original document name and add a custom field for document type classification.
HROne
Job Opening (HROne Enterprise recruitment module)
Bullhorn ATS & CRM
JobOrder
1:1HROne's recruitment module (available on Enterprise tier) stores job postings, candidate pipelines, and applicant data. Job title, department, location, and employment type from HROne map directly to Bullhorn JobOrder. Applicant status values from HROne map to Bullhorn JobSubmission status values with a mapping table provided during discovery. Interview scores and recruiter-specific custom fields may require Custom Objects in Bullhorn if the fields do not map to standard Candidate properties.
HROne
Applicant and Candidate Pipeline
Bullhorn ATS & CRM
Candidate + JobSubmission
1:1HROne applicants on a job opening map to Bullhorn Candidate records with a JobSubmission linking each Candidate to the corresponding JobOrder. We map the HROne applicant status (applied, screening, interview, offer, hired, rejected) to the equivalent Bullhorn status values using a translation table. If HROne stores interview scorecards, these map to Bullhorn Custom Objects on the Candidate or JobSubmission.
HROne
Performance Appraisal
Bullhorn ATS & CRM
Custom Object or Notes on Candidate
lossyGoals, appraisal cycles, and review ratings from HROne's performance module do not have a standard Bullhorn equivalent. We map appraisal data to a Bullhorn Custom Object attached to the Candidate record, with fields for appraisal date, rating, reviewer, and comments. If the customer does not license Bullhorn custom objects, we store appraisal summaries as Note records linked to the Candidate.
HROne
Organization Hierarchy
Bullhorn ATS & CRM
ClientCorporation or Department Custom Object
1:1The HROne org chart (departments, manager relationships, cost centers) maps to Bullhorn ClientCorporation records for external organizations and to Bullhorn Custom Objects or a structured field mapping for internal reporting. Manager relationships from HROne are preserved as Bullhorn User-to-Candidate or User-to-Contact relationships for placement supervisory tracking.
HROne
Custom Fields on Employee
Bullhorn ATS & CRM
Custom Object fields
lossyHROne organizations frequently add instance-specific custom fields to the Employee object. These are not consistently exposed via the HROne public API and may only appear in UI exports. We perform a manual custom-field discovery step: we compare the HROne API export against a UI-generated sample export and flag any discrepancy. Unmapped custom fields migrate to Bullhorn Custom Object fields, created per Bullhorn's schema-before-data approach. We validate field type compatibility (text, number, date, picklist) during mapping.
HROne
User Account
Bullhorn ATS & CRM
Bullhorn User (by email match)
1:1HROne user accounts (including system accounts, shared logins, and inactive accounts retained for historical access) do not all map to Bullhorn users. We audit the HROne user list separately from the employee list and flag accounts that should not be replicated in Bullhorn to avoid inflating billable-seat counts. Active HROne users with recruitment responsibilities map to Bullhorn User records by email match. Any HROne user without a matching Bullhorn User is held in a reconciliation queue for the customer's admin to provision before candidate data import resumes.
| HROne | Bullhorn ATS & CRM | Compatibility | |
|---|---|---|---|
| Employee | Candidate or Contact (split required)1:many | Fully supported | |
| Department and Cost Center | ClientCorporation (for client-side) or Department Custom Objectlossy | Fully supported | |
| Compensation Record | Custom Object (on Bullhorn Candidate or Placement)1:1 | Fully supported | |
| Time and Attendance Log | Custom Object or Placement Shift trackinglossy | Fully supported | |
| Leave Balance | Custom Object (on Candidate or separate HRMS required)lossy | Fully supported | |
| Document (Offer Letter, Contract, ID Proof) | ContentDocument linked to Candidate or Contact1:1 | Fully supported | |
| Job Opening (HROne Enterprise recruitment module) | JobOrder1:1 | Fully supported | |
| Applicant and Candidate Pipeline | Candidate + JobSubmission1:1 | Fully supported | |
| Performance Appraisal | Custom Object or Notes on Candidatelossy | Fully supported | |
| Organization Hierarchy | ClientCorporation or Department Custom Object1:1 | Fully supported | |
| Custom Fields on Employee | Custom Object fieldslossy | Fully supported | |
| User Account | Bullhorn User (by email match)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.
HROne gotchas
HROne's REST API has no documented bulk export endpoint
Timezone normalization required for attendance data
Per-user billing model can inflate headcount during migration planning
Custom fields are instance-specific and not always in the public API
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 migration classification
We audit the HROne instance across all modules in scope: Employee records, Compensation, Time and Attendance, Leave Balances, Documents, Recruitment module (if on Enterprise), Performance Appraisals, Organization Structure, and Custom Fields. We classify every HROne record type as Candidate, Contact, Custom Object, or no-migration. We also audit the HROne user list against the employee list to flag non-replicatable accounts before Bullhorn import. The discovery output is a written migration scope with object classification, record count estimates, and a Bullhorn edition recommendation (ATS Growth, Growth, or Enterprise based on custom object requirements).
Bullhorn Custom Object setup coordination
Bullhorn requires Custom Objects to be created via Bullhorn Support or the Bullhorn Hub before data import. We prepare the Custom Object Setup Spreadsheet (Bullhorn's official template) with all required fields, field types, and display labels based on the HROne custom fields and compensation structures identified during discovery. The customer's Bullhorn admin submits this to Bullhorn Support. We allow two to five business days for Bullhorn to provision the custom objects before beginning data migration. We validate that the provisioned objects match our specifications before proceeding.
Schema mapping and transform design
We design the Bullhorn field schema for every object in scope: Candidate fields, Contact fields, JobOrder fields, Custom Object field definitions, and ContentDocument metadata for documents. We build the HROne-to-Bullhorn field-level mapping document with transform rules: timezone normalization for attendance timestamps, pay frequency standardization for compensation records, leave type translation table for leave balances, and document type classification for HROne file attachments. Each mapping includes the Bullhorn field API name, data type, required/optional status, and any validation rule that applies on the Bullhorn side.
Sandbox migration and reconciliation
We run a full migration into Bullhorn's sandbox environment (using Bullhorn's test org or a development instance) with production-like record volumes. The customer's Bullhorn admin reconciles record counts against HROne source counts: Candidates in, Contacts in, JobOrders in, Custom Object records in, Documents linked. We spot-check twenty to fifty records against HROne source data for field-level accuracy. Any mapping corrections, custom object field issues, or timezone normalization errors surface here before production migration begins.
Owner and User provisioning
We extract every distinct HROne owner referenced on Employee, Compensation, Attendance, Leave, Recruitment, and Document records and match by email against the Bullhorn destination org's User table. Any HROne owner without a matching Bullhorn User is held in a reconciliation queue. The customer's Bullhorn admin provisions missing Bullhorn Users before record import resumes. Owner resolution is required before Candidate and Contact import because Bullhorn's User references are required on most standard records.
Production migration in dependency order
We run production migration in record-dependency order: ClientCorporations (if mapping org structure to external clients), Candidates (with the HROne-employee-type classification applied), Contacts, JobOrders, Custom Object records for Compensation and Attendance, Document imports via Bullhorn ContentDocument, Job Submissions linking Candidates to JobOrders, and Performance Appraisal data to Custom Objects. Each phase emits a row-count reconciliation report before the next phase begins. We use Bullhorn's standard import tooling and API where applicable, with batch chunking and retry logic for large record sets.
Cutover, validation, and handoff documentation
We freeze HROne write access during the cutover window, run a final delta migration of any records modified during the migration window, then confirm Bullhorn as the system of record for candidate and recruitment data. We deliver the Payroll and Leave Workflow Inventory document to the customer's HR admin for rebuild evaluation, along with the Custom Object schema documentation and field mapping spreadsheet. We provide a one-week post-go-live window for reconciliation support. We do not rebuild HROne payroll configurations, leave approval workflows, or statutory compliance rules inside the migration scope; those are separate engagements.
Platform deep dives
HROne
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 HROne 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
HROne: Powered by Azure API Management; specific quotas not publicly published — typical enterprise SaaS limits assumed.
Data volume sensitivity
HROne exposes a bulk API — large-volume migrations stream efficiently.
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 HROne to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.
Walk through your HROne 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 HROne
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.