HRMS migration

Migrate from X0PA AI to Bullhorn ATS & CRM

Field-level mapping, validation, and rollback between X0PA AI and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.

X0PA AI logo

X0PA AI

Source

Bullhorn ATS & CRM

Destination

Bullhorn ATS & CRM logo

Compatibility

62%

8 of 13

objects map 1:1 between X0PA AI and Bullhorn ATS & CRM.

Complexity

BStandard

Timeline

4-6 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Migrating from X0PA AI to Bullhorn requires navigating a source platform with no documented public API and a destination platform with a fully documented REST API and tiered custom object model. X0PA AI's core differentiator — its proprietary AI scoring model that ranks candidates per requisition — generates data that cannot be reconstructed in any external system. We flag every AI-score field as reference-only during scoping so customers understand what is transferable versus what is platform-locked. Interview recordings from X0PA Room are infrastructure-bound with no export mechanism, and customers requiring archived media must request it from X0PA support directly before migration completes. Bullhorn's custom object limits vary by edition (ATS Growth: none, Bullhorn ATS: 2, Front Office Growth/Enterprise: 10 with 55 fields each), which shapes how we map X0PA's Persona™ assessments and RPO client billing data. Workflows, sequences, and RPO routing rules do not migrate; we deliver a written inventory for the customer's admin to rebuild in Bullhorn. CSV export coordination with X0PA support is required because the platform does not expose a developer API with published authentication or bulk endpoints.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

X0PA AI logo

X0PA AI

What's pushing teams away

  • Customers report that implementation and onboarding require significant internal resources, with some citing a steep learning curve that delays time-to-value.
  • Enterprise pricing requires custom sales negotiations with no public per-seat rate for higher tiers, making cost predictability difficult for mid-market buyers.
  • Integration complexity with existing HRIS and ATS systems is cited as a friction point, particularly when X0PA AI is evaluated alongside platforms with broader native connector libraries.
  • Some users describe the platform's AI-driven screening as a black box, making it difficult to explain candidate ranking rationale to hiring managers who expect transparency.
  • Smaller organizations with simpler hiring needs find the enterprise feature set and pricing structure disproportionate to their requirements.

Choosing

Bullhorn ATS & CRM logo

Bullhorn ATS & CRM

What's pulling them in

  • Agencies choose Bullhorn because it combines ATS and CRM in one platform, eliminating the need to switch between separate tools for candidate management and client relationship tracking.
  • The resume parser extracts contact details, work history, and skills into structured, searchable candidate profiles automatically without manual data entry, reportedly driving 24% more placements per recruiter.
  • Bullhorn's placement and split-billing model natively supports contract staffing workflows, handling start/end dates, overtime rules, and multi-party pay/charge rates in a single record.
  • The platform offers extensive third-party integrations through its Recruitment Cloud Marketplace, connecting with back-office, onboarding, and payroll systems used by staffing agencies.
  • 72% of Bullhorn customers are teams with fewer than 10 users, and Bullhorn's implementation team handles setup and data migration for small agencies going live within weeks.

Object mapping

How X0PA AI objects map to Bullhorn ATS & CRM

Each row shows how a X0PA AI 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.

X0PA AI

Jobs/Requisitions

maps to

Bullhorn ATS & CRM

JobOrder

1:1
Fully supported

X0PA job records map directly to Bullhorn JobOrder. Job Title, Description, Location (city/state/country split), Department, Employment Type (mapped to JobOrder employmentType picklist), and open/closed status migrate as standard fields. X0PA workflow stage configuration per job maps to Bullhorn JobOrder status (Open/Closed/On Hold) and a custom JobStatus stage field if the customer requires granular stage tracking beyond Bullhorn's native status. We coordinate with X0PA support to generate the CSV export covering all active and closed jobs within a defined date range.

X0PA AI

Candidates

maps to

Bullhorn ATS & CRM

Candidate

1:1
Fully supported

X0PA Candidate records map to Bullhorn Candidate with all standard contact fields (name, email, phone, address, LinkedIn URL) preserved. X0PA's candidate-specific fields including candidate type (active/passive/prospective), source channel, and talent pool membership migrate to Bullhorn Candidate custom fields. The X0PA masked/prospective candidate flag maps to a custom Candidate_IsProspective__c boolean. We preserve the original X0PA candidate ID in a custom field x0pa_candidate_id__c for reconciliation.

X0PA AI

Persona™ Behavioral Assessments

maps to

Bullhorn ATS & CRM

Custom Object on Candidate (customObject1-10)

lossy
Fully supported

X0PA's Persona™ behavioral assessment module stores structured assessment scores per candidate per requisition. Bullhorn does not have a native behavioral assessment object, so we provision a Custom Object on the Candidate entity (customObject1 through customObject10 depending on the customer's Bullhorn edition tier) to store Persona™ scores, completion status, assessment type, and date taken. The Front Office Growth/Enterprise tier supports up to 10 custom objects with 55 fields each; Bullhorn ATS supports 2 custom objects. We coordinate with the customer during scoping to confirm which Bullhorn edition they hold and which custom object slot to use.

X0PA AI

AI Scores (CV relevance, predictive performance, predictive loyalty)

maps to

Bullhorn ATS & CRM

Custom read-only fields on Candidate or JobOrder

lossy
Fully supported

X0PA's proprietary AI scores (CV relevance, predictive performance, predictive loyalty) are computed by X0PA's gradient boosting model and are platform-locked. We migrate these values as custom read-only fields on the Bullhorn Candidate record (x0pa_cv_relevance_score__c, x0pa_predictive_performance_score__c, x0pa_predictive_loyalty_score__c) with field-level security set to read-only for all roles. We clearly label these as reference-only data during scoping so customers understand they cannot be regenerated or recalculated in Bullhorn. Any hiring logic that relies on these scores requires rebuilding using Bullhorn's native filters and reporting.

X0PA AI

Interviews (scheduling data)

maps to

Bullhorn ATS & CRM

Event + Candidate

1:1
Fully supported

Interview records from X0PA — including scheduled datetime, interviewer assignment (mapped to Bullhorn User), interview type, candidate association, and interview stage — map to Bullhorn Event records linked via EventRelation to the Candidate. Automated scheduling status migrates as a custom Event field event_scheduling_status__c. Interview notes and feedback fields migrate as Note records attached to the Event. Bullhorn Event does not natively support interview score or rating fields, so structured feedback from X0PA interview evaluations maps to a custom Event field or a custom object on Event if the customer's Bullhorn edition supports it.

X0PA AI

Interview Recordings (X0PA Room)

maps to

Bullhorn ATS & CRM

Not migrated — reference-only

lossy
Not supported

X0PA Room stores interview recordings, analysis, and transcription in X0PA's own infrastructure with no documented export capability or public API endpoint. We do not attempt to migrate interview recordings as no export mechanism is evidenced. We flag X0PA Room media files as a migration gap in the scoping document and recommend the customer request their X0PA Room export directly from X0PA support before migration cutover. If the customer requires archived recordings post-migration, they must be retrieved from X0PA and stored externally.

X0PA AI

Offers

maps to

Bullhorn ATS & CRM

Opportunity

1:1
Fully supported

X0PA Offer records map to Bullhorn Opportunity. Offer status, compensation details (salary, bonus, equity if stored), start date, and candidate association migrate as Opportunity fields. X0PA offer history and versioned changes (if the customer used offer versioning) migrate as a custom text area field offer_history__c holding a structured summary of prior offer versions. We create the Opportunity under the Candidate's associated JobOrder to preserve the offer-to-requisition relationship.

X0PA AI

Users/Hiring Managers

maps to

Bullhorn ATS & CRM

User + Bullhorn_BGC__c (optional)

1:1
Mapping required

X0PA user accounts (Recruiter, Hiring Manager, Admin, RPO Client roles) map to Bullhorn User records by email match. Role mapping requires a mapping matrix: X0PA Recruiter maps to Bullhorn Recruiter role, X0PA Hiring Manager maps to Bullhorn Hiring Manager role, and X0PA Admin maps to Bullhorn Admin. Active/inactive status migrates. RPO Client users who are external to the organization map to Bullhorn ClientContact records under the corresponding ClientCorporation rather than User records. We resolve owners by email match; any X0PA user without a matching Bullhorn User goes to a reconciliation queue for the customer's admin to provision before record import resumes.

X0PA AI

RPO Client Records

maps to

Bullhorn ATS & CRM

ClientCorporation + ClientContact

1:1
Mapping required

X0PA RPO tier includes multi-client dashboard and client relationship tools with client name, billing contact, and contract status. These map to Bullhorn ClientCorporation (company-level) and ClientContact (billing contact, primary RPO client relationship manager) records. We apply a custom tag RPO_Client__c on ClientCorporation to distinguish RPO client records from standard Bullhorn client corporations. Client billing and invoice history migrates to a custom ClientCorporation field or a custom object if the Bullhorn edition supports it and the customer requires it.

X0PA AI

RPO Pipeline/Workflow Stages

maps to

Bullhorn ATS & CRM

JobOrder status + Record Type + Custom Fields

lossy
Fully supported

X0PA RPO supports custom workflows per job or per client with stage configurations, client-specific routing rules, and invoice/contract management. These workflow definitions have no documented export format. We reconstruct RPO pipeline stages manually by mapping from CSV exports — specifically, X0PA job stage names and ordering map to Bullhorn JobOrder status values and a custom RPO_Stage__c field that captures the original X0PA stage name. Conditional routing rules and automated stage transitions are documented in a migration scoping form and delivered as a written workflow map for the customer's admin to rebuild in Bullhorn. Bullhorn Record Types can be used to separate RPO pipeline views from standard ATS pipeline views if the customer runs both modes.

X0PA AI

Internal Talent Pool

maps to

Bullhorn ATS & CRM

Candidate Tags + Candidate List

lossy
Mapping required

X0PA maintains a searchable internal talent pool for sourcing and retargeting, with candidate pool membership as tags. We export pool membership and map it to Bullhorn Candidate Tags (comma-separated or multi-select custom field depending on the customer's Bullhorn edition). For organizations that use X0PA's talent pool retargeting feature heavily, we also recommend Bullhorn Candidate Lists as a destination for group-based sourcing campaigns. The 250M+ external profile database that X0PA uses for candidate sourcing is X0PA's own infrastructure and does not migrate.

X0PA AI

Candidate Applications (per job per candidate)

maps to

Bullhorn ATS & CRM

JobSubmission

1:1
Fully supported

X0PA stores candidate applications as the association between a Candidate and a Job with status and stage. Bullhorn models this as JobSubmission — a join record between Candidate and JobOrder with status, date submitted, and current stage. We map X0PA application status (applied, screening, shortlisted, interviewed, offered, hired, rejected) to Bullhorn JobSubmission status values. X0PA application date and last-modified date map to Bullhorn dateAdd and dateLastModified fields on JobSubmission.

X0PA AI

Candidate Source Tracking

maps to

Bullhorn ATS & CRM

Candidate customSource fields

1:1
Fully supported

X0PA tracks candidate source channels including job board postings, career site applications, resume database searches, and employee referrals. Source channel, source campaign, and UTM data migrate as custom Candidate fields (candidate_source_channel__c, candidate_source_campaign__c, candidate_source_utm__c) to preserve attribution data for reporting in Bullhorn.

Gotchas + challenges

What specifically takes care here

Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.

X0PA AI logo

X0PA AI gotchas

High

No documented public API with published auth or bulk export

High

AI scoring data is platform-locked and non-portable

High

X0PA Room interview recordings are infrastructure-bound

Medium

Enterprise pricing is opaque and requires sales negotiation

Medium

Custom RPO workflows require manual mapping to destination pipeline schema

Bullhorn ATS & CRM logo

Bullhorn ATS & CRM gotchas

High

ATS Growth edition has no API access

High

Attachments excluded from CSV bulk exports

Medium

Custom Object limits vary sharply by edition

Medium

Opportunity pipeline stages are recruitment-specific

Low

Resume parse quality varies by document format

Pair-specific challenges

  • X0PA AI has no documented public API for extraction

    X0PA AI does not publish a developer-facing API reference with authentication method, rate limits, or bulk export endpoints. The platform references 'API Integrations' as a capability but provides no technical documentation. We rely on CSV export as the primary data extraction path, which requires the customer to coordinate with X0PA support to generate export files or grant access to X0PA's native export function. Any migration scoped against API-based extraction from X0PA must be re-scoped to CSV; this affects timeline because X0PA's export generation is not self-service.

  • X0PA AI scoring data is platform-locked and non-portable

    X0PA's core value proposition is its proprietary gradient-boosting model that generates per-candidate scores (CV relevance, predictive performance, predictive loyalty) per requisition. These scores are computed within X0PA's environment and are not reproducible outside the platform. We migrate the numeric values as read-only custom fields in Bullhorn for reference, but they cannot be recalculated or regenerated. Customers who used X0PA's AI scores as the primary ranking signal must rebuild their ranking logic using Bullhorn's native filters, saved searches, and reporting — a workflow that requires post-migration admin work.

  • X0PA Room interview recordings have no export path

    X0PA Room provides interview recording, analysis, and transcription stored in X0PA's own infrastructure with no documented export capability. We do not attempt to migrate interview recordings as no public endpoint or export mechanism exists in the evidence. Customers requiring archived interview data must request it directly from X0PA support before migration cutover. We flag this gap in the scoping document and recommend the customer initiate the X0PA support request early in the migration timeline.

  • Bullhorn custom object limits vary by edition tier

    Bullhorn caps custom objects by edition: Front Office Growth/Enterprise allows 10 custom objects with 55 fields each, Bullhorn ATS allows 2 custom objects, and ATS Growth allows none. X0PA RPO customers often have Persona™ behavioral assessments, client billing records, and invoice data that require custom object slots in Bullhorn. We verify the customer's Bullhorn edition during scoping and adjust the mapping plan accordingly — Persona™ assessments may share a custom object with other assessment data if the customer's Bullhorn edition limits the available slots.

  • RPO workflow definitions require manual reconstruction

    X0PA RPO tier supports custom workflows per job or per client with stage configurations, client-specific routing rules, and invoice/contract management. These workflow definitions have no documented export format. We reconstruct RPO pipeline stages from CSV exports and deliver a written workflow map documenting the original stage names, ordering, and routing logic. Automated routing rules and conditional logic are documented in a migration scoping form and applied post-import in Bullhorn by the customer's admin. Bullhorn's Record Types and Sales Processes can replicate the pipeline segmentation, but the automation layer requires manual rebuild.

Migration approach

Six steps for a successful X0PA AI to Bullhorn ATS & CRM data migration

  1. CSV export coordination with X0PA AI

    We initiate the data extraction by coordinating with X0PA support to generate CSV exports covering Jobs, Candidates, Assessments, Interviews, Offers, Users, RPO Client Records, and Internal Talent Pool membership. Because X0PA AI does not expose a developer API, the customer must request exports through X0PA support or use X0PA's native export function if available on their tier. We provide the customer with a detailed export specification listing every required field, date range, and file format before the export request is submitted. We also recommend the customer request X0PA Room media exports at this stage if archived recordings are required.

  2. Bullhorn edition verification and schema pre-provisioning

    We verify the customer's Bullhorn edition (ATS Growth, Bullhorn ATS, or Front Office Growth/Enterprise) to confirm the available custom object slots and field limits. We pre-provision the custom objects, custom fields, Record Types, and page layouts required for the migration in a Bullhorn Sandbox org before any production data moves. This includes Persona™ assessment custom objects, RPO client tag fields, X0PA AI score read-only fields, and any source-tracking custom fields. Bullhorn Support assists with custom object creation via a support ticket with a completed Custom Object Setup Spreadsheet.

  3. Sandbox migration and record reconciliation

    We run a full migration into a Bullhorn Sandbox using the exported CSV files. Data is staged in a structured format, mapped to Bullhorn object schemas, and ingested via Bullhorn REST API (for real-time inserts and updates) and bulk CSV import (for high-volume Candidate and JobOrder records). The customer's Bullhorn admin and recruitment leads reconcile record counts, spot-check 25-50 records per object against the X0PA source, and sign off the mapping before production migration begins. Any missing fields, incorrect type mappings, or dedupe conflicts are resolved in Sandbox.

  4. Owner reconciliation and User provisioning

    We extract every distinct X0PA user (Recruiter, Hiring Manager, Admin, RPO Client) and match by email against the Bullhorn destination org's User table. Users 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 X0PA user is still employed). RPO Client users who are external to the organization are provisioned as ClientContact records under ClientCorporation rather than User records. OwnerId references must be resolved before record import resumes because Bullhorn requires OwnerId on most standard objects.

  5. Production migration in dependency order

    We run production migration in record-dependency order: ClientCorporation (from X0PA RPO Client Records), then Users (validated), then JobOrder (from X0PA Jobs), then Candidate (with custom source fields and talent pool tags), then JobSubmission (candidate-to-job association), then Event (interview scheduling records), then Opportunity (from X0PA Offers), then Custom Object records (Persona™ assessments and any RPO-specific custom objects). Persona™ AI score fields are imported as read-only custom fields on Candidate. Each phase emits a row-count reconciliation report before the next phase begins. X0PA Room media files are flagged as not migrated with a handoff note requesting the customer retrieve them from X0PA support.

  6. Cutover, validation, and RPO workflow handoff

    We freeze X0PA write access during cutover, run a final delta migration of any records modified during the migration window, then designate Bullhorn as the system of record. We deliver a written RPO workflow inventory documenting the original X0PA pipeline stages, client routing rules, and conditional logic for the customer's Bullhorn admin to rebuild using Bullhorn Record Types, Sales Processes, and Bullhorn Automation (if available on the customer's tier). We do not rebuild X0PA automations, RPO sequences, or Persona™ assessment logic as Bullhorn workflows inside the migration scope; those are separate configuration tasks. We support a one-week post-cutover hypercare window for reconciliation issues.

Platform deep dives

Context on both ends of the pair

X0PA AI logo

X0PA AI

Source

Strengths

  • End-to-end recruitment automation from sourcing through offer, reducing manual recruiter work by a documented 70%.
  • AI Verify-endorsed bias reduction framework with gradient boosting model validated against 450M+ data points.
  • Multi-product suite covering ATS, RPO, academia, and enterprise in a single platform family.
  • AI-powered candidate matching across a 250M+ external profile database with internal talent pool retargeting.
  • RPO-specific features including multi-client dashboard, invoice management, and white-label options.

Weaknesses

  • No publicly documented API with published authentication methods, rate limits, or bulk export endpoints.
  • Enterprise pricing requires sales consultation with no transparent per-seat rates published above the Lite tier.
  • Steep onboarding and implementation requirements that are disproportionate for smaller teams.
  • Proprietary AI scoring models generate data that cannot be reconstructed or ported to non-X0PA systems.
  • Limited third-party integration connector library compared to established ATS platforms like Greenhouse or iCIMS.
Bullhorn ATS & CRM logo

Bullhorn ATS & CRM

Destination

Strengths

  • Unified ATS and CRM on one platform purpose-built for staffing agencies, eliminating separate tools for candidates and clients.
  • Automated resume parsing extracts structured candidate data—contact details, work history, skills—into searchable profiles instantly.
  • Native placement and split-billing model handles contract staffing workflows including start/end dates and overtime rules.
  • Bullhorn Recruitment Cloud Marketplace offers 100+ pre-validated third-party integrations spanning the full recruiting lifecycle.
  • 24/7 global support coverage from 350+ support staff with dedicated account management included at all tiers.

Weaknesses

  • Widely regarded as old and bloated with an unintuitive interface and steep learning curve for new recruiters.
  • Slow page loads and performance lag cited in over 200 verified G2 reviews during high-volume recruiting periods.
  • Pricing is opaque—custom-negotiated per organization with significant upfront implementation fees that vary by deal.
  • ATS Growth edition excludes API access entirely, preventing automated data export without upgrading first.

Complexity grading

How hard is this migration?

Standard HRMS migration. All 7 core objects map 1:1 between X0PA AI and Bullhorn ATS & CRM.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across X0PA AI and Bullhorn ATS & CRM.

  • Object compatibility

    A

    All 7 core objects map 1:1 between X0PA AI and Bullhorn ATS & CRM.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    7-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    X0PA AI: Not publicly documented.

  • Data volume sensitivity

    B

    X0PA AI doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your X0PA AI to Bullhorn ATS & CRM migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about X0PA AI to Bullhorn ATS & CRM data migrations

Answers to the questions buyers ask most during X0PA AI to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your X0PA AI to Bullhorn ATS & CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations land between four and six weeks for accounts under 15,000 Candidates and 3,000 Jobs with no RPO multi-client workflows or large assessment history. Migrations with X0PA RPO tier data (multi-client billing, invoice records), Persona™ assessment history across large candidate pools, or multi-division job structures move to ten to fourteen weeks because of CSV coordination with X0PA support, custom object provisioning per Bullhorn edition tier, and manual RPO pipeline reconstruction. Bullhorn's own implementation team runs separately from FlitStack AI's migration scope; customers typically coordinate both timelines in parallel.

Adjacent paths

Related migrations to explore

Ready when you are

Move from X0PA AI.
Land in Bullhorn ATS & CRM, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day