HRMS migration
Field-level mapping, validation, and rollback between Unatrix and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.
Unatrix
Source
Bullhorn ATS & CRM
Destination
Compatibility
9 of 12
objects map 1:1 between Unatrix and Bullhorn ATS & CRM.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Unatrix to Bullhorn is a migration from a narrow-vertical ATS/CRM built for engineering staffing into the industry-standard staffing platform serving over 10,000 agencies globally. Unatrix combines Candidate, Client, Job, and Project records in a unified schema with a tenant-specific qualification taxonomy; Bullhorn separates these into Candidate, ClientCorporation, JobOrder, and a configurable custom object or Opportunity structure. The primary migration constraint is that Unatrix provides no documented bulk export endpoint, so we negotiate a manual data export with the Unatrix team during scoping before beginning migration work. We normalize the qualification taxonomy discovered during discovery into Bullhorn Skills and map Unatrix Projects to a Bullhorn custom object or Opportunity with structured fields. We do not migrate KPI dashboards, report configurations, workflows, or automations; we deliver a written inventory of these for the customer's admin to rebuild in Bullhorn. Bullhorn editions determine custom object capacity: ATS Growth has none, Bullhorn ATS supports 2 custom objects with 55 fields each, and Front Office Growth and Enterprise support 10 custom objects with 55 fields each.
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 Unatrix 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.
Unatrix
Candidate
Bullhorn ATS & CRM
Candidate
1:1Unatrix Candidates map 1:1 to Bullhorn Candidate records. We preserve standard fields (name, email, phone, address, employment history) and extract custom properties defined on the Candidate object during discovery. CV documents and attachments associated with Candidates migrate as ContentDocument records linked via ContentDocumentLink to the parent Candidate. The migration resolves the Bullhorn Candidate deduplication rule (email as primary key) before insert to avoid duplicate Candidates in high-volume pipelines.
Unatrix
Client
Bullhorn ATS & CRM
ClientCorporation
1:1Unatrix Client records map to Bullhorn ClientCorporation (the Bullhorn term for company-level CRM records). We preserve client name, industry, address, revenue range, and any custom fields. Client status (active, inactive, prospect) maps to the corresponding Bullhorn status field. The Client-to-Job relationship (which Unatrix links directly) resolves in Bullhorn through JobOrder.clientCorporationId linking to the ClientCorporation record.
Unatrix
Job
Bullhorn ATS & CRM
JobOrder
1:1Unatrix Job records map to Bullhorn JobOrder. Job title, description, requirements, status (open, filled, closed), and salary/rate fields migrate directly. Required qualifications from the Unatrix Job are extracted as a list and mapped to Bullhorn Skills associated with the JobOrder via the JobOrderSkill entity. Job publish date and expiration date migrate as is.
Unatrix
Qualification
Bullhorn ATS & CRM
Skill
lossyUnatrix Qualifications are extracted from CVs using a tenant-specific taxonomy that varies between organizations. We discover the full taxonomy during the scoping phase, normalize skill names (removing duplicates, standardizing casing, resolving synonyms), and map the normalized set to Bullhorn Skills. Each Skill record is created once in Bullhorn and then associated with Candidates (via CandidateSkill) and JobOrders (via JobOrderSkill) with a proficiency level where available in Unatrix. This is the highest-scope transformation in the migration.
Unatrix
Project
Bullhorn ATS & CRM
Custom Object or Opportunity
1:manyUnatrix Projects represent staffing engagements linking Candidates to Jobs under a Client, with placement performance metadata. Bullhorn has no native Project object. We map Projects to either a Bullhorn custom object (Front Office Growth/Enterprise) or an Opportunity with structured custom fields (JobOrder title, ClientCorporation link, placement status, and key metrics). The customer selects the approach during scoping based on their Bullhorn edition. Engagement metadata (project status, revenue, milestones) is preserved as custom fields on the destination object.
Unatrix
Interview / Event
Bullhorn ATS & CRM
Event
1:1Unatrix interview schedules and team events (with date ranges and assigned team members) map to Bullhorn Event records. We extract the event title, start and end datetime, assigned recruiter (mapped to Bullhorn User by email), and candidate association (mapped via a Candidate lookup). Bullhorn EventRelation records are created to link attendees (candidate and internal users) to the event.
Unatrix
User / Team Member
Bullhorn ATS & CRM
User
1:1Unatrix user accounts (recruiters, sales managers, administrators with role-based permissions) map to Bullhorn User records. We resolve by email match and preserve role assignment. Active versus inactive status migrates as-is. Bullhorn User provisioning (deprovisioning is often ticket-requiring according to user reviews) should be coordinated with the Bullhorn admin before migration to avoid permission gaps on day one.
Unatrix
Tag / Custom Field
Bullhorn ATS & CRM
Custom Field or Custom Object
lossyUnatrix custom fields on Candidate and Job objects map to Bullhorn custom fields on the corresponding entities. Bullhorn enforces field type limits per edit type (e.g., up to 20 checkboxes, dropdowns, or text fields). If the migration discovers custom field counts that exceed Bullhorn's per-entity limits, we escalate to a custom object design. Custom field definitions are documented during discovery and deployed to the Bullhorn Sandbox before production migration.
Unatrix
KPI / Report
Bullhorn ATS & CRM
None
1:1Unatrix KPI dashboards and report configurations are generated from raw data and do not export as self-contained objects. We do not migrate these. We extract the underlying raw data records (placement counts, cost-per-hire, time-per-hire) so that Bullhorn's reporting and analytics capabilities can reproduce the metrics from migrated data. Bullhorn's built-in reporting and Pulse Relationship Intelligence (Pro/Enterprise tiers) serve as the replacement reporting layer.
Unatrix
Document / Attachment
Bullhorn ATS & CRM
ContentDocument
1:1CVs and attachments stored against Candidate records in Unatrix are extracted as file references via the Unatrix REST API where accessible. File names, content types, and association metadata are preserved. Binary file content is migrated separately from record data and linked via Bullhorn ContentDocument and ContentDocumentLink. Bullhorn's document storage limits vary by edition; we flag any attachment volume that approaches the storage ceiling.
Unatrix
Placement
Bullhorn ATS & CRM
Placement
1:1Unatrix does not have a separate Placement object but tracks placements through the Project-Candidate-Job relationship. We reconstruct Placement records as Bullhorn Placement entities (a standard Bullhorn object linking Candidate to JobOrder with employment terms, start date, and billing/pay rate fields). Placement history is derived from Project records with status=completed and candidate-job association metadata.
Unatrix
Engagement (Call, Email, Meeting, Note)
Bullhorn ATS & CRM
Task, Event, EmailMessage
1:1Unatrix engagement records (if accessible via REST API) migrate to Bullhorn Task (calls, notes, generic tasks), Event (meetings), and EmailMessage (emails) objects. We resolve the WhoId (Candidate) and WhatId (JobOrder, Opportunity, or ClientCorporation) at migration time. Bullhorn's engagement timeline organizes these as Activity records. Bullhorn's Activity Goals and Sales Quotas (Enterprise tier) serve as the replacement engagement tracking layer.
| Unatrix | Bullhorn ATS & CRM | Compatibility | |
|---|---|---|---|
| Candidate | Candidate1:1 | Fully supported | |
| Client | ClientCorporation1:1 | Fully supported | |
| Job | JobOrder1:1 | Fully supported | |
| Qualification | Skilllossy | Fully supported | |
| Project | Custom Object or Opportunity1:many | Fully supported | |
| Interview / Event | Event1:1 | Fully supported | |
| User / Team Member | User1:1 | Fully supported | |
| Tag / Custom Field | Custom Field or Custom Objectlossy | Fully supported | |
| KPI / Report | None1:1 | Fully supported | |
| Document / Attachment | ContentDocument1:1 | Fully supported | |
| Placement | Placement1:1 | Fully supported | |
| Engagement (Call, Email, Meeting, Note) | Task, Event, EmailMessage1: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.
Unatrix gotchas
No documented bulk export API endpoint
Qualification taxonomy is tenant-specific
Project object is not a standard CRM concept
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
Export negotiation and discovery
We open a scoping engagement with the Unatrix administrator to negotiate a manual data export. Because Unatrix has no documented bulk export endpoint, we work with Unatrix support to extract Candidates (with qualifications and custom fields), Clients, Jobs, Projects, engagement history, and Users in a structured format. We simultaneously catalog the full qualification taxonomy, identify all custom field schemas on Candidate and Job objects, and map the Project object structure to the destination Bullhorn model (custom object or Opportunity). The discovery output is a written migration scope document covering record counts, taxonomy size, and custom field inventory.
Bullhorn edition assessment and schema design
We assess the customer's target Bullhorn edition against the migration requirements. If the Project object requires more than 2 custom objects or the qualification taxonomy exceeds what fits on standard Candidate fields, we recommend Front Office Growth or Enterprise. We design the destination schema in a Bullhorn Sandbox: we pre-create custom objects and custom fields, configure Skill records from the normalized taxonomy, set up JobOrder status values, and define the Project-to-Custom-Object or Project-to-Opportunity mapping rule. Page layouts and field-level security are configured per the customer's role structure.
Sandbox migration and qualification normalization
We run a full migration into the Bullhorn Sandbox using the exported Unatrix data. Candidates are loaded with normalized Skills; Projects are loaded to the chosen destination model; Clients are linked to Jobs via ClientCorporationId. We generate a reconciliation report covering record counts, null field percentages, and duplicate detection. The customer reviews a random sample of 30-50 records and signs off before production migration begins. Any taxonomy normalization errors, custom field mapping corrections, or schema adjustments are applied to the Sandbox and re-tested.
User reconciliation and provisioning
We extract every distinct Unatrix Owner referenced on Candidate, Client, Job, and Project records and match by email against the Bullhorn destination org's User table. Any Owner without a matching Bullhorn User is placed in a reconciliation queue. The Bullhorn admin provisions missing Users (or marks the Unatrix Owner as inactive if the user no longer exists) before record migration begins. This step is a prerequisite for all subsequent imports because OwnerId is a required reference on most Bullhorn standard objects.
Production migration in dependency order
We run production migration in record dependency order: Users (validated), ClientCorporations (from Unatrix Clients), JobOrders (from Unatrix Jobs, linked to ClientCorporationId), Skill records (normalized taxonomy), Candidates (with Skills linked via CandidateSkill), Projects (mapped to custom object or Opportunity with required lookups resolved), Placements (reconstructed from Project engagement data), and engagement history (Tasks, Events, EmailMessages via Bullhorn REST API). Each phase emits a row-count reconciliation report before the next phase begins. Any records that fail validation rules are logged to an exception queue for the Bullhorn admin to resolve.
Cutover, delta sync, and workflow handoff
We freeze Unatrix writes during cutover, run a final delta migration of any records modified during the migration window, then mark Bullhorn as the system of record. We deliver a written inventory of Unatrix KPI dashboards, report configurations, and workflows that require rebuild in Bullhorn (Bullhorn's automation features and reporting differ from Unatrix's native KPI engine). We support a one-week hypercare window for reconciliation issues. Bullhorn workflows, sequences, automations, and report rebuilding are outside standard migration scope and are handed off to the customer's Bullhorn admin or a Bullhorn implementation partner.
Platform deep dives
Unatrix
Source
Strengths
Weaknesses
Bullhorn ATS & CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard HRMS migration. All 7 core objects map 1:1 between Unatrix and Bullhorn ATS & CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Unatrix and Bullhorn ATS & CRM.
Object compatibility
All 7 core objects map 1:1 between Unatrix 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
Unatrix: Not publicly documented.
Data volume sensitivity
Unatrix 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 Unatrix to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.
Walk through your Unatrix 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 Unatrix
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.