HRMS migration
Field-level mapping, validation, and rollback between LiveHire and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.
LiveHire
Source
Bullhorn ATS & CRM
Destination
Compatibility
10 of 12
objects map 1:1 between LiveHire and Bullhorn ATS & CRM.
Complexity
BStandard
Timeline
4-6 weeks
Overview
LiveHire organizes talent as unified Candidate records that span permanent and contingent lifecycles within Talent Pools, while Bullhorn uses a more traditional ATS/CRM split across Candidate, ClientCorporation, JobOrder, and Placement entities with supplier records managed separately. Migrating from LiveHire to Bullhorn requires separating contingent worker records (which reference external VMS vendor IDs in LiveHire) from permanent candidate records during extraction to prevent ID collision in Bullhorn's data model. Talent Pools—a core LiveHire organizational unit for pre-qualified segments—do not export as structured data, so we preserve the current member list and flag pool names for recreation as Bullhorn Lists or tagging rules. Bullhorn's REST API handles standard entity imports, but custom objects and complex engagement history require Bullhorn Support pre-configuration. We do not migrate Workflows, Talent Community branding, integrations, or analytics dashboards; we deliver written inventories for 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 LiveHire 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.
LiveHire
Candidate
Bullhorn ATS & CRM
Candidate
1:1LiveHire Candidate records map 1:1 to Bullhorn Candidate records. The primary fields—firstName, lastName, email, phone, address, skills, employmentType (permanent or contingent), currentStatus, and availabilityDate—map directly. We separate permanent and contingent candidates during extraction because contingent records may carry external VMS supplier IDs that do not map to standard Bullhorn Candidate fields and require a custom field or note for storage in the destination system.
LiveHire
Talent Community Member
Bullhorn ATS & CRM
Candidate
1:1LiveHire Talent Community members who have expressed brand interest but are not active applicants migrate as Bullhorn Candidate records with a custom status field (talent_community__c) set to true. The original registration date and interest preferences migrate as custom fields to preserve the engagement history that drives proactive sourcing.
LiveHire
Job / Job Posting
Bullhorn ATS & CRM
JobOrder
1:1LiveHire Job records map to Bullhorn JobOrder. The fields title, description, location, employmentType (permanent/contingent), department, salary, and status migrate directly. Job templates used for recurring positions map as Bullhorn JobOrder custom fields. Active and archived job status translates to JobOrder isOpen boolean in Bullhorn.
LiveHire
Application
Bullhorn ATS & CRM
JobSubmission
1:1LiveHire Application records (the join between Candidate and Job) map to Bullhorn JobSubmission. We preserve applicationDate, source channel, current stage in the hiring pipeline, stage transition timestamps, and rejection reason where present. Application status history migrates as Bullhorn custom fields or notes attached to the JobSubmission.
LiveHire
Talent Pool
Bullhorn ATS & CRM
List
lossyLiveHire Talent Pools are recruiter-curated collections of candidates segmented by skills, roles, or availability. Pool membership does not export as structured criteria, only as a member list. We export the current candidate membership per pool and recreate them as Bullhorn Lists during migration. The customer recreates pool re-pooling rules manually in Bullhorn using saved searches or Bullhorn Automation rules post-migration.
LiveHire
Company / Client
Bullhorn ATS & CRM
ClientCorporation
1:1LiveHire company records attached to job postings and applications map to Bullhorn ClientCorporation. The fields companyName, address, industry, website, and primaryContact migrate directly. Bullhorn ClientCorporation is the parent of ClientContact records, establishing the client hierarchy before candidate placements are imported.
LiveHire
Note / Feedback
Bullhorn ATS & CRM
Note
1:1Recruiter and hiring manager notes attached to candidates and applications migrate to Bullhorn Note records. We link Note records to the corresponding Candidate via ContentDocumentLink. Interview scores, ratings, and internal commentary from LiveHire migrate as text content within the Note body or as Bullhorn custom fields on the Candidate record, depending on field type availability in the customer's Bullhorn edition.
LiveHire
Communication / Messaging
Bullhorn ATS & CRM
Note and Task
1:1LiveHire email, SMS, and in-platform message threads map to Bullhorn Note records (for message content) linked to the Candidate timeline, with a Task record created for each communication event to surface in the activity feed. 2-way text messaging threads preserve the conversation direction flag as a custom Task field.
LiveHire
Offer
Bullhorn ATS & CRM
Placement
lossyLiveHire Offer records (compensation, start date, acceptance status) map to Bullhorn Placement as a pre-placement record. Bullhorn Placement is the canonical record for a hired candidate; we create the Placement record during migration with the offer details and mark it as pending or confirmed depending on the original offer status. Accepted offers become confirmed Placements with start date and compensation.
LiveHire
Document / Attachment
Bullhorn ATS & CRM
ContentDocument
1:1Resumes, cover letters, and portfolio files attached to LiveHire candidate profiles migrate as Bullhorn ContentDocument records linked to the Candidate via ContentDocumentLink. We map the original file association (resume, cover letter, portfolio) to a custom ContentDocument Type field during migration. Binary files are transferred separately from structured records.
LiveHire
Custom Field
Bullhorn ATS & CRM
Custom Field or Custom Object
1:1LiveHire tenant-specific custom fields on Candidates, Jobs, and Applications map to Bullhorn custom fields on the corresponding entity. Bullhorn standard entities support up to 20 custom fields depending on field type (text, dropdown, checkbox, etc.). Fields exceeding the standard custom field limit on Bullhorn ATS (2 custom objects per entity on ATS tier, 10 on Enterprise) require Bullhorn Support pre-configuration as Custom Objects. We flag any custom field that exceeds Bullhorn's standard limits during scoping.
LiveHire
Compliance Record
Bullhorn ATS & CRM
Custom Object or Note
1:1LiveHire compliance records (background check results, right-to-work documentation, approval signatures) migrate to Bullhorn as a Custom Object attached to the Candidate record if the Bullhorn edition supports Custom Objects. If not, compliance documents migrate as ContentDocument records with a custom compliance flag, and the compliance summary migrates as a Note. Sensitive compliance data handling follows the customer's specified data classification during migration.
| LiveHire | Bullhorn ATS & CRM | Compatibility | |
|---|---|---|---|
| Candidate | Candidate1:1 | Fully supported | |
| Talent Community Member | Candidate1:1 | Fully supported | |
| Job / Job Posting | JobOrder1:1 | Fully supported | |
| Application | JobSubmission1:1 | Fully supported | |
| Talent Pool | Listlossy | Fully supported | |
| Company / Client | ClientCorporation1:1 | Fully supported | |
| Note / Feedback | Note1:1 | Fully supported | |
| Communication / Messaging | Note and Task1:1 | Fully supported | |
| Offer | Placementlossy | Fully supported | |
| Document / Attachment | ContentDocument1:1 | Fully supported | |
| Custom Field | Custom Field or Custom Object1:1 | Fully supported | |
| Compliance Record | Custom Object or Note1: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.
LiveHire gotchas
LiveHire-to-Humanforce rebrand creates data continuity risk
Premium-only pricing hides volume and tier limits
Talent Pool segmentation logic requires manual reconstruction
Contingent worker and contractor records have distinct data paths
Branded career site content and Talent Community branding are not portable
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 contract verification
We audit the LiveHire tenant across record volumes (Candidates, Talent Community members, Jobs, Applications, Notes, Offers), custom field schema, Talent Pool names and member counts, and contingent worker volume. We verify the customer's current legal entity (LiveHire or Humanforce Talent Ltd.) and subscription terms against their contract documentation to avoid authentication failures during data extraction. We also identify the Bullhorn edition (Starter, Core, or Pro) from the customer's new Bullhorn account and map any Bullhorn edition constraints against the custom field count to identify Custom Object requirements that need Bullhorn Support pre-configuration.
Contingent worker separation and VMS ID tagging
We extract permanent and contingent candidate records into separate export batches based on LiveHire's employmentType field. Contingent records receive a custom field vms_supplier_id__c during transformation to store the external vendor reference, which has no standard Bullhorn equivalent. Permanent candidates map directly to Bullhorn Candidate records. This separation prevents ID collision in Bullhorn and ensures that placement workflows remain accurate for each worker type.
Schema preparation and Bullhorn custom object request
We design the destination Bullhorn schema in advance of import, including custom fields on Candidate (mapped from LiveHire custom properties), JobOrder (mapped from LiveHire job custom fields), and ClientCorporation. For any custom fields exceeding Bullhorn's standard field limits, we submit a Custom Object Setup Sheet to Bullhorn Support and wait for Bullhorn to create the custom objects before beginning data load. This step is a dependency gate; Bullhorn Support pre-configuration cannot be bypassed.
Sandbox migration and reconciliation
We run a full migration into a Bullhorn Sandbox (or a staging environment) using the complete export. The customer's Bullhorn admin reconciles record counts across Candidate, ClientCorporation, JobOrder, JobSubmission, and Placement, spot-checks 25-50 records against the LiveHire source, and validates that Talent Pool member lists are correctly represented as Bullhorn Lists. Any field mapping corrections, custom field creation requests, or data quality issues (duplicate emails, missing required fields) are resolved in this phase before production migration begins.
Production migration in dependency order
We run production migration in record-dependency order: ClientCorporation records (first, establishing the client hierarchy), Candidate records (permanent and contingent separately), JobOrder records, JobSubmission records (linking Candidate to JobOrder), Placement records (for accepted offers), Notes and Communications (linked to Candidates via ContentDocumentLink), and Documents (as ContentDocument with ContentDocumentLink to the parent record). Each phase emits a row-count reconciliation report before the next phase begins. Bullhorn REST API batch limits are respected with chunking and retry logic on 429 responses.
Cutover, validation, and handoff documentation
We freeze LiveHire writes during cutover, run a final delta migration of records modified during the migration window, then enable Bullhorn as the system of record. We deliver the Integration Inventory (listing every active LiveHire integration for re-establishment in Bullhorn), the Talent Pool Member Inventory (with pool names and member lists), and the Workflow and Pipeline Inventory (documenting LiveHire hiring pipeline stages for manual recreation in Bullhorn). We support a one-week hypercare window for reconciliation issues. Bullhorn Automation rules, career site branding, and integration credential re-establishment are outside standard migration scope.
Platform deep dives
LiveHire
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 LiveHire 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
LiveHire: Not publicly documented..
Data volume sensitivity
LiveHire 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 LiveHire to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.
Walk through your LiveHire 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 LiveHire
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.