HRMS migration
Field-level mapping, validation, and rollback between Loxo and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.
Loxo
Source
Bullhorn ATS & CRM
Destination
Compatibility
10 of 14
objects map 1:1 between Loxo and Bullhorn ATS & CRM.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Loxo to Bullhorn is a structural migration for staffing agencies that need deeper VMS and MSP integration, longer market track record, and a more granular placement-to-billing workflow. Loxo stores people as unified Candidates; Bullhorn splits people into Candidate records (job-seekers) and ClientContact records (client-side contacts), requiring a schema decision upfront. We extract the full pipeline stage list from Loxo's customizable Deal model, apply a customer-confirmed mapping to Bullhorn's Opportunity stage values, and preserve placement compensation and start dates in Bullhorn's Placement object. Loxo Outreach sequences and automation do not migrate; we deliver a written inventory of active campaigns and recommended Bullhorn equivalent configuration. The Bullhorn Launch program provides a self-guided implementation path included in subscription; data imports above 15,000 records require Bullhorn professional services coordination.
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 Loxo 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.
Loxo
Candidate
Bullhorn ATS & CRM
Candidate and ClientContact (split required)
1:manyLoxo Candidates unify job-seekers and client-side contacts under one object with a type property distinguishing them. Bullhorn splits these into Candidate (job-seekers with skills, resume, experience) and ClientContact (client-side people with company association). We compute the split at migration time using Loxo's candidate_type property or tagging logic, create both Bullhorn records, and link them with a custom field loxo_original_id__c on each for cross-reference audit.
Loxo
Contact (client-side)
Bullhorn ATS & CRM
ClientContact
1:1Loxo client contacts map to Bullhorn ClientContact with company linked to ClientCorporation. We preserve phone, email, title, and custom properties. Address data migrates to Bullhorn's address compound field structure. Any Loxo contact tags map to Bullhorn ClientContact categories or a custom multi-select picklist.
Loxo
Client Company
Bullhorn ATS & CRM
ClientCorporation
1:1Loxo Client Companies map to Bullhorn ClientCorporation with the company name as the dedupe key. Parent-child hierarchy migrates via the parentCompany relationship. Billing address, industry, and revenue range map to Bullhorn standard fields; custom properties migrate to Bullhorn custom fields if the edition supports them.
Loxo
Job
Bullhorn ATS & CRM
JobOrder
1:1Loxo Jobs map to Bullhorn JobOrder with title, description, requirements, and status preserved. Custom job fields map to Bullhorn custom fields on JobOrder. The job's assigned owner migrates via email lookup to Bullhorn User. Published job links and career portal URLs are preserved as text fields for redirect configuration after cutover.
Loxo
Deal
Bullhorn ATS & CRM
Opportunity
1:1Loxo Deals map to Bullhorn Opportunity. The Loxo pipeline becomes a Bullhorn Record Type with a corresponding Sales Process that defines the stage values. Closed-Lost and Closed-Won reasons from Loxo custom properties become Bullhorn Opportunity LossReason fields. We validate that the mapped Bullhorn Sales Process has the required stage values before migration.
Loxo
Pipeline Stage
Bullhorn ATS & CRM
Opportunity Stage (Sales Process)
lossyLoxo's customizable pipeline stages are org-specific and stored per Deal. We extract the full stage list from the Loxo API during scoping, present it to the customer for confirmation, and map each stage to a Bullhorn Opportunity StageName. Bullhorn's default Sales Process is extended with the customer-confirmed stage list. If multiple Loxo pipelines exist, each becomes a Bullhorn Record Type with its own Sales Process.
Loxo
Placement
Bullhorn ATS & CRM
Placement
1:1Loxo Placements record placed candidates against a Job and Deal, including start date, compensation, and status. Bullhorn has a native Placement object with fields for candidate (Candidate lookup), job (JobOrder lookup), client corporation (ClientCorporation lookup), start date, end date, pay rate, bill rate, and status. We map Loxo placement compensation details to Bullhorn's pay rate and bill rate fields, preserving the linked JobOrder and the placed Candidate record.
Loxo
Custom Fields (Candidates, Contacts, Jobs, Deals)
Bullhorn ATS & CRM
Custom Fields and Custom Objects
lossyLoxo custom fields on Candidates, Contacts, Jobs, and Deals map to Bullhorn custom fields. Bullhorn ATS edition supports 2 custom objects; Growth and Enterprise support 10 custom objects with 55 fields each. We pre-coordinate the Bullhorn Support ticket for custom object creation during scoping so the schema is ready before migration. Custom field types (text, picklist, date, number) map to Bullhorn field types with edit types confirmed during scoping.
Loxo
Activities: Emails, Calls, Texts, Notes
Bullhorn ATS & CRM
Task, Event, Note
1:1Loxo engagement history (email threads, call logs, SMS, and notes) migrates to Bullhorn Task and Event records. Call disposition and duration map to Bullhorn Task fields. Emails attach to the activity timeline via Task with the body preserved. We scope engagement history to the most recent 12-24 months per Loxo's documented recommendation to reduce fragmented thread import. Bullhorn's Activity DateTime ordering is preserved from the original Loxo timestamps.
Loxo
Attachments: Resumes, Documents
Bullhorn ATS & CRM
Candidate Document and ContentDocument
1:1Binary attachments stored per Loxo record (resumes, cover letters, client agreements) are extracted from the API as file URLs and re-uploaded to Bullhorn. Resumes attach to Bullhorn Candidate records via the document management system. Large file counts may require chunked download/upload with hash verification to confirm fidelity. We flag any attachment that exceeds Bullhorn's file size limit for manual handoff.
Loxo
Tags and Labels
Bullhorn ATS & CRM
Categories or Custom Picklist
lossyLoxo tags on Candidates, Contacts, and Jobs migrate to Bullhorn category associations. Bullhorn uses a category/tagging system on records that we populate during import. If the customer uses a tag strategy for segmentation, we recommend mapping to Bullhorn custom picklist fields for searchability rather than notes-only tags.
Loxo
User and Owner Assignments
Bullhorn ATS & CRM
User
1:1Every Loxo record has an assigned Owner linked by user ID and email. We resolve Loxo owner assignments to Bullhorn User records by email match. Any Loxo owner without a matching Bullhorn User goes to a reconciliation queue for the customer's admin to provision before record import resumes. Active versus inactive status is preserved from the Loxo owner record.
Loxo
Outreach Campaigns (Loxo Outreach)
Bullhorn ATS & CRM
Not migrated (inventory delivered)
1:1Loxo Outreach sequences, email cadence rules, SMS steps, and auto follow-up triggers are not exposed through the Loxo public API and cannot be migrated as configuration. We preserve the most recent outreach status as Candidate custom properties (last campaign name, last step reached, last outreach date) so the destination Bullhorn team knows where each candidate sits without rebuilding from scratch. We deliver a written inventory of all active Loxo Outreach campaigns for the customer's admin to configure in Bullhorn or a third-party sales engagement tool.
Loxo
Client Portal Settings
Bullhorn ATS & CRM
Not migrated (configuration documented)
1:1Loxo's client portal configuration (branding, shared job visibility, report templates) is tied to the instance-level portal setup and is not accessible via API. Bullhorn's client portal is a separate configuration. We do not migrate these settings. We deliver a written summary of the current Loxo portal configuration for the customer's Bullhorn admin to replicate in Bullhorn's portal settings.
| Loxo | Bullhorn ATS & CRM | Compatibility | |
|---|---|---|---|
| Candidate | Candidate and ClientContact (split required)1:many | Fully supported | |
| Contact (client-side) | ClientContact1:1 | Fully supported | |
| Client Company | ClientCorporation1:1 | Fully supported | |
| Job | JobOrder1:1 | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Pipeline Stage | Opportunity Stage (Sales Process)lossy | Fully supported | |
| Placement | Placement1:1 | Fully supported | |
| Custom Fields (Candidates, Contacts, Jobs, Deals) | Custom Fields and Custom Objectslossy | Fully supported | |
| Activities: Emails, Calls, Texts, Notes | Task, Event, Note1:1 | Fully supported | |
| Attachments: Resumes, Documents | Candidate Document and ContentDocument1:1 | Fully supported | |
| Tags and Labels | Categories or Custom Picklistlossy | Fully supported | |
| User and Owner Assignments | User1:1 | Fully supported | |
| Outreach Campaigns (Loxo Outreach) | Not migrated (inventory delivered)1:1 | Not supported | |
| Client Portal Settings | Not migrated (configuration documented)1:1 | Not 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.
Loxo gotchas
API returns 403 on trailing spaces in URL parameters
Outreach campaign automation not available via API
Duplicate candidate profiles for multi-job candidates
Loxo Connect email boundary risk
Pricing discrepancy between published tiers and actual invoices
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 the source Loxo portal across tier (Free/Basic/Professional/Enterprise), custom field schemas on each object, pipeline and stage count, active outreach campaigns, candidate deduplication status, and engagement volume. We pair this with a Bullhorn edition decision: Bullhorn ATS ($99/user) covers most migrations with minimal custom fields; Bullhorn Growth/Enterprise ($199-$315/user) is required if the customer needs more than 2 custom objects or advanced VMS connector access. The discovery output is a written migration scope and a Bullhorn edition recommendation with any required custom object Support ticket initiated.
Schema design and stage mapping
We design the destination schema in Bullhorn. This includes confirming the Candidate versus ClientContact split rules for Loxo people records, mapping Loxo pipeline stages to Bullhorn Opportunity StageName values via a confirmed Sales Process, creating Bullhorn custom fields for any Loxo custom properties that don't map to standard Bullhorn fields, and provisioning Bullhorn custom objects via the Support ticket (if applicable). Bullhorn does not allow custom object creation via API; we coordinate the Support ticket during this phase and confirm schema readiness before data extraction 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, ClientContacts in, ClientCorporations in, JobOrders in, Opportunities in, Placements in), spot-checks 25-50 random records against the Loxo source, and validates the stage mapping and custom field population. Any mapping corrections happen in the sandbox, not in production. The customer signs off the sandbox validation before production migration begins.
Owner reconciliation and User provisioning
We extract every distinct Loxo Owner referenced on Candidate, Contact, Company, Job, Deal, and Placement records and match by email against the Bullhorn destination org's User table. Owners without a matching Bullhorn User go to a reconciliation queue. The customer's Bullhorn admin provisions any missing Users (active or inactive depending on whether the original Loxo user is still active). Migration cannot proceed past this step because Owner lookups are required on most Bullhorn standard objects.
Production migration in dependency order
We run production migration in record-dependency order: ClientCorporations (from Loxo Client Companies), Candidates and ClientContacts (with type split applied), JobOrders, Opportunities (with RecordTypeId and stage mapping resolved), Placements (with CandidateId, JobOrderId, and ClientCorporationId resolved), Activity history (Tasks and Events via Bullhorn REST API with chunking), and Custom Objects last. Each phase emits a row-count reconciliation report before the next phase begins. Bullhorn Launch provides the included self-guided implementation path; we coordinate with Bullhorn professional services if the data import exceeds the 15,000-record included limit.
Cutover, validation, and automation rebuild handoff
We freeze Loxo 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 the Loxo Outreach campaign inventory and Client Portal configuration summary to the customer's Bullhorn admin team with recommended Bullhorn equivalent configuration steps. We support a one-week hypercare window where we resolve any reconciliation issues raised by the customer's recruiting team. We do not rebuild Loxo Outreach sequences as Bullhorn workflows inside the migration scope; that is documented separately for the customer's admin or Bullhorn partner to implement.
Platform deep dives
Loxo
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 Loxo 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
Loxo: Not publicly documented.
Data volume sensitivity
Loxo 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 Loxo to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.
Walk through your Loxo 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 Loxo
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.