HRMS migration
Field-level mapping, validation, and rollback between Candidate Management System and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.
Candidate Management System
Source
Bullhorn ATS & CRM
Destination
Compatibility
9 of 12
objects map 1:1 between Candidate Management System and Bullhorn ATS & CRM.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from Candidate Management System to Bullhorn is a structural upgrade from a lightweight ATS to a unified ATS-and-CRM platform. Candidate Manager organizes talent acquisition data as Jobs, Candidates, Applications, and tenant-specific custom properties within a single-pipeline structure. Bullhorn introduces a richer entity model—separate Lead, Candidate, Contact, Company, Opportunity, and Placement objects—that requires redesigning how your recruiting data is organized before any records move. We extract from Candidate Manager via its native export interface (no documented REST API is available), normalize tenant-specific custom fields during discovery, and load into Bullhorn through its REST API with batch chunking and parent-record lookup resolution. Bullhorn's 300-plus marketplace integrations, AI-powered candidate matching (Amplify), and unified front-office-to-back-office data model give staffing agencies a scalable foundation that Candidate Manager's dormant product profile no longer supports.
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 Candidate Management System 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.
Candidate Management System
Job (Requisition)
Bullhorn ATS & CRM
Job
1:1Candidate Manager Jobs export with title, status, department, location, and posting dates. We map these directly to Bullhorn Job records via the Bullhorn REST API, preserving the original internal job ID as a custom reference field. Job Order status (open, filled, closed) maps to Bullhorn's jobStatus field. Any posting-date history is preserved in custom date fields since Bullhorn tracks a single publishedDate by default.
Candidate Management System
Candidate
Bullhorn ATS & CRM
Candidate
1:1Candidate Manager Candidate records (name, contact details, work history, education, skills) map 1:1 to Bullhorn Candidate records. We deduplicate by email address during scoping and flag duplicate candidates for customer review before insert. Bullhorn's Candidate ATS v2 component tracks candidate progress across all applied Jobs in a single workspace, which is a richer view than Candidate Manager's per-Application status.
Candidate Management System
Application
Bullhorn ATS & CRM
Job Submission (ATS v2)
1:1Candidate Manager Applications link a Candidate to a Job and carry status, source, and submission timestamp. We preserve this as Bullhorn Job Submission records under the relevant Job. Bullhorn ATS v2 tracks submissions through ordered pipeline stages using color-coded chevrons, which replaces Candidate Manager's simple application status field. Active applications in stages with no Bullhorn equivalent are flagged for explicit stage mapping decisions during discovery.
Candidate Management System
Pipeline Stage
Bullhorn ATS & CRM
Job Stage
lossyCandidate Manager's configurable pipeline stages per Job map to Bullhorn Job Stages, which are defined at the Job Order level or as a global pipeline template. We enumerate the source stage sequence explicitly, map each to the nearest Bullhorn stage equivalent, and flag any stages that carry candidate-specific data (e.g., scoring, interview feedback) that should migrate as separate custom fields rather than stage names.
Candidate Management System
Custom Properties
Bullhorn ATS & CRM
Custom Fields / Custom Objects
1:1Tenant-specific custom fields on Candidate and Application records in Candidate Manager require explicit enumeration during discovery because each organization configures its own schema. We map named custom fields to Bullhorn Custom Fields via Admin > Field Mappings for standard types. Fields that exceed Bullhorn's custom field limits (55 fields per entity) or that represent structured sub-records map to Bullhorn Custom Objects, available up to 10 on Bullhorn Front Office Growth and Enterprise editions, limited to 2 on Bullhorn ATS.
Candidate Management System
Assessments / Rankings
Bullhorn ATS & CRM
Custom Fields (numeric)
1:1Ranking scores and pre-profiling data stored as numeric properties on Application or Candidate records migrate directly as Bullhorn custom fields of the corresponding type. Textual scoring rubrics and free-text evaluation criteria flag as candidates for Bullhorn Custom Objects with dropdown or multi-select fields if the rubric is repeatable, or as Note attachments if the evaluation format varies too much to map structurally.
Candidate Management System
Notes
Bullhorn ATS & CRM
Note
1:1Recruiter notes attached to Candidates or Applications in Candidate Manager export as free-text blobs with authorship and timestamp. We preserve note content and authorship in Bullhorn Note records linked via ContentDocumentLink to the parent Candidate or Job record. Bullhorn's Note object supports rich text, so formatting present in Candidate Manager exports is preserved where possible.
Candidate Management System
Attachments
Bullhorn ATS & CRM
ContentDocument / Resume Storage
1:1Resume files, cover letters, and portfolio documents export from Candidate Manager as binary blobs. We extract text content where parsable, re-upload original file types to Bullhorn's document storage as ContentDocument records linked via ContentDocumentLink to the parent Candidate, and attach the parsed resume text as a Note for searchability. File size and type are preserved in the ContentVersion metadata. Large binary blobs are chunked for re-upload to handle Bullhorn's document size limits.
Candidate Management System
Hiring Manager Self-Service Portal
Bullhorn ATS & CRM
Bullhorn Client Portal / Candidate.ly Integration
lossyCandidate Manager's hiring manager self-service portal (letting managers review candidates, leave scorecards, move pipeline stages) has no direct Bullhorn equivalent without configuration. We document the portal's functional scope as a written requirements list for Bullhorn Client Portal setup or the Candidately integration (a Bullhorn Marketplace partner) to preserve the self-service workflow post-migration.
Candidate Management System
Staffing Agency Client Portal
Bullhorn ATS & CRM
Bullhorn Client Corporation + Portal Access
lossyCandidate Manager's staffing agency portal lets client companies log in to view pipeline status. In Bullhorn, this maps to Client Corporations (the company-level record) with Contact records for each client user, configured with portal access permissions. Bullhorn's native portal requires configuration through the Admin interface; we document the target portal access scope and permissions matrix as part of the migration deliverables.
Candidate Management System
Candidate Source Tracking
Bullhorn ATS & CRM
Candidate source field
1:1Candidate Manager tracks application source (job board, referral, direct, agency portal) as a property on the Application record. We map this to Bullhorn's standard source field on the Candidate or Job Submission record. Boolean search queries run against the Candidate Manager talent database do not carry forward as saved searches; we document the query logic so the customer's Bullhorn admin can recreate searches using Bullhorn's Advanced Search with custom object filter support.
Candidate Management System
Owner / Recruiter Assignment
Bullhorn ATS & CRM
User
1:1Recruiter assignment on Candidate Manager records maps to Bullhorn User records by email match. Owners without a matching Bullhorn User are held in a reconciliation queue. Bullhorn's user permissions model (Admin, Standard, Limited) and department-level field access require separate configuration outside the migration scope; we document the required permission matrix as a pre-migration configuration task.
| Candidate Management System | Bullhorn ATS & CRM | Compatibility | |
|---|---|---|---|
| Job (Requisition) | Job1:1 | Fully supported | |
| Candidate | Candidate1:1 | Fully supported | |
| Application | Job Submission (ATS v2)1:1 | Fully supported | |
| Pipeline Stage | Job Stagelossy | Fully supported | |
| Custom Properties | Custom Fields / Custom Objects1:1 | Mapping required | |
| Assessments / Rankings | Custom Fields (numeric)1:1 | Mapping required | |
| Notes | Note1:1 | Mapping required | |
| Attachments | ContentDocument / Resume Storage1:1 | Mapping required | |
| Hiring Manager Self-Service Portal | Bullhorn Client Portal / Candidate.ly Integrationlossy | Fully supported | |
| Staffing Agency Client Portal | Bullhorn Client Corporation + Portal Accesslossy | Fully supported | |
| Candidate Source Tracking | Candidate source field1:1 | Fully supported | |
| Owner / Recruiter Assignment | User1: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.
Candidate Management System gotchas
Inactive G2 profile signals vendor neglect
No documented public API complicates exports
Custom properties vary by tenant configuration
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 export feasibility assessment
We audit the Candidate Manager instance for record counts (Jobs, Candidates, Applications, Attachments), enumerate all tenant-specific custom properties on Candidate and Application records, identify any custom scoring rubrics or assessment data, and confirm the export method available (native export interface, direct database access, or CSV fallback). We also confirm the target Bullhorn edition (Bullhorn ATS, Bullhorn Platform Growth, Bullhorn Platform Enterprise, or Bullhorn Recruitment Cloud) because edition determines Custom Object limits and API access scope. The discovery output is a written migration scope document with a record-count estimate, a custom field inventory, and a Bullhorn edition recommendation.
Custom property mapping and Bullhorn schema pre-creation
We enumerate every custom Candidate Manager property and map it to a Bullhorn destination: standard field, Custom Field via Admin > Field Mappings, or Custom Object. Bullhorn schema is pre-created in a Sandbox org first for validation. This includes Bullhorn Job Stages (matching the source stage sequence), Custom Fields (with type matching: text, number, date, dropdown), Custom Objects (for structured sub-records that exceed Custom Field limits), and User provisioning requirements. Bullhorn field limits are checked per entity: custom fields per entity, and custom object field limits by edit type (up to 20 of any combination of check box, drop-down, mini-picker, radio, section header, select, and picker types).
Data extraction, normalization, and sandbox migration
We extract Candidate Manager data via the confirmed export method, normalize custom field values to Bullhorn-compatible types, deduplicate Candidates by email, and flag orphaned custom properties without a Bullhorn destination. A sandbox migration runs first into the Bullhorn Sandbox environment to validate record counts, parent-child relationships (Candidate to Job, Application to Job), and attachment re-upload integrity. The customer's RevOps lead spot-checks 25 to 50 records against the source system and signs off before production migration begins.
Owner and User reconciliation
We extract every distinct recruiter and hiring manager assigned as Owner on Candidate Manager records and match by email against the Bullhorn destination org's User table. Any Candidate Manager Owner without a matching Bullhorn User goes to a reconciliation queue. Bullhorn's user provisioning (Admin > Users > Add User) is performed by the customer's Bullhorn admin before production migration; we cannot proceed past this step because OwnerId references are required on most Bullhorn standard objects.
Production migration in dependency order
We run production migration in record-dependency order: Jobs (first, as the parent of submissions), Candidates (with email-based deduplication), Applications mapped to Bullhorn Job Submissions, Notes (linked via ContentDocumentLink), Attachments (via ContentVersion re-upload with chunking for large files), and Custom Object records (last, because they often have lookups to standard objects already migrated). Each phase emits a row-count reconciliation report before the next phase begins. Bullhorn's REST API is used with rate-limit handling and exponential backoff; large binary blobs are chunked for re-upload to stay within Bullhorn's document size constraints.
Cutover, delta migration, and deliverable handoff
We freeze writes on Candidate Manager 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 a written inventory of every active pipeline configuration, custom field mapping, and orphaned custom property requiring manual entry. Bullhorn workflow rules, automation sequences, and hiring manager portal configurations are not migrated by FlitStack AI as code; we document them for the customer's Bullhorn admin or implementation partner to rebuild post-migration. A one-week hypercare window covers reconciliation issues raised during the first week of Bullhorn production use.
Platform deep dives
Candidate Management System
Source
Strengths
Weaknesses
Bullhorn ATS & CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard HRMS migration. All 7 core objects map 1:1 between Candidate Management System and Bullhorn ATS & CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Candidate Management System and Bullhorn ATS & CRM.
Object compatibility
All 7 core objects map 1:1 between Candidate Management System and Bullhorn ATS & CRM.
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
Candidate Management System: Not publicly documented.
Data volume sensitivity
Candidate Management System 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 Candidate Management System to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.
Walk through your Candidate Management System 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 Candidate Management System
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.