HRMS migration
Field-level mapping, validation, and rollback between SmartRecruiters and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.
SmartRecruiters
Source
Bullhorn ATS & CRM
Destination
Compatibility
9 of 12
objects map 1:1 between SmartRecruiters and Bullhorn ATS & CRM.
Complexity
BStandard
Timeline
4-6 weeks
Overview
Moving from SmartRecruiters to Bullhorn is a structural migration across two fundamentally different ATS philosophies. SmartRecruiters is an enterprise hiring platform built for high-volume corporate recruiting with deep SAP SuccessFactors integration; Bullhorn is an agency-focused ATS and CRM that combines candidate tracking with client relationship management in a single platform. The primary migration challenge is reconciling SmartRecruiters organization-scoped custom fields against Bullhorn's Custom Object structure, which requires Bullhorn Support ticket provisioning and is edition-gated. We run a mandatory pre-migration discovery pass against the SmartRecruiters /configuration endpoint to enumerate every custom field before any mapping begins. Application pipeline stages migrate with a two-step approach: candidates land in Bullhorn JobSubmission in New status, then we trigger a separate update call to advance them to the correct pipeline stage since the Bullhorn REST API does not support direct stage assignment on creation. We do not migrate SmartRecruiters Hiring Agent workflows, automated screening rules, or job board distribution configurations; we deliver a written inventory of these for the customer's team to rebuild in Bullhorn.
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 SmartRecruiters 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.
SmartRecruiters
Job Posting
Bullhorn ATS & CRM
Job (JobOrder)
1:1SmartRecruiters Posting records map to Bullhorn JobOrder. We preserve the refNumber, job title, description, and typeOfEmployment. Location maps to Bullhorn's address fields and city/state/country. The SmartRecruiters experienceLevel maps to a Bullhorn custom field since JobOrder does not have a native experience level field. Department reference is preserved as a text label in a custom field since Bullhorn Jobs do not have a native department link. Any active posting status in SmartRecruiters becomes a Bullhorn Job with status = 'Open'.
SmartRecruiters
Candidate
Bullhorn ATS & CRM
Candidate
1:1SmartRecruiters Candidate records map directly to Bullhorn Candidate. Required fields (firstName, lastName, email) transfer directly. Phone, address, social profiles (LinkedIn URL), and tags migrate to corresponding Bullhorn Candidate fields. We deduplicate by email during import. Candidate history and source attribution migrate to Bullhorn Candidate custom fields.
SmartRecruiters
Application
Bullhorn ATS & CRM
JobSubmission
1:manySmartRecruiters Application records (linking Candidate to Posting) map to Bullhorn JobSubmission. Bullhorn's REST API only creates JobSubmission in New status; we run a two-step import where records land as New then advance to the target pipeline stage via a separate API call using the JobSubmission ID. The SmartRecruiters application date becomes the Bullhorn dateAdded. Screening answers migrate as JobSubmission custom fields.
SmartRecruiters
Custom Field (organization-scoped)
Bullhorn ATS & CRM
Custom Object (1-10, edition-dependent)
lossySmartRecruiters organization-scoped custom fields (discovered via /configuration endpoint) map to Bullhorn Custom Objects. Bullhorn requires Custom Objects to be provisioned via Bullhorn Support ticket before any API import; we coordinate this during scoping. Edition limits apply: Front Office Growth/Enterprise gets 10 Custom Objects with 55 fields each; Bullhorn ATS gets 2; ATS Growth gets none. Field types (text, drop-down, checkbox) map from SmartRecruiters fieldId/valueId structure to Bullhorn edit types. This is the highest-risk mapping step and requires pre-migration field discovery.
SmartRecruiters
Department
Bullhorn ATS & CRM
Department (Bullhorn Entity)
1:1SmartRecruiters Department records (with description and label) map to Bullhorn Department entities. Bullhorn Department is a standard entity in the ATS and CRM modules. We preserve the department label and ID so that job postings reference the correct Bullhorn Department. Note that Bullhorn Jobs do not natively reference Department; we use a custom field on JobOrder to maintain the link.
SmartRecruiters
User (Hiring Team member)
Bullhorn ATS & CRM
User
1:1SmartRecruiters User records (recruiters, hiring managers, admins) map to Bullhorn User. We match by email as the dedupe key. Bullhorn requires User provisioning by a Bullhorn Admin or through Bullhorn Support for initial setup. We resolve all User references on Candidate, Job, and Application records before migration. Any SmartRecruiters User without a Bullhorn User counterpart goes to a reconciliation queue.
SmartRecruiters
Hiring Team (per-job assignment)
Bullhorn ATS & CRM
User Assignment on JobSubmission
1:1SmartRecruiters hiring team assignments (userId with role per job) map to Bullhorn JobSubmission assignments and JobOrder owner relationships. The recruiter role migrates to the Bullhorn User assigned as the primary recruiter on the Job. Hiring manager visibility is preserved via Bullhorn User assignment on the JobSubmission. Role labels (interviewer, screener, approver) migrate as JobSubmission custom fields since Bullhorn does not have a native role per assignment.
SmartRecruiters
Scorecard
Bullhorn ATS & CRM
Note (attached to JobSubmission)
1:1SmartRecruiters Scorecards (structured evaluation data embedded in candidate/evaluation records) map to Bullhorn Note records attached to the JobSubmission. We extract the evaluation score, recommendation, and interviewer name into a structured note format that preserves the evaluation history. If the destination Bullhorn edition supports Bullhorn Automation for scorecard workflows, we note this for the customer's admin to configure post-migration.
SmartRecruiters
Interview Record
Bullhorn ATS & CRM
Appointment (Event)
1:1SmartRecruiters Interview records (scheduling, interviewer assignments, outcome notes) map to Bullhorn Event (Appointment) records linked to the Candidate and JobSubmission. Interview dates, times, locations, and dispositions migrate directly. Interviewer names resolve to Bullhorn User IDs where possible; unresolved interviewers are recorded as text in the event description. Outcome status (completed, cancelled, no-show) migrates as an Event custom field.
SmartRecruiters
Offer
Bullhorn ATS & CRM
Placement (partial) + Custom Fields
1:1SmartRecruiters Offer records (compensation, status, candidate linkage) migrate to Bullhorn as Placement records with offer compensation fields in Bullhorn's standard Placement object plus custom fields for offer-specific data (offer date, offer letter reference, start date). Note that Bullhorn Placement is typically created after a candidate is placed; we create the Placement record during migration to preserve offer history even if the offer was not accepted or the placement was not completed. Status (extended, accepted, declined, withdrawn) maps directly.
SmartRecruiters
Attachment (Candidate)
Bullhorn ATS & CRM
Attachment (Bullhorn)
1:1SmartRecruiters candidate attachments (resumes, cover letters, portfolio files) stored against the candidate profile migrate to Bullhorn Attachments linked to the Candidate record. We use Bullhorn's Attachment API with file type and description preserved. Large attachments may require chunked upload via Bullhorn's REST API. We verify each attachment link after migration by checking the file reference in Bullhorn.
SmartRecruiters
Assessment
Bullhorn ATS & CRM
Custom Fields on JobSubmission or Candidate
lossySmartRecruiters Assessment packages ordered via /packages are integration-specific and may not have a direct Bullhorn equivalent. We migrate assessment order records (assessment type, order date, status) as custom fields on the relevant JobSubmission. Active assessment status (pending, completed, failed) migrates as a custom picklist field. If the customer uses a specific assessment partner that also integrates with Bullhorn, we coordinate with that partner during migration scoping.
| SmartRecruiters | Bullhorn ATS & CRM | Compatibility | |
|---|---|---|---|
| Job Posting | Job (JobOrder)1:1 | Fully supported | |
| Candidate | Candidate1:1 | Fully supported | |
| Application | JobSubmission1:many | Fully supported | |
| Custom Field (organization-scoped) | Custom Object (1-10, edition-dependent)lossy | Fully supported | |
| Department | Department (Bullhorn Entity)1:1 | Fully supported | |
| User (Hiring Team member) | User1:1 | Fully supported | |
| Hiring Team (per-job assignment) | User Assignment on JobSubmission1:1 | Fully supported | |
| Scorecard | Note (attached to JobSubmission)1:1 | Fully supported | |
| Interview Record | Appointment (Event)1:1 | Fully supported | |
| Offer | Placement (partial) + Custom Fields1:1 | Fully supported | |
| Attachment (Candidate) | Attachment (Bullhorn)1:1 | Fully supported | |
| Assessment | Custom Fields on JobSubmission or Candidatelossy | 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.
SmartRecruiters gotchas
Custom field schema discovery is required before any migration can begin
SAP acquisition integration may alter data residency and API access patterns
Candidate API only creates applications in New status via public endpoint
Large report file exports require command-line tools, not browser download
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 scope definition
We audit the source SmartRecruiters tenant across active job postings, candidate records, application volumes, and custom field definitions using the /configuration endpoint. We enumerate every organization-scoped custom field and its permitted values during this phase. We assess the Bullhorn destination edition (Starter, Core, Pro, or Bullhorn Recruitment Cloud) and verify Custom Object limits against the discovered custom field count. If the SmartRecruiters tenant uses SAP SuccessFactors integration, we flag any SAP-side data residency implications. The discovery output is a written migration scope document covering record counts, custom field mapping design, and Bullhorn edition recommendation.
Custom Object provisioning coordination
Bullhorn Custom Objects must be provisioned by Bullhorn Support before API import. We work with the customer's Bullhorn Support contact to submit the Custom Object Setup Spreadsheet specifying display names, field types (up to 55 fields per Custom Object, edit-type limits apply), and department-level visibility rules. This step typically takes 5-10 business days and runs in parallel with other scoping activities. We confirm Custom Object availability in the destination Bullhorn org before proceeding to data mapping.
Schema design and mapping document
We design the Bullhorn destination schema including standard fields, custom fields (mapped from SmartRecruiters custom fields), department entities, and user role structure. Pipeline stage mapping is defined using a table that aligns each SmartRecruiters application stage to a Bullhorn JobSubmission status value. We document the two-step import approach for application stages (New status on create, then stage update call). The mapping document covers every object in scope with field-level transform rules and is reviewed by the customer's Bullhorn admin before migration begins.
Sandbox migration and reconciliation
We run a full migration into the Bullhorn Sandbox (Full Copy or Partial Copy) using production-like data volume. The customer's team reconciles record counts (Candidates in, Jobs in, Applications in, Attachments in), spot-checks 25-50 random records against the SmartRecruiters source, and validates the pipeline stage mapping. Bullhorn Custom Object field data is verified against SmartRecruiters custom field values. Any mapping corrections, field type mismatches, or stage mapping issues are resolved in the Sandbox before production migration begins.
Owner reconciliation and user provisioning
We extract every distinct SmartRecruiters User referenced on Candidate, Job, and Application records and match by email against the Bullhorn destination org's User table. Bullhorn requires User provisioning by a Bullhorn Admin; we identify any SmartRecruiters Users without Bullhorn counterparts and escalate to the customer's Bullhorn Admin for provisioning. Migration cannot proceed past this step because User references on Job and Application records require valid Bullhorn User IDs. Hiring team role assignments are resolved at this stage.
Production migration in dependency order
We run production migration in record-dependency order: Departments (prerequisite for Job references), Users (validated from reconciliation), Jobs (from SmartRecruiters Postings with location and description preserved), Candidates (deduped by email), Applications via two-step JobSubmission import (New status then stage update), Attachments (linked to Candidates), Interview Records as Events, Scorecards as Notes, Offers as Placement records with custom fields, and Custom Object data (last, after Bullhorn Support confirms Custom Object availability). Each phase emits a row-count reconciliation report before the next phase begins. We use Bullhorn REST API with rate-limit handling and exponential backoff for all inserts.
Cutover, validation, and workflow handoff
We freeze SmartRecruiters write access 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 SmartRecruiters job board distribution and Hiring Agent workflow inventory document to the customer's admin team for rebuild using Bullhorn Automation or a Bullhorn Marketplace partner. We support a one-week hypercare window where we resolve any reconciliation issues raised by the customer's recruiting team. We do not rebuild SmartRecruiters workflows, screening rules, or automations in Bullhorn as part of standard migration scope; that is a separate engagement.
Platform deep dives
SmartRecruiters
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 SmartRecruiters 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
SmartRecruiters: Not publicly documented on the developer portal.
Data volume sensitivity
SmartRecruiters 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 SmartRecruiters to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.
Walk through your SmartRecruiters 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 SmartRecruiters
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.