HRMS migration
Field-level mapping, validation, and rollback between SmartRecruiters and BambooHR. We move data and schema; workflows are rebuilt natively in BambooHR.
SmartRecruiters
Source
BambooHR
Destination
Compatibility
9 of 12
objects map 1:1 between SmartRecruiters and BambooHR.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from SmartRecruiters to BambooHR is a schema translation from a purpose-built enterprise ATS into an HRIS platform with embedded ATS functionality. SmartRecruiters organizes hiring around Job Postings, Candidates, and Applications with pipeline stages, hiring team assignments, and interview scorecards; BambooHR uses Jobs and Applicants with a simpler hiring workflow that does not natively model pipeline stages or structured evaluator scorecards. We run a mandatory pre-migration custom-field discovery pass against the SmartRecruiters /configuration endpoint because every organization defines its own field schema, then map Candidates to BambooHR Applicants, Job Postings to BambooHR Jobs, and preserve attachment references (resumes, cover letters) against each applicant record. Interview evaluations, hiring team role assignments, and pipeline stage history have no direct BambooHR object; we document these for your admin to recreate manually or adapt to BambooHR's hiring workflow. SmartRecruiters workflows, Hiring Agent automations, and job board distribution rules do not migrate; we deliver a written inventory for your team to rebuild in BambooHR's settings or a third-party scheduling tool.
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 BambooHR, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
SmartRecruiters
Candidate
BambooHR
Applicant
1:1SmartRecruiters Candidate records map to BambooHR Applicant records. The mapping pulls firstName, lastName, email, phone, location (city/state/country), and social profile URLs. Screening answers stored against the candidate profile migrate as custom fields on the BambooHR Applicant if the BambooHR account has matching custom field definitions; otherwise they are flagged for manual entry. Tags and consent decisions are preserved as BambooHR custom fields or applicant notes.
SmartRecruiters
Job Posting
BambooHR
Job
1:1SmartRecruiters Job Postings map to BambooHR Jobs. The job title, location, department (mapped via SmartRecruiters department ID to a BambooHR Department), employment type, and description body transfer directly. SmartRecruiters experience level and job function are mapped to the BambooHR Job Description or stored as custom fields. Active and paused posting status maps to BambooHR open and closed job status. Historical job postings closed before migration land as closed jobs in BambooHR.
SmartRecruiters
Application
BambooHR
Applicant (linked to Job)
1:manySmartRecruiters Applications link a Candidate to a Job Posting and carry pipeline stage, source channel, and application date. In BambooHR, the Application is represented by the Applicant record itself linked to a Job, rather than as a separate application object. We map the SmartRecruiters application date to the BambooHR Applicant submission date, source to a custom field, and pipeline stage to a custom field or hiring stage if BambooHR's Applicant Tracking is configured with stages. SmartRecruiters Application status of Hired maps to BambooHR's Hire Completed workflow trigger.
SmartRecruiters
Custom Fields
BambooHR
Custom Fields
1:1SmartRecruiters custom fields are organization-scoped with no standard set; they are only discoverable at runtime via the /configuration endpoint. We run a mandatory pre-migration discovery pass to enumerate every SmartRecruiters custom field (fieldId, valueLabel pairs) before mapping begins. Each discovered field is then evaluated against the destination BambooHR account's existing custom field definitions. New BambooHR custom fields are created in the applicant's field set before import to prevent silent value loss during insert.
SmartRecruiters
User (Recruiter, Hiring Manager)
BambooHR
User
1:1SmartRecruiters User records (recruiters, hiring managers, admins) map to BambooHR Users by email address. Role assignments (recruiter versus hiring manager) are preserved in a custom field on the BambooHR User or in the BambooHR Job requester field. A SmartRecruiters User without a matching BambooHR User is held in a reconciliation queue for the customer's admin to provision the account before record import proceeds.
SmartRecruiters
Department
BambooHR
Department
1:1SmartRecruiters Departments are referenced by ID and label on Job Postings and carry a description. We map the department ID-to-label and look up the corresponding Department in BambooHR (created during BambooHR onboarding) to assign the correct department reference on each migrated Job. If a SmartRecruiters Department has no BambooHR equivalent, it is created as a new BambooHR Department before job migration begins.
SmartRecruiters
Attachment (Resume, Cover Letter)
BambooHR
Attachment (file linked to Applicant)
1:1Candidate attachments from SmartRecruiters (resumes, cover letters, portfolio files) are downloaded via the SmartRecruiters Attachment API and re-uploaded as files linked to the corresponding BambooHR Applicant record. File names and MIME types are preserved. SmartRecruiters does not expose attachment content as base64 in all API responses; we use the /attachments/{attachmentId}/content endpoint with streaming retrieval to avoid incomplete file pulls on large binary files.
SmartRecruiters
Scorecard
BambooHR
Note or Custom Field
lossySmartRecruiters Interview Scorecards capture structured evaluation data (rating, strengths, concerns, recommendation) embedded in candidate evaluation records. BambooHR has no native scorecard object. We export scorecard data as structured notes attached to the BambooHR Applicant, with a template format (Evaluator Name, Date, Rating, Recommendation, Comments) so the evaluation content remains readable. We flag this as a manual-handoff item for your admin to rebuild in BambooHR's hiring notes or a third-party evaluation tool.
SmartRecruiters
Hiring Team (per-job role assignment)
BambooHR
Job Owner / Requester
lossySmartRecruiters assigns per-job hiring team members with roles (recruiter, hiring manager, interviewer, sourcer). BambooHR's job structure supports a single job owner and a requester field but does not have structured multi-role team assignment. We map the SmartRecruiters hiring team to a combination of BambooHR job ownership and a custom multi-select field listing the team members and roles. This is documented during migration for your admin to finalize in BambooHR's job settings.
SmartRecruiters
Interview Record
BambooHR
Note
1:1SmartRecruiters Interview Records include scheduling information, interviewer assignments, date and time, and outcome notes. We map interview date, interviewer name, and disposition to a formatted note attached to the BambooHR Applicant. SmartRecruiters scheduling links (calendar invites) do not migrate as functional calendar events; they are preserved as reference links in the interview note.
SmartRecruiters
Offer
BambooHR
Note (on Applicant)
1:1SmartRecruiters Offer records include compensation details, status, and candidate linkage. BambooHR has no standalone Offer object. We map offer status (extended, accepted, declined, withdrawn) and compensation details to formatted notes on the BambooHR Applicant record. Offer status of Accepted can be used to pre-populate the BambooHR Hire Completed workflow trigger.
SmartRecruiters
Questionnaire / Screening Answers
BambooHR
Custom Field
1:1SmartRecruiters supports structured screening questions on job postings and applications. Screening answers stored at the application level migrate as custom fields on the BambooHR Applicant. The mapping is field-by-field: each SmartRecruiters screening question maps to a BambooHR custom field of the matching type (text, select, or checkbox). If the BambooHR account does not have the corresponding custom field, we create it during the pre-migration schema setup phase.
| SmartRecruiters | BambooHR | Compatibility | |
|---|---|---|---|
| Candidate | Applicant1:1 | Fully supported | |
| Job Posting | Job1:1 | Fully supported | |
| Application | Applicant (linked to Job)1:many | Fully supported | |
| Custom Fields | Custom Fields1:1 | Mapping required | |
| User (Recruiter, Hiring Manager) | User1:1 | Fully supported | |
| Department | Department1:1 | Fully supported | |
| Attachment (Resume, Cover Letter) | Attachment (file linked to Applicant)1:1 | Fully supported | |
| Scorecard | Note or Custom Fieldlossy | Fully supported | |
| Hiring Team (per-job role assignment) | Job Owner / Requesterlossy | Fully supported | |
| Interview Record | Note1:1 | Fully supported | |
| Offer | Note (on Applicant)1:1 | Fully supported | |
| Questionnaire / Screening Answers | Custom Field1: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.
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
BambooHR gotchas
Undocumented API rate limits can trigger 503 errors
Per-employee pricing model requires active record count verification
API credentials must be sent on every request to avoid extra round trips
Custom field schema varies per account and requires manual inventory
Document and attachment exports are not covered by standard report exports
Pair-specific challenges
Migration approach
Pre-migration audit and schema discovery
We audit the source SmartRecruiters account: enumerating all Job Postings, Candidates, Applications, Users, Departments, and Hiring Teams via the Candidate API, Job API, and Application API with OAuth 1.0 authentication. We run the mandatory custom field discovery pass against /configuration to surface every organization-scoped custom field and its permitted values. We also extract attachment metadata to size the file migration scope. This audit output is a written data inventory (record counts per object, custom field list, attachment count and total size) used to build the migration scope and pricing proposal.
BambooHR destination setup and custom field provisioning
We review the destination BambooHR account's existing configuration: Department list, custom Applicant fields, User accounts, and ATS settings. Any SmartRecruiters custom fields that do not have a BambooHR equivalent are created as custom fields on the BambooHR Applicant object before migration begins. We configure BambooHR Hiring stages to approximate the SmartRecruiters pipeline stages where the stage count allows. We reconcile SmartRecruiters Users against BambooHR Users by email to identify any missing accounts that the customer's admin must provision before the production migration window.
Sandbox migration and reconciliation
We run a full migration into a BambooHR sandbox or a staging environment, loading all Job Postings, Candidates, Applications, and attachments. The customer's HR lead spot-checks 20-30 records per object against the SmartRecruiters source to validate field-level accuracy, attachment presence, and department/job linkage. Any mapping corrections (wrong field mapping, missing custom fields, incorrect department assignment) are documented and corrected before production migration begins. This step prevents mapping errors from landing in the production BambooHR account.
Production migration in dependency order
We run production migration in record-dependency order. Jobs are migrated first (because BambooHR Applicants link to Jobs). Candidates are migrated second, with the SmartRecruiters application stage preserved in a custom field and the application date set on the Applicant record. Custom field values are loaded as a separate phase against the already-inserted Applicant records using BambooHR's custom field API. Attachments (resumes, cover letters) are migrated last, linked to the corresponding Applicant by email match. Hiring team assignments, scorecards, interview records, and offers are exported as formatted notes on the relevant Applicant record since BambooHR has no native objects for these.
Cutover, delta migration, and documentation handoff
We freeze SmartRecruiters write access during cutover and run a final delta migration of any candidates or applications that were created or updated after the initial export timestamp. We enable BambooHR as the system of record for recruiting and deliver a written migration inventory covering all objects migrated, all objects flagged as unrecoverable (scorecards, hiring team roles, pipeline stages, job board distribution rules), and all SmartRecruiters workflows and Hiring Agent automations requiring rebuild in BambooHR settings or a third-party scheduling tool. We support a one-week hypercare window for reconciliation issues raised by your team during live use.
Platform deep dives
SmartRecruiters
Source
Strengths
Weaknesses
BambooHR
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 BambooHR.
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 BambooHR migration scoping. Not seeing yours? Book a call.
Walk through your SmartRecruiters to BambooHR 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 BambooHR
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.