HRMS migration
Field-level mapping, validation, and rollback between Harri and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.
Harri
Source
Bullhorn ATS & CRM
Destination
Compatibility
7 of 12
objects map 1:1 between Harri and Bullhorn ATS & CRM.
Complexity
BStandard
Timeline
4-6 weeks
Overview
Moving from Harri to Bullhorn is a cross-domain migration: Harri manages frontline hospitality workforce operations (scheduling, shifts, compliance, hourly workers) while Bullhorn is purpose-built for staffing and recruiting agencies (candidates, job orders, placements, client corporations). Harri organizes by Location and Worker; Bullhorn uses ClientCorporation, Candidate, and JobOrder. We resolve the structural gap by mapping Harri Locations to Bullhorn ClientCorporations, Harri Workers to Bullhorn Candidates with employment-type classification, Harri Positions to Bullhorn JobOrders, and Harri Applications to Bullhorn JobSubmission records. Shift data has no native Bullhorn equivalent and migrates as Candidate custom fields or documented configuration for the customer admin to decide. Bullhorn custom objects require Bullhorn Support to provision before migration begins, so we coordinate that ticket during discovery. Payroll, engagement survey data, and Harri Workflows do not migrate; we deliver a written schedule rebuild guide and a Bullhorn Automation inventory for admin reconstruction.
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 Harri 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.
Harri
Worker
Bullhorn ATS & CRM
Candidate
1:1Harri Workers (employees and applicants) map to Bullhorn Candidate records. We preserve first name, last name, email, phone, employment status, hire date, job title, and department. Employment type (full-time, part-time, seasonal) maps to Bullhorn's EmployeeType custom field or standard classification fields. Active workers import as active Candidates; applicants retain their application status. Harri worker custom properties migrate to Bullhorn Candidate custom fields (customObject1s through customObject10s depending on edition), which Bullhorn Support provisions before migration begins.
Harri
Location
Bullhorn ATS & CRM
ClientCorporation
1:1Harri Locations (restaurant or hotel properties) map to Bullhorn ClientCorporation records. Each Location's address, manager assignment, and associated property metadata become Bullhorn ClientCorporation fields. For hospitality operators transitioning to staffing models, the Location is the client company; for operators maintaining direct employment, the Location maps to an internal ClientCorporation used for reporting and compliance tracking. We chunk export by Location and validate completeness per site before loading into Bullhorn.
Harri
Position
Bullhorn ATS & CRM
JobOrder
1:1Harri Positions define job listings within a Location, including title, pay rate, FT/PT/seasonal classification, and department. Bullhorn JobOrder captures the same fields: title, employmentType, salary, and pay rate. We map Position title to JobOrder title, FT/PT classification to JobOrder employmentType, and pay rate to JobOrder salary or a custom pay rate field. Custom Position properties (shift requirements, coverage needs, job description) migrate to JobOrder custom fields.
Harri
Application
Bullhorn ATS & CRM
JobSubmission
1:1Harri Applications track candidate submissions for Positions, including application date, source, pipeline stage, and interview scores. Bullhorn JobSubmission (accessible via the Candidate and JobOrder relationship) captures submission date, status, source, and rating. We map Harri application stage names (customer-configured) to Bullhorn JobSubmission status values, preserving interview scores in custom rating fields. Pipeline stage names vary by Harri customer configuration, so we create a customer-specific stage mapping table during scoping.
Harri
Shift
Bullhorn ATS & CRM
Candidate Custom Fields or Placement
lossyBullhorn does not have a native shift scheduling object. Harri shift data (assigned shifts with start/end times, shift type, and coverage requirements) cannot map to a standard Bullhorn entity. We migrate shift data as Candidate custom fields (e.g., preferredShiftStart__c, preferredShiftEnd__c, shiftType__c, availabilityNotes__c) or document it as a configuration recommendation for Bullhorn Onboarding (formerly Able) if the customer licenses that module. The customer decides the target structure during scoping.
Harri
Onboarding Task
Bullhorn ATS & CRM
Candidate Custom Fields or Task
lossyHarri onboarding task checklists migrate as Bullhorn Task records linked to the Candidate, or as Candidate custom fields if the tasks are status flags rather than dated actions. We map task name, completion status, due date, and responsible manager. Custom onboarding task fields map to Candidate custom fields. Bullhorn Onboarding (formerly Able) handles structured onboarding workflows natively; we document whether the customer licenses this module and flag it as a rebuild target.
Harri
Compliance Record
Bullhorn ATS & CRM
Candidate Custom Fields
1:manyHarri compliance records (certification expiry, mandatory training completion, regulatory acknowledgements) are compliance record types that vary by jurisdiction and customer setup. Bullhorn has no native compliance tracking module for hospitality-specific regulations. We flatten Harri compliance records into Candidate custom fields (e.g., certificationExpiryDate__c, tipCreditStatus__c, mandatoryTrainingCompleted__c) and preserve the original compliance record type as a custom picklist value. The customer admin rebuilds any active compliance reminder workflows in Bullhorn Automation (formerly Herefish) post-migration.
Harri
Document
Bullhorn ATS & CRM
Candidate Attachments (ContentDocument)
1:1Harri stores employee documents (contracts, ID scans, policies) as file attachments on Worker records. We migrate these as Bullhorn ContentDocument records attached to the corresponding Candidate via ContentDocumentLink. Filenames and original upload timestamps are preserved. Document type (contract, ID, policy) is stored in a custom field on the ContentDocument or as a Candidate custom field to aid searchability. Bullhorn supports PDF, DOC, and image formats natively.
Harri
Pay Rate (from Position)
Bullhorn ATS & CRM
Placement payRate or JobOrder salary
1:1Harri pay rates are stored on the Position object. Bullhorn captures pay rate on the Placement record (for placed candidates) and on the JobOrder (for the job opening). We map Harri Position pay rate to Bullhorn JobOrder salary or to Placement payRate depending on whether the worker has been placed. Payroll data itself (earnings, deductions, pay stubs) lives in Harri's integrated third-party payroll provider and does not migrate; we instruct customers to export historical payroll from their payroll provider separately.
Harri
Engagement Survey Data
Bullhorn ATS & CRM
Excluded
lossyHarri employee engagement and pulse survey responses are tied to the Harri engagement module and have no documented export mechanism. Bullhorn has no engagement survey module natively. We exclude engagement survey data from migration scope and flag it upfront. Customers who need historical engagement data export it manually from Harri's UI before termination. We note Bullhorn's integration with third-party engagement tools (Culture Amp, Lattice) as a post-migration replacement path.
Harri
Payroll Data
Bullhorn ATS & CRM
Excluded
lossyHarri handles payroll via integration with third-party providers rather than natively. Historical earnings, deductions, pay stubs, and tax withholdings are stored in the integrated payroll system, not in Harri. We do not migrate payroll data. The customer exports historical payroll from their payroll provider and maps it into Bullhorn Back Office (if licensed) or a separate payroll system post-migration.
Harri
Custom Worker Properties
Bullhorn ATS & CRM
Candidate Custom Objects
1:1Harri custom properties on Workers (beyond standard fields) map to Bullhorn Candidate custom objects. Bullhorn Support must provision custom objects before migration; the Custom Object Setup Spreadsheet is submitted as a ticket. Growth and Enterprise editions support up to 10 custom objects with 55 fields each; Bullhorn ATS supports 2. We map each Harri custom property to a typed Bullhorn custom field (text, date, drop-down, checkbox) and configure the field mapping in Bullhorn Admin > Field Mappings before migration.
| Harri | Bullhorn ATS & CRM | Compatibility | |
|---|---|---|---|
| Worker | Candidate1:1 | Fully supported | |
| Location | ClientCorporation1:1 | Fully supported | |
| Position | JobOrder1:1 | Fully supported | |
| Application | JobSubmission1:1 | Fully supported | |
| Shift | Candidate Custom Fields or Placementlossy | Fully supported | |
| Onboarding Task | Candidate Custom Fields or Tasklossy | Fully supported | |
| Compliance Record | Candidate Custom Fields1:many | Fully supported | |
| Document | Candidate Attachments (ContentDocument)1:1 | Fully supported | |
| Pay Rate (from Position) | Placement payRate or JobOrder salary1:1 | Fully supported | |
| Engagement Survey Data | Excludedlossy | Fully supported | |
| Payroll Data | Excludedlossy | Mapping required | |
| Custom Worker Properties | Candidate Custom Objects1: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.
Harri gotchas
Gated API and export templates require direct engagement with Harri
Payroll data lives in integrated third-party providers
Engagement survey data is not independently portable
Multi-location configurations create export complexity
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 edition selection
We audit Harri across all active modules: Worker records (active, inactive, applicant), Locations (by property count), Position catalogs (titles, pay rates, classifications), Shifts (volume and pattern complexity), Application pipeline stages, Compliance record types, and Document attachments. We pair this with a Bullhorn edition assessment: Bullhorn Team ($99/user) covers basic ATS/CRM with limited custom fields; Bullhorn Corporate ($199/user) adds API access and custom fields; Bullhorn Enterprise (custom) is required if the customer needs 10 custom objects, advanced reporting, or Bullhorn Onboarding scheduling. Bullhorn Support custom object provisioning must begin in this step to account for ticket latency before schema deployment.
Harri data export coordination
We engage Harri's customer data team directly to request a full data export. Because Harri's API and export templates are member-gated, we coordinate the export request before any platform termination. For multi-location deployments, we request exports chunked by Location to manage file size and enable per-site validation. The export includes Workers, Positions, Locations, Shifts, Applications, Compliance records, and Documents. Payroll data and engagement survey data are excluded; we instruct the customer to export payroll from their payroll provider and engagement data from Harri's UI manually. We validate export completeness against our discovery audit before proceeding to transformation.
Schema design and Bullhorn field mapping
We design the Bullhorn destination schema based on the export structure. This includes Bullhorn Support provisioning custom objects for extended Worker properties, standard field mapping (Harri Worker fields to Bullhorn Candidate fields), Location mapping to ClientCorporation, Position mapping to JobOrder, Application mapping to JobSubmission, and shift data mapping to Candidate custom fields or Bullhorn Onboarding configuration notes. Field edit types, required flags, and picklist values are configured in Bullhorn Admin > Field Mappings. Schema is deployed into a Bullhorn Sandbox first for validation before production migration begins.
Sandbox migration and reconciliation
We run a full migration into a Bullhorn Sandbox using production-like data volume from the Harri export. The customer's HR and operations leads reconcile record counts (Workers in, Candidates in, Locations in, ClientCorporations in, Positions in, JobOrders in, Shifts in), spot-check 25-50 random records against the Harri source, and verify document attachments are linked to the correct Candidate. Compliance record mapping is validated for accuracy across jurisdictions. The customer signs off on schema and mapping before production migration begins. Any mapping corrections happen in the Sandbox, not in production.
Production migration in dependency order
We run production migration in record-dependency order: ClientCorporations (from Harri Locations) first, then Candidates (with employment type and custom fields), JobOrders (with Position pay rates and classifications), JobSubmissions (with application status mapping), Placement records (if applicable), Task records (for onboarding task status), Compliance data (as Candidate custom fields), and Documents (as ContentDocument linked to Candidates). Shift data is the final batch, mapped to Candidate custom fields per the customer's chosen configuration. Each phase emits a row-count reconciliation report before the next phase begins. We use Bullhorn REST API with rate-limit handling and exponential backoff for all insert and update operations.
Cutover, validation, and rebuild handoff
We freeze Harri writes during cutover, 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 schedule rebuild guide for Bullhorn Onboarding (if licensed) and a Bullhorn Automation inventory documenting any migration-scope automation recommendations. We do not rebuild Harri Workflows or shift scheduling as Bullhorn automations inside the migration scope; that is a separate engagement. We support a one-week hypercare window where we resolve any record-reconciliation issues raised by the customer's team.
Platform deep dives
Harri
Source
Strengths
Weaknesses
Bullhorn ATS & CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard HRMS migration. All 7 core objects map 1:1 between Harri and Bullhorn ATS & CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Harri and Bullhorn ATS & CRM.
Object compatibility
All 7 core objects map 1:1 between Harri 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
Harri: Not publicly documented.
Data volume sensitivity
Harri 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 Harri to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.
Walk through your Harri 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 Harri
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.