HRMS migration
Field-level mapping, validation, and rollback between Unicorn ATS and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.
Unicorn ATS
Source
Bullhorn ATS & CRM
Destination
Compatibility
8 of 12
objects map 1:1 between Unicorn ATS and Bullhorn ATS & CRM.
Complexity
BStandard
Timeline
5-8 weeks
Overview
Moving from Unicorn ATS to Bullhorn is a platform migration for staffing and recruitment agencies that want Bullhorn's ecosystem depth and its built-in CRM for staffing operations. Bullhorn's ATS edition structure limits Custom Objects to two per entity (compared to ten on the Enterprise tier), which constrains how many extended data schemas can migrate without upgrading. We audit Unicorn ATS activity logs and note exports for flat-CSV export artifacts that lose candidate linkage, then run a fuzzy-match re-association pass to reattach orphaned history to the correct Candidate record. Saved searches from the Unicorn ATS legacy interface migrate automatically in Bullhorn's New Candidate List; Bullhorn Support can trigger manual migration if any are missed. Workflows, automation rules, and hiring pipeline configurations do not migrate as code. We deliver a written inventory of every active automation and pipeline rule for the customer's Bullhorn 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 Unicorn ATS 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.
Unicorn ATS
Candidate
Bullhorn ATS & CRM
Candidate
1:1Unicorn ATS candidate records map directly to Bullhorn Candidate. Standard fields (name, email, phone, address, employment status) transfer as typed Bullhorn fields. Resume files migrate as file attachments on the Candidate record and are available for inline preview in Bullhorn ATS v2. Any candidate deduplication pass runs before migration to avoid inflating the Bullhorn candidate count; Bullhorn's duplicate candidate prevention (10.0 TrustRadius rating) operates post-import on new submissions.
Unicorn ATS
Company
Bullhorn ATS & CRM
ClientCorporation
1:1Unicorn ATS Company or employer records map to Bullhorn ClientCorporation. The employer name, address, industry, and contact information transfer to Bullhorn's company entity. ClientCorporation must exist before Candidate records referencing it are imported, so this entity migrates first in dependency order.
Unicorn ATS
Job Requisition
Bullhorn ATS & CRM
JobOrder
1:1Unicorn ATS job records map to Bullhorn JobOrder. Fields include job title, department, location, employment type (full-time, contract, part-time), pay range, description, and hiring manager assignment. Posting status and dates transfer to Bullhorn's job publishing fields. JobOrder must resolve to a ClientCorporation record for proper linkage.
Unicorn ATS
Pipeline Stage
Bullhorn ATS & CRM
Job Reporting (ATS v1) or ATS v2 stage fields
lossyPipeline stages define the candidate journey from Application through Placement. Bullhorn ATS v1 uses a Job Reporting junction object where each stage (Application, Submittal, Interview, Offer, Closing Report) generates a record with Job Manager Stage Status (Current, Accepted, Rejected). ATS v2 uses a different stage tracking model. We extract the current stage configuration from Unicorn ATS and apply the corresponding Bullhorn stage model. If the customer is on ATS v1, we configure the Job Reporting object; if on ATS v2, we use the native stage fields. Stage automation rules do not migrate and are documented separately.
Unicorn ATS
Application
Bullhorn ATS & CRM
JobSubmission
1:1The link between a Candidate and a JobOrder in Bullhorn is represented by JobSubmission. Each application of a candidate to a job produces a JobSubmission record with its own stage and status. The migration maps each Unicorn ATS application record to a Bullhorn JobSubmission, preserving the application date, source channel, and initial pipeline stage assignment.
Unicorn ATS
Placement
Bullhorn ATS & CRM
Placement
1:1Placements (filled positions) in Unicorn ATS map to Bullhorn Placement records. Fields include start date, end date (for contract placements), pay rate, bill rate, placement status, and the recruiter credited for the hire. Placement records reference both the Candidate and the JobOrder and must be imported after both parent records exist.
Unicorn ATS
Custom Fields
Bullhorn ATS & CRM
Custom Field or Custom Object
lossyUnicorn ATS custom fields added to Candidates, Jobs, or Placements map to Bullhorn Custom Fields within each entity. Bullhorn ATS edition limits Custom Objects to two per entity (Job, Candidate, ClientCorporation, Opportunity, Placement). If the migration scope requires more than two Custom Objects on a single entity, the customer must upgrade to the Front Office Growth or Enterprise edition before migration. Custom Component Fields in Bullhorn are reserved for integrations and not supported for general use; we route extended data to Custom Objects instead.
Unicorn ATS
Employee Record
Bullhorn ATS & CRM
Candidate or Placement
lossyIn ATS contexts, active employee records may be represented as Candidates (for internal mobility or alumni rehiring) or as Placements (for current placements). We map each Unicorn ATS employee record to the appropriate Bullhorn object based on employment status. Employee-specific fields (department, manager, start date, compensation) transfer to Placement or Candidate custom fields as appropriate.
Unicorn ATS
Interview and Schedule
Bullhorn ATS & CRM
Event (with EventRelation)
1:1Interview records in Unicorn ATS (scheduled date and time, interviewer assignments, interview type, outcome notes) map to Bullhorn Event records. Bullhorn EventRelation records link the interview to the Candidate, the JobOrder, and each interviewer (as User records). Event start and end times, location, and outcome transfer to the Bullhorn Event fields.
Unicorn ATS
Offer
Bullhorn ATS & CRM
Placement (Offer stage)
lossyOffer records (compensation details, start date, offer status, approval history) in Unicorn ATS map to Bullhorn Placement records in the Offer stage. Bullhorn ATS v1 represents Offer as a stage in the Job Reporting object with status C (Current) or A (Accepted). Approval routing logic is platform-specific and does not migrate; we document the offer approval workflow for the customer's Bullhorn admin to configure in Bullhorn's workflow settings.
Unicorn ATS
Activity Note
Bullhorn ATS & CRM
Note or Task
1:1Recruiter notes, call logs, and general activity history attached to candidates in Unicorn ATS often export as flat CSV with no candidate record linkage. We run a fuzzy-match process on candidate name, email, and application date to reattach orphaned activity history to the correct Bullhorn Candidate record before import. Notes migrate as Bullhorn Note records linked via ContentDocumentLink to the parent Candidate.
Unicorn ATS
Engagement: Email
Bullhorn ATS & CRM
EmailMessage + Task
1:1Email engagements attached to candidates in Unicorn ATS migrate to Bullhorn EmailMessage records linked to a Task. Bullhorn requires GDPR or CCPA Support to be enabled for email export; we verify this requirement with the customer during scoping. Inbound emails transfer only; outbound email migration depends on whether the source platform stored them in structured form. The Task record provides the activity timeline entry with WhoId pointing to the Candidate.
| Unicorn ATS | Bullhorn ATS & CRM | Compatibility | |
|---|---|---|---|
| Candidate | Candidate1:1 | Fully supported | |
| Company | ClientCorporation1:1 | Fully supported | |
| Job Requisition | JobOrder1:1 | Fully supported | |
| Pipeline Stage | Job Reporting (ATS v1) or ATS v2 stage fieldslossy | Fully supported | |
| Application | JobSubmission1:1 | Fully supported | |
| Placement | Placement1:1 | Fully supported | |
| Custom Fields | Custom Field or Custom Objectlossy | Mapping required | |
| Employee Record | Candidate or Placementlossy | Fully supported | |
| Interview and Schedule | Event (with EventRelation)1:1 | Fully supported | |
| Offer | Placement (Offer stage)lossy | Fully supported | |
| Activity Note | Note or Task1:1 | Fully supported | |
| Engagement: Email | EmailMessage + Task1: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.
Unicorn ATS gotchas
Activity logs export as flat CSV, losing record associations
Migration timeline scales non-linearly with data volume
Dirty data imported from source pollutes the destination
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 data export audit
We audit the Unicorn ATS instance across all record types (Candidates, Companies, Jobs, Pipeline Stages, Placements, Custom Fields, Activity Notes) and estimate record counts per object. We identify the export format available from Unicorn ATS for each object and flag any flat-CSV exports that lack candidate record linkage. We confirm the target Bullhorn edition (ATS, ATS Growth, or Enterprise) and verify the ATS version (v1 or v2) because stage tracking models differ. The discovery output is a written migration scope that includes a Bullhorn edition recommendation if custom object scope exceeds ATS edition limits.
Data cleaning and deduplication
We strongly recommend a data-cleaning phase of at least two weeks before migration day. We provide a deduplication report identifying duplicate candidate profiles (matched on name, email, and phone), flag records missing critical fields (required Bullhorn fields), and surface outdated job requisitions that should be archived rather than migrated. We also run the fuzzy-match re-association pass for activity log records exported as flat CSV. The customer reviews and approves the cleaning scope before migration begins.
Bullhorn schema design and custom object configuration
We design the destination Bullhorn schema before any data moves. This includes provisioning Custom Objects per entity (within the ATS edition limit of two per entity unless Enterprise is selected), mapping Unicorn ATS custom fields to typed Bullhorn custom fields, configuring Job Reporting for ATS v1 or stage fields for ATS v2, and setting up Page Layouts per entity. Custom Object Setup Sheets are submitted to Bullhorn Support via ticket for schema registration. Bullhorn's support team validates the JSON schema and notifies us when the configuration is active before data import begins.
Sandbox migration and reconciliation
We run a full migration into a Bullhorn sandbox environment using production-like data volume. The customer's Bullhorn admin reconciles record counts (Candidates in, ClientCorporations in, JobOrders in, Placements in, Activity records in), spot-checks 25-50 random records against the Unicorn ATS source, and signs off the schema and mapping before production migration begins. Any mapping corrections and custom object adjustments happen in the sandbox, not in production. Bullhorn Launch includes sandbox access for configuration testing.
Production migration in dependency order
We run production migration in record-dependency order: ClientCorporation (employer records, required for JobOrder), JobOrder (requisitions), Candidate (applicants), JobSubmission (applications linking Candidate to JobOrder), Placement (filled positions), Activity history (Notes, Tasks, Events via Bulk API), Custom Objects (last because they may have lookups to standard objects). Saved searches from the source Unicorn ATS instance are inventoried and documented; Bullhorn's New Candidate List migrates saved searches automatically and Bullhorn Support can re-trigger migration if any are missed. Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and automation rebuild handoff
We freeze Unicorn ATS 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 inventory of every active automation, pipeline rule, and workflow configuration in Unicorn ATS that requires rebuild in Bullhorn. We support a one-week hypercare window where we resolve any reconciliation issues raised by the customer's Bullhorn team. We do not rebuild workflows, sequences, or automation rules inside the migration scope; those are documented for the customer's Bullhorn admin to configure or for a separate Bullhorn implementation engagement.
Platform deep dives
Unicorn ATS
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 Unicorn ATS 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
Unicorn ATS: Not publicly documented..
Data volume sensitivity
Unicorn ATS 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 Unicorn ATS to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.
Walk through your Unicorn ATS 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 Unicorn ATS
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.