HRMS migration
Field-level mapping, validation, and rollback between Nextal and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.
Nextal
Source
Bullhorn ATS & CRM
Destination
Compatibility
7 of 12
objects map 1:1 between Nextal and Bullhorn ATS & CRM.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from Nextal to Bullhorn is a migration from a collaborative, Kanban-focused ATS to a unified ATS and CRM platform built for staffing agencies at scale. Nextal stores Candidates and Applications in a flat relational model; Bullhorn separates Candidate (contact), JobOrder (job), JobSubmission (application), and Placement (hired) as distinct objects with a richer CRM layer for Companies (Corporation) and the recruiting pipeline. We extract the Nextal stage-to-stage mapping from the customer's pipeline configuration, split Applications into JobSubmission records in Bullhorn, and carry the original stage assignment as a custom field on JobSubmission so the pipeline history survives cutover. Resume attachments migrate as downloadable files linked to the Candidate record. We do not migrate Kanban board configurations, email templates, or any automation logic; these are documented in a written handoff for the customer's Bullhorn admin to rebuild inside Bullhorn Automations.
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 Nextal 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.
Nextal
Candidate
Bullhorn ATS & CRM
Candidate (Bullhorn ATS)
1:1Nextal Candidate records map to Bullhorn Candidate. We extract name fields, contact details (email, phone, address), source attribution (LinkedIn URL, Indeed attribution, direct application tag), and current status. Resume attachments migrate as CandidateDocument records linked to the Candidate. Any Nextal custom fields on Candidate are mapped to Bullhorn custom Candidate fields created before migration. We preserve the original Nextal candidate ID in a custom field nextal_candidate_id__c for audit and reconciliation.
Nextal
Job
Bullhorn ATS & CRM
JobOrder
1:1Nextal Job postings map to Bullhorn JobOrder. We extract title, description, department, location, employment type, status (open/closed/draft), and job board distribution flags. Bullhorn JobOrder also carries a status workflow (New, Open, Pending, etc.) that we configure to match the Nextal job stage semantics. If the Nextal job has multilingual content, we extract the primary-language version as the Bullhorn description and flag the secondary-language content for the customer's admin to populate inside Bullhorn.
Nextal
Application
Bullhorn ATS & CRM
JobSubmission
1:manyNextal Application records link a Candidate to a Job and carry stage history. We split each Application into a Bullhorn JobSubmission record (linking Candidate and JobOrder) plus a custom field candidate_stage__c holding the final Nextal stage name. Bullhorn does not have a native stage-history object for applications; we create a Note or custom object record per Application capturing the stage transition log if Nextal exposes it in the export. Any Application with status = hired maps to a Bullhorn Placement in a separate phase after JobSubmission migration.
Nextal
Pipeline Stage
Bullhorn ATS & CRM
JobSubmission Status + Custom Field
lossyNextal Kanban pipeline stages are configurable per organization. We extract the customer's stage configuration (stage name, order, color if exposed) from the Nextal export and map each to a Bullhorn JobSubmission status value plus a custom picklist field nextal_stage__c. The mapping table is customer-reviewed before migration to ensure stage semantics are preserved. Bullhorn's default JobSubmission statuses (New, Interviewing, Offer, etc.) are aligned to the Nextal stage names during configuration.
Nextal
User
Bullhorn ATS & CRM
Bullhorn User
1:1Nextal User accounts (recruiters, hiring managers, admins) map to Bullhorn User records by email address match. We extract name, email, role (recruiter, hiring manager, admin), and ownership of Jobs and Applications. Bullhorn User provisioning happens in parallel with schema setup; we validate that every Nextal User has a corresponding Bullhorn User before record migration begins. Any Nextal User without a Bullhorn User is placed in a reconciliation queue for the customer's Bullhorn admin to provision.
Nextal
Custom Field (Job)
Bullhorn ATS & CRM
JobOrder Custom Field
lossyNextal custom fields on Jobs require field-level mapping to Bullhorn JobOrder custom fields. We extract the field schema (label, data type, required flag, picklist values), create the corresponding Bullhorn custom fields before migration, and map values during the JobOrder import. Picklist-type custom fields are created as Bullhorn picklist fields with the same value set; text, number, and date fields use their Bullhorn equivalents.
Nextal
Custom Field (Candidate)
Bullhorn ATS & CRM
Candidate Custom Field
lossyNextal custom fields on Candidates map to Bullhorn Candidate custom fields using the same field-type equivalence logic. We create Bullhorn custom fields in the destination org sandbox before production migration, extract the field schema during discovery, and map values during the Candidate import. Any Nextal custom field without a Bullhorn equivalent is flagged in the discovery report for the customer to decide whether to create it or drop it.
Nextal
Attachment (Resume)
Bullhorn ATS & CRM
CandidateDocument
1:1Resume and document attachments on Nextal Candidate records migrate to Bullhorn CandidateDocument records linked to the Candidate. We preserve file format (PDF, DOCX, RTF) and filename. Bullhorn's REST API accepts CandidateDocument creation via multipart upload; we batch attachments in groups of 20 and retry on transient errors with exponential backoff. Attachments larger than 25 MB are flagged for the customer's admin to upload manually post-migration.
Nextal
Email Template
Bullhorn ATS & CRM
Bullhorn Email Template (documentation only)
1:1Nextal stores multilingual email templates tied to job stages. We extract templates as HTML blobs with language-variant metadata during discovery. Bullhorn Email Templates use a different schema and editor; we do not import templates as code. Instead, we deliver a written inventory of each extracted template with its trigger, body content, and language variants so the customer's Bullhorn admin can recreate them in Bullhorn's template builder. This is documented in the automation handoff, not migrated directly.
Nextal
Company (Nextal, if present)
Bullhorn ATS & CRM
Corporation (Bullhorn CRM)
1:1If Nextal exposes any company or client organization data (distinct from Candidate employer records), we map it to Bullhorn Corporation. Bullhorn's CRM layer uses Corporation as the parent of Contacts, mirroring how Salesforce uses Account for Contact. We extract company name, website, industry, and address fields. If no company data exists in Nextal, we skip this object; Bullhorn Corporation records can be created manually or via Bullhorn CRM imports post-migration.
Nextal
Lead (if Nextal exposes)
Bullhorn ATS & CRM
Lead (Bullhorn ATS)
1:1Some Nextal configurations expose an inbound Lead object separate from Candidate. We map these to Bullhorn Lead records if present. Bullhorn Lead is separate from Candidate and supports a different workflow (unsourced vs sourced candidates). We flag the existence of this object during discovery and map it with the same email-dedupe strategy used for Candidate migration.
Nextal
Job Board Distribution
Bullhorn ATS & CRM
JobOrder Distribution Settings
lossyNextal's built-in job board distribution to LinkedIn and Indeed is a configuration setting, not a record. We extract the distribution flags per Job and document which boards were active at migration time. Bullhorn's job board distribution is configured inside Bullhorn; we provide a written record of the original distribution settings so the customer's Bullhorn admin can re-enable them in Bullhorn's job board integration module.
| Nextal | Bullhorn ATS & CRM | Compatibility | |
|---|---|---|---|
| Candidate | Candidate (Bullhorn ATS)1:1 | Fully supported | |
| Job | JobOrder1:1 | Fully supported | |
| Application | JobSubmission1:many | Fully supported | |
| Pipeline Stage | JobSubmission Status + Custom Fieldlossy | Fully supported | |
| User | Bullhorn User1:1 | Fully supported | |
| Custom Field (Job) | JobOrder Custom Fieldlossy | Fully supported | |
| Custom Field (Candidate) | Candidate Custom Fieldlossy | Fully supported | |
| Attachment (Resume) | CandidateDocument1:1 | Fully supported | |
| Email Template | Bullhorn Email Template (documentation only)1:1 | Fully supported | |
| Company (Nextal, if present) | Corporation (Bullhorn CRM)1:1 | Fully supported | |
| Lead (if Nextal exposes) | Lead (Bullhorn ATS)1:1 | Fully supported | |
| Job Board Distribution | JobOrder Distribution Settingslossy | 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.
Nextal gotchas
No public API blocks programmatic data flows
Integrations limited to HubSpot CRM, Outlook, and Gmail
Pricing tier features are not publicly documented
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 data audit
We work with the customer's Nextal admin to export all modules via the Nextal UI: Candidates (with all custom fields and attachment filenames), Jobs (with multilingual content and distribution flags), Applications (with stage assignments), Pipeline Stages (stage names and order), Users (names, emails, roles), and any custom fields or company data. We validate row counts in the exported CSVs against in-app counts, flag any character-encoding issues in multilingual fields, and document the pipeline stage configuration. We simultaneously review the Bullhorn destination environment: existing Record Types, custom fields, JobSubmission statuses, and Corporation/Contact setup to identify schema conflicts before migration begins.
Schema design and Bullhorn configuration
We design the Bullhorn destination schema in a sandbox environment. This includes creating custom fields on JobOrder and Candidate (mapped from Nextal custom field schema), configuring JobSubmission status values to match the Nextal pipeline stages using a customer-reviewed stage mapping table, provisioning any required Bullhorn Record Types, and defining the Corporation mapping if Nextal exposes company data. We also create the nextal_candidate_id__c and nextal_stage__c custom fields as reconciliation fields during this phase. Schema is validated in the sandbox before any production data moves.
Sandbox migration and reconciliation
We run a full migration into the Bullhorn sandbox using production-like data volume extracted from Nextal. The customer's Bullhorn admin reviews record counts, spot-checks 25-50 random Candidate records and JobOrder records against the Nextal source, and confirms that stage assignments, custom field values, and attachment filenames are correct. Any mapping corrections, missed custom fields, or stage-mapping errors are resolved in sandbox before production migration begins. No production Bullhorn data is modified during this phase.
User provisioning and ownership mapping
We extract every distinct Nextal User referenced on Job and Application records and match by email against the Bullhorn destination's User table. Any Nextal User without a corresponding Bullhorn User goes to a reconciliation queue for the customer's Bullhorn admin to provision. Bullhorn's OwnerId references on JobOrder, JobSubmission, and Candidate must be satisfied at migration time; we cannot insert records with missing OwnerId values. This step runs in parallel with final data export from Nextal.
Production migration in dependency order
We run production migration in record-dependency order: Bullhorn Users (validated), Corporations (if migrating company data), Candidates (with CandidateDocument attachments in parallel batches), JobOrders, JobSubmissions (with nextal_stage__c and nextal_candidate_id__c populated), and then any delta records modified during the migration window. Each phase emits a row-count reconciliation report before the next phase begins. Bulk API with chunking and exponential backoff handles high-volume phases (Candidates with attachments). Email templates are documented and delivered as part of the automation handoff, not imported directly.
Cutover, validation, and automation handoff
We freeze Nextal as the system of record during cutover, run a final delta migration of any records created or modified in Nextal during the migration window, then enable Bullhorn as the active ATS. We deliver the written automation handoff document listing every Nextal email template (with HTML body) and every identified automation rule (Kanban stage triggers, notification rules, if exported). We do not rebuild these inside Bullhorn as part of the migration scope. We support a one-week hypercare window where we resolve any record-reconciliation issues. Post-migration Bullhorn admin training and workflow rebuild are outside standard scope and can be scoped as a separate engagement.
Platform deep dives
Nextal
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 Nextal 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
Nextal: Not publicly documented.
Data volume sensitivity
Nextal 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 Nextal to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.
Walk through your Nextal 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 Nextal
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.