HRMS migration
Field-level mapping, validation, and rollback between JobAdder and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.
JobAdder
Source
Bullhorn ATS & CRM
Destination
Compatibility
12 of 14
objects map 1:1 between JobAdder and Bullhorn ATS & CRM.
Complexity
BStandard
Timeline
3-6 weeks
Overview
JobAdder organises recruitment data around Candidates, Jobs, Clients, and Opportunities within a unified ATS and CRM, while Bullhorn separates ATS and CRM into licensed modules with distinct edition tiers that gate Opportunity access and custom object counts. We map JobAdder's custom fields to pre-provisioned Bullhorn custom fields before migration, preserving any custom object data on the Candidate, Job, or Placement records. Temp and contract placements carry bill rate, pay rate, markup percentage, and timesheet fields in JobAdder that do not exist as standard Bullhorn fields; we transfer these as custom properties on the Placement record. Bullhorn has no public API documentation from JobAdder, so we require a read-only JobAdder database export to discover the actual schema and available objects before field mapping begins. Workflows, automations, Sequences, and the JobAdder Client Portal access layer do not migrate as functional equivalents; we deliver a written inventory of every active automation for your Bullhorn admin to rebuild post-migration.
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 JobAdder 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.
JobAdder
Candidate
Bullhorn ATS & CRM
Candidate
1:1JobAdder Candidate records map directly to Bullhorn Candidate. All standard fields (name, email, phone, skills, work history, education) transfer with direct type mapping. JobAdder custom fields on Candidate migrate to Bullhorn custom fields on the Candidate record; we pre-create these in Bullhorn Admin before migration begins. The Candidate record is created before any child records (Tasks, Notes, Attachments) so that parent-lookup resolution succeeds at insert time.
JobAdder
Job
Bullhorn ATS & CRM
JobOrder
1:1JobAdder Job Order records map to Bullhorn JobOrder. The Job status maps to a Bullhorn JobStatus value, and the pipeline stage maps to a Bullhorn Pipeline configuration with corresponding status values. Job description, requirements, and assigned consultant fields migrate as direct text fields. The job board posting history attached to each Job Order migrates as metadata on the Bullhorn JobOrder record; the actual posting configuration requires manual rebuild in Bullhorn's job board settings.
JobAdder
Client
Bullhorn ATS & CRM
Corporation
1:1JobAdder Client records map to Bullhorn Corporation. Company name, address, industry, website, and business type fields migrate directly. The Client's primary contact migrates to Bullhorn Contact with the lookup to the parent Corporation established at insert time. Any Client Portal association is preserved as a text note on the Corporation record; Bullhorn's Client Portal or Client VMS must be configured separately post-migration.
JobAdder
Contact
Bullhorn ATS & CRM
Contact
1:1JobAdder Contact records (client-side contacts distinct from Candidates) map to Bullhorn Contact with the Corporation lookup resolved by company name match. Email, phone, title, role, and owning consultant fields migrate directly. Where a Contact shares an email with a migrated Candidate, we flag the record for the customer admin to deduplicate in Bullhorn rather than silently merging, to avoid unintended data loss.
JobAdder
Placement
Bullhorn ATS & CRM
Placement
1:1JobAdder Placement records map to Bullhorn Placement, linked to the migrated Candidate and JobOrder records via Lookups resolved at migration time. Start date, end date, employment type, and status migrate directly. Bullhorn's base ATS tier does not include a native temp billing module; we preserve JobAdder's bill rate, pay rate, markup percentage, and timesheet period fields as Bullhorn custom fields on the Placement record so the data is accessible without requiring Bullhorn Middle Office licensing.
JobAdder
Opportunity
Bullhorn ATS & CRM
Opportunity
1:1JobAdder Opportunity records map to Bullhorn Opportunity, which represents the business development pipeline for new client work. JobAdder's Opportunity Pipeline is a distinct object managing BD activity; Bullhorn's Opportunity is also a standard object but requires Front Office Growth or Enterprise editions at the ATS tier. We confirm the customer's Bullhorn edition during scoping and flag any Opportunity records that cannot be created if the edition does not support the Opportunity object. Status, estimated value, and close date migrate directly.
JobAdder
User
Bullhorn ATS & CRM
User
1:1JobAdder User accounts (consultants and recruiters) map to Bullhorn User records for active accounts, resolved by email match. JobAdder users who are no longer active are migrated as inactive Bullhorn placeholders to preserve assignment history on Candidate, Job, and Placement records. Bullhorn requires that the migration user has API and Bulk API permissions; we provision a dedicated migration user in Bullhorn Admin with the required object permissions before production migration begins.
JobAdder
Task
Bullhorn ATS & CRM
Task
1:1Task records linked to Candidates, Jobs, or Clients in JobAdder map to Bullhorn Task with Status, Priority, and ActivityDate preserved. Completed and open task status transfers as-is. Task assignment resolves by matching the JobAdder owner ID to the corresponding Bullhorn User record via the User mapping. Tasks with no assigned owner are held in a reconciliation queue and flagged in the migration report for admin resolution before the next phase.
JobAdder
Note
Bullhorn ATS & CRM
Note
1:1JobAdder Notes on Candidates, Jobs, or Clients map to Bullhorn Note records linked via ContentDocumentLink to the parent record. Note body migrates as rich text with creation and modification timestamps preserved from the JobAdder source. Bullhorn Note is the standard engagement object for recruiter annotations; we use it rather than ContentNote to preserve the simpler timeline view on the record layout without requiring additional navigation.
JobAdder
Attachment
Bullhorn ATS & CRM
Attachment
1:1File attachments on JobAdder Candidate profiles (CVs, cover letters, certifications) migrate as Bullhorn Attachment blobs associated with the Candidate record. Original filenames and MIME types are preserved. We chunk large binary transfers to stay within Bullhorn API size limits and resume any interrupted transfers on retry. Attachment migration runs after the parent Candidate record has been created to satisfy the ParentId reference.
JobAdder
Custom Field
Bullhorn ATS & CRM
Custom Field
lossyJobAdder custom fields on Candidates, Jobs, and Clients require pre-creation in Bullhorn Admin before any data import. Bullhorn editions limit the number of available custom fields and custom objects per entity: Bullhorn ATS Growth has no custom objects, Bullhorn ATS supports 2 custom objects with 55 fields each, and Front Office Growth and Enterprise support 10 with 55 fields each. We discover the full JobAdder custom field list from the customer export, design the Bullhorn custom field schema, and deploy it via Bullhorn Admin before migration begins.
JobAdder
Tag
Bullhorn ATS & CRM
Label
lossyJobAdder tags applied to Candidates and Jobs migrate as Bullhorn Label entries on the record. Tags stored as flat label arrays transfer directly; the semantic meaning of tags (sourcing channel, vetting status, sourcing pool classification) is preserved in the label value itself. Bullhorn does not have a tag taxonomy equivalent, so the original JobAdder tag taxonomy must be recreated as a Bullhorn label naming convention in the Bullhorn Admin label management section post-migration.
JobAdder
Temp / Contract Billing Record
Bullhorn ATS & CRM
Placement (custom fields)
1:1Temp placements in JobAdder carry bill rate, pay rate, markup percentage, timesheet period, and invoice reference fields that do not exist as standard Bullhorn Placement fields. Bullhorn's native temp billing is handled by the Bullhorn Middle Office module, which is a separate licensed product. We preserve these fields as Bullhorn custom fields on the Placement record so the data is accessible at the customer's current Bullhorn edition tier. If the customer subsequently licenses Bullhorn Middle Office, the same Placement record can be used with the native payroll module.
JobAdder
Client Portal Activity
Bullhorn ATS & CRM
Submission / Note (manual reconstruction)
1:1The JobAdder Client Portal stores submission history, interview feedback threads, and client comments visible only within the portal interface. This activity log is not exported via standard JobAdder data exports. We migrate the underlying Submission, Candidate, and Job Order records, but the portal-visible feedback thread must be manually captured or reconstructed by the customer. We include this as a pre-migration data-capture task in the project plan and recommend setting up Bullhorn's Client Portal or Client VMS post-migration as the replacement for this workflow.
| JobAdder | Bullhorn ATS & CRM | Compatibility | |
|---|---|---|---|
| Candidate | Candidate1:1 | Fully supported | |
| Job | JobOrder1:1 | Fully supported | |
| Client | Corporation1:1 | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| Placement | Placement1:1 | Fully supported | |
| Opportunity | Opportunity1:1 | Fully supported | |
| User | User1:1 | Fully supported | |
| Task | Task1:1 | Fully supported | |
| Note | Note1:1 | Fully supported | |
| Attachment | Attachment1:1 | Fully supported | |
| Custom Field | Custom Fieldlossy | Fully supported | |
| Tag | Labellossy | Fully supported | |
| Temp / Contract Billing Record | Placement (custom fields)1:1 | Fully supported | |
| Client Portal Activity | Submission / Note (manual reconstruction)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.
JobAdder gotchas
JobAdder's migration timeline is 2–10 weeks for complex data
No public API documentation or published rate limits
Custom pricing tiers gate core ATS features
Temp placement billing fields require explicit mapping
Client Portal activity and feedback threads are not exported
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 JobAdder export
We request a read-only JobAdder database export from the customer, which provides the actual schema and available objects for this migration. We profile record volumes across Candidates, Jobs, Clients, Contacts, Placements, Opportunities, and engagement records. We audit JobAdder custom fields on each entity, temp billing field presence on Placements, active workflow count, and any Client Portal activity threads requiring manual capture. The discovery output is a written migration scope document that confirms the Bullhorn edition required to hold the target data, flags any edition-gated limitations, and defines the cutover date and data-freeze window.
Bullhorn schema pre-creation
Before any data moves, we provision Bullhorn custom fields to receive the JobAdder custom field data on Candidate, JobOrder, and Placement records. We configure Bullhorn pipeline and status values to match the JobAdder pipeline stages, ensuring stage labels and probability values align with the customer's existing workflow. We confirm the Bullhorn edition capabilities with the customer, particularly the Opportunity object availability and custom object limits. The migration user is provisioned in Bullhorn Admin with API and Bulk API permissions so that all object types are writable by the migration script.
Sandbox test migration and reconciliation
We run a full migration into a Bullhorn Sandbox environment using production data volume. The customer's recruitment operations lead reconciles record counts across all object types, spot-checks 25 to 50 randomly selected records against the JobAdder source for field-level accuracy, and validates that temp billing fields, custom fields, and Opportunity records appear correctly in Bullhorn. Any mapping corrections, custom field gaps, or status translation errors are resolved in the Sandbox before production migration begins. This step prevents remediation work after the system of record has switched.
Owner reconciliation and User provisioning
We extract every distinct JobAdder user referenced as an owner on Candidate, Job, Placement, or engagement records and match by email against the Bullhorn destination org User table. Any JobAdder user without a matching Bullhorn User goes to a reconciliation queue for the customer's Bullhorn admin to provision before record import resumes. JobAdder inactive users are migrated as inactive Bullhorn placeholders to preserve assignment history without creating unnecessary active accounts. Migration 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: Corporation (from JobAdder Client), Contact (with Corporation lookup resolved), JobOrder (with status and pipeline mapping), Candidate (pre-parent for all child records), Placement (with Candidate and JobOrder Lookups resolved and temp billing fields on custom fields), Opportunity (edition-confirmed before this phase), Tasks and Notes (via Bulk API with parent record lookup resolution), Attachments (chunked binary transfer), and Custom Objects last. Each phase emits a row-count reconciliation report and an error log before the next phase begins. A delta pass captures any records modified in JobAdder during the migration window.
Cutover, validation, and automation rebuild handoff
We freeze JobAdder writes during cutover, run the final delta migration, and switch the system of record to Bullhorn. We deliver the written inventory of every active JobAdder workflow and automation, the job board posting configuration rebuild checklist, and the Client Portal reconstruction guide. We support a one-week hypercare window where we resolve any data quality issues raised by the customer's team. We do not rebuild JobAdder automations as Bullhorn Automation sequences inside the migration scope; that work is handled by the customer's Bullhorn admin or a Bullhorn implementation partner as a separate engagement.
Platform deep dives
JobAdder
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 JobAdder 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
JobAdder: Not publicly documented.
Data volume sensitivity
JobAdder 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 JobAdder to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.
Walk through your JobAdder 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 JobAdder
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.