HRMS migration
Field-level mapping, validation, and rollback between Built and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.
Built
Source
Bullhorn ATS & CRM
Destination
Compatibility
11 of 12
objects map 1:1 between Built and Bullhorn ATS & CRM.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Built and Bullhorn are architecturally different platforms with no direct object equivalence. Built is an org chart automation system that maintains Employees, Departments, Locations, and manager relationships synced from ADP. Bullhorn is a staffing ATS and CRM that manages Candidates, Clients, JobOrders, and Placements. When organizations migrate from Built to Bullhorn, the primary migration concern is how to represent employee data inside an ATS schema. We map Built Employees to Bullhorn Candidate records, with job title, employment type, start date, and department stored as Bullhorn custom fields. Manager relationships require a two-pass import: first load all Candidate records, then resolve manager references using the destination-assigned Bullhorn Candidate IDs. Bullhorn's custom object architecture (customObject1 through customObject10) must be set up by Bullhorn Support before migration begins, which we coordinate during the scoping phase. Org chart visualizations, ADP sync configurations, and any Built custom fields that do not map cleanly to Bullhorn custom fields are flagged for explicit admin decision during scoping. We do not migrate workflows, automations, or visual org chart renders as these are platform-specific constructs with no Bullhorn equivalent.
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 Built 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.
Built
Employee
Bullhorn ATS & CRM
Candidate
1:1Built Employee records map to Bullhorn Candidate records. Each Employee's first name, last name, and email map directly to Bullhorn Candidate fields. The Built employee ID is preserved in a Bullhorn custom text field for cross-reference. Start date from Built maps to a custom date field on Candidate. Employment type (full-time, part-time, contractor, temporary) maps to a Bullhorn custom picklist field. Job title from Built maps to a custom text field on Candidate because Bullhorn does not have a native job title field on the Candidate object.
Built
Employee
Bullhorn ATS & CRM
ClientContact
1:1If the migration includes former employees or contacts stored in Built who should appear as client contacts in Bullhorn (for organizations with internal recruiting functions), we map to ClientContact instead. The mapping logic follows the same name, email, and custom field structure but targets the Bullhorn ClientCorporation-linked contact record type. The customer specifies during scoping which Built employee records should map to Candidate versus ClientContact.
Built
Department
Bullhorn ATS & CRM
Custom Field on Candidate (customObject1)
1:1Built Department records represent organizational units. Bullhorn does not have a native Department concept on Candidate. We create a custom object or custom picklist field in Bullhorn to represent the department name. Department heads are resolved by matching the manager assignment on the Built Employee to a Bullhorn Candidate and storing that as a custom reference field. Bullhorn Support must set up any custom object before migration begins.
Built
Location
Bullhorn ATS & CRM
Custom Field on Candidate (customObject2)
1:1Built Location records represent office sites or remote-work designations. Bullhorn Candidate has a Address fields but not a structured Location field. We map the primary location name to a custom text field on Candidate. For organizations with multiple office-based versus remote employees, we also create a custom picklist field for work arrangement type (onsite, remote, hybrid) populated from the Built Location type. Field naming is agreed with the customer during scoping.
Built
Manager Assignment
Bullhorn ATS & CRM
Custom Reference Field on Candidate
1:1Built stores the reporting relationship as an Employee-to-Employee link rather than a standalone field. We perform a two-pass import: first load all Candidate base records from Built Employees, then resolve manager references by matching the manager's Built employee ID against the destination Bullhorn Candidate IDs. The resolved manager is stored in a custom text field holding the Bullhorn Candidate ID of the manager. Circular manager assignments are detected and flagged before the second pass runs. Bullhorn Support can optionally configure a custom lookup relationship if the org has customObject schema available.
Built
Job Title
Bullhorn ATS & CRM
Custom Text Field on Candidate
1:1Built stores job title as a field on the Employee record. Bullhorn Candidate does not have a native job title field. We map job title to a custom text field on Candidate with a 100-character limit. If the customer's job titles exceed this, we truncate with a suffix flag and store the full title in a separate custom long-text field.
Built
Employment Type
Bullhorn ATS & CRM
Custom Picklist Field on Candidate
1:1Built tracks full-time, part-time, contractor, and temporary employment types. Bullhorn has a native isW2 field for W-2 contractor status but no generalized employment type field. We create a custom picklist field with values matching the Built enumeration: Full-Time, Part-Time, Contractor, Temporary, and Other. The customer reviews the picklist during scoping to confirm values align with their specific Built data.
Built
Custom Fields (Employee)
Bullhorn ATS & CRM
Custom Fields on Candidate (customObject3-10)
1:1Built organizations can define custom properties on Employee records. We extract the full custom field schema via the Built API at migration start, including data type and picklist values. Each custom field is mapped to a Bullhorn custom field of equivalent type: text fields to Bullhorn text, picklists to Bullhorn picklist, dates to Bullhorn date. Custom objects in Bullhorn (customObject3 through customObject10) require Bullhorn Support to configure before migration; we coordinate this during the scoping phase and confirm schema readiness before data import begins.
Built
Attachments (Employee Documents)
Bullhorn ATS & CRM
Bullhorn Document Attachments on Candidate
lossyBuilt stores documents and uploaded files against Employee profiles, but these are not included in the standard API export. We request a separate file-level export from Built support. Extracted files are organized into a folder structure keyed by Built employee ID, then re-linked manually in Bullhorn as Candidate document attachments. This requires Bullhorn's document attachment workflow or a file migration tool. We do not automate the file re-link step inside standard migration scope; it is handled as a parallel file batch with documented linking instructions.
Built
Org Chart Visualizations
Bullhorn ATS & CRM
Not Migrated
1:1The visual org chart in Built is a rendering of underlying employee hierarchy data, not a separate data object. Bullhorn has no native org chart capability. We extract the underlying Employee and relationship data (the structure that powers the org chart) and migrate that as Candidate records with manager references. The visual render does not migrate. If the customer requires an org chart in Bullhorn, they would need a third-party visualization tool or a custom build post-migration.
Built
ADP Sync Configuration
Bullhorn ATS & CRM
Not Migrated
1:1Built's ADP integration configuration is specific to Built's import mechanism from ADP payroll data. Bullhorn does not use ADP sync in the same way; Bullhorn connects to ADP through different integration paths (ADP Marketplace or third-party connectors) if the organization uses ADP for payroll. The ADP sync configuration in Built has no Bullhorn equivalent. We document the current ADP field mappings during scoping so the customer's Bullhorn admin can configure the ADP connection separately post-migration if applicable.
Built
Department Head
Bullhorn ATS & CRM
Custom Field + Manager Reference
1:1Built Department records may include a department head assignment. We map the department head to a custom text field on the Bullhorn custom object representing the department (or as a reference field on the department custom object). The value stored is the Bullhorn Candidate ID of the resolved employee who serves as department head. This field is populated during the second-pass manager resolution phase after all Candidate records exist in Bullhorn.
| Built | Bullhorn ATS & CRM | Compatibility | |
|---|---|---|---|
| Employee | Candidate1:1 | Fully supported | |
| Employee | ClientContact1:1 | Fully supported | |
| Department | Custom Field on Candidate (customObject1)1:1 | Fully supported | |
| Location | Custom Field on Candidate (customObject2)1:1 | Fully supported | |
| Manager Assignment | Custom Reference Field on Candidate1:1 | Fully supported | |
| Job Title | Custom Text Field on Candidate1:1 | Fully supported | |
| Employment Type | Custom Picklist Field on Candidate1:1 | Mapping required | |
| Custom Fields (Employee) | Custom Fields on Candidate (customObject3-10)1:1 | Fully supported | |
| Attachments (Employee Documents) | Bullhorn Document Attachments on Candidatelossy | Fully supported | |
| Org Chart Visualizations | Not Migrated1:1 | Not supported | |
| ADP Sync Configuration | Not Migrated1:1 | Fully supported | |
| Department Head | Custom Field + Manager Reference1: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.
Built gotchas
ADP sync field names differ between source and destination
Manager relationships require two-pass import sequencing
Attachments and files are not included in standard API exports
Custom field schema is per-organization and not self-documenting
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 Bullhorn custom object coordination
We audit the source Built portal for total employee records, department count, location count, custom field definitions (via API schema extraction), manager relationship depth, attachment volume, and ADP sync configuration. Simultaneously, we open a Bullhorn Support ticket to request custom object setup (customObject1 through customObject10) for Candidate and ClientContact entities based on the discovered schema. We do not begin data migration until Bullhorn confirms the custom objects are live. The discovery output includes a written migration scope document with the complete field mapping matrix.
Schema design and field mapping agreement
We design the Bullhorn schema based on the custom object setup confirmed by Bullhorn Support. This includes creating custom text fields for job title, custom picklist fields for employment type and department, custom date fields for start date, and custom reference fields for manager relationships. We deliver a field mapping matrix showing each Built field, the Bullhorn target field or custom object, data type, transformation logic, and any truncation or picklist value mapping. The customer's Bullhorn admin reviews and approves the mapping before migration begins.
Staging migration and reconciliation
We run a full migration into the customer's Bullhorn staging or sandbox environment (or a test company within the production org if no sandbox is available) using a subset of records representing at least 10 percent of total volume. The customer's HR or operations lead reconciles record counts, spot-checks 25-50 random Candidate records against the Built source, and verifies that job titles, employment types, start dates, departments, and manager references are populated correctly. Any mapping corrections happen in this phase. We do not proceed to production migration until the staging results are signed off.
Manager relationship resolution preparation
Before the first-pass import, we extract all manager assignments from Built and build a lookup table of Built employee ID to manager Built employee ID. We detect circular references (Employee A reports to B, B reports to A) and flag any for the customer to resolve before migration. The two-pass import plan is confirmed: first pass loads all Candidate base records, second pass resolves and writes manager references using the Bullhorn-assigned Candidate IDs from the first pass.
Production migration in dependency order
We run production migration in record-dependency order: first pass loads all Candidate base records from Built Employees (with custom fields populated from the mapping matrix), second pass resolves and writes manager references. Each pass emits a row-count reconciliation report. Bullhorn custom object records are loaded after the base Candidate records exist so that all lookups are satisfied. If attachments are in scope, we run the file export and re-link batch in parallel after base records are confirmed in Bullhorn.
Cutover, validation, and documentation handoff
We freeze Built 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 migration summary documenting the complete field mapping, any Built fields that could not be migrated with explanations, a list of custom object fields that Bullhorn Support configured, and a reconciliation report showing source counts versus destination counts for each object. We do not rebuild Built workflows or org chart automations as Bullhorn does not have an equivalent construct; we document any ADP sync field mappings that the customer's Bullhorn admin can use to configure a post-migration ADP integration if applicable.
Platform deep dives
Built
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 Built 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
Built: Not publicly documented.
Data volume sensitivity
Built 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 Built to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.
Walk through your Built 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 Built
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.