HRMS migration
Field-level mapping, validation, and rollback between Smart Hire and BambooHR. We move data and schema; workflows are rebuilt natively in BambooHR.
Smart Hire
Source
BambooHR
Destination
Compatibility
7 of 10
objects map 1:1 between Smart Hire and BambooHR.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Smart Hire to BambooHR is a migration from a CSV-first ATS focused on AI screening and psychometrics to a unified HRIS with native ATS, payroll, and performance management. Smart Hire exports are primarily CSV downloads rather than a documented REST API, which requires us to automate the download-and-parse workflow, validate field completeness during profiling, and normalize assessment scores before loading into BambooHR's custom fields. We preserve associations between candidates and job openings throughout the migration by reconstructing foreign key links across Smart Hire's separate export files. BambooHR's applicant tracking system is available on Pro and above plans ($17/employee/month) as a native module rather than a separate ATS purchase, which affects how job application data lands in the destination schema. Custom fields in BambooHR must be provisioned in the admin panel before migration, so we scope that step before any data loads. Workflows, email templates, and career site configurations from Smart Hire do not migrate; we deliver a written inventory of these for the customer's admin to rebuild in BambooHR.
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 Smart Hire 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.
Smart Hire
Candidate
BambooHR
Employee
1:1Smart Hire candidate records map to BambooHR Employee. Contact details (name, email, phone, address), work history, education, and application status transfer as standard BambooHR employee fields. Smart Hire's main profile and any linked screening session data are combined into a single employee record, with screening notes stored in BambooHR's Notes tab or a custom Employee custom field.
Smart Hire
Candidate
BambooHR
Applicant (via Jobs module)
1:1Smart Hire candidate application records map to BambooHR Applicants linked to BambooHR Job records. The candidate's application status (Applied, Screening, Interview, Offer, Hired) maps to the BambooHR applicant status vocabulary. If BambooHR's ATS module is not enabled on the destination account, candidates migrate as Employee records only and job association is stored via a custom field.
Smart Hire
Job Opening
BambooHR
Job
1:1Smart Hire job openings (title, department, location, description) map directly to BambooHR Jobs. We preserve the job's open/closed status and map any Smart Hire pipeline stage configuration to the BambooHR job's internal stage list. Job posting URL and job board distribution references migrate as text fields on the Job record.
Smart Hire
Screening Session
BambooHR
Note or Custom Field
1:manySmart Hire screening sessions are stored as linked records connecting a candidate to a specific assessment round. We export all session metadata (session date, type, round number, outcome) and re-attach it to the corresponding candidate's employee record in BambooHR. If multiple screening sessions exist for a single candidate, we aggregate them into a session history note or a custom multi-value field, depending on the volume.
Smart Hire
Psychometric Assessment
BambooHR
Employee Document or Custom Field
lossyAssessment scores in Smart Hire's internal scale format require normalization before loading into BambooHR because BambooHR has no native psychometric module. We map raw scores, percentile ranks, and competency scores to typed custom fields on the Employee record (number fields for scores, text fields for competency labels). We validate score ranges during pre-migration profiling to catch improperly formatted assessment data.
Smart Hire
Custom Property (Candidate)
BambooHR
Custom Field (Employee)
1:1Smart Hire custom properties on candidate records map to BambooHR custom fields on the Employee object. We detect the source field type during profiling (date, number, text, checkbox) and create a matching typed custom field in BambooHR before migration. If a custom property references a deleted or archived Smart Hire option value, we flag it for manual review. Custom fields must be provisioned in BambooHR admin before the production migration phase begins.
Smart Hire
Custom Property (Job Opening)
BambooHR
Custom Field (Job)
1:1Smart Hire custom properties on job openings map to BambooHR custom fields on the Job object. These follow the same provisioning workflow as employee custom fields: type detection during profiling, schema creation in BambooHR admin, then data migration in the production phase. Job-level custom fields typically include hiring manager, department head, requisition approval status, or internal job code.
Smart Hire
Attachment (Resume)
BambooHR
Employee File
1:1Resumes and supporting documents linked to Smart Hire candidate records migrate as files attached to the corresponding BambooHR Employee record. We export binary assets via the authenticated session, rename files to follow a consistent convention (CandidateName_DocumentType_date), and upload via BambooHR's file attachment API or direct file reference.
Smart Hire
User
BambooHR
User
1:1Smart Hire user accounts (hiring managers, recruiters, admins) map to BambooHR User records. We extract the user email, name, and role assignment and match by email against the BambooHR destination account's User table. Role terminology differs between platforms: Smart Hire role labels map to BambooHR role and permission set assignments during scoping.
Smart Hire
Pipeline Stage
BambooHR
Job Stage
lossySmart Hire pipeline stages (Applied, Screening, Interview, Offer, Hired) map to BambooHR job applicant stages. We extract the full stage configuration from Smart Hire including stage ordering and any conditional stage-routing rules, then configure the matching stage list in BambooHR Jobs. If the destination account uses a customized stage vocabulary, we remap names during the migration transform.
| Smart Hire | BambooHR | Compatibility | |
|---|---|---|---|
| Candidate | Employee1:1 | Fully supported | |
| Candidate | Applicant (via Jobs module)1:1 | Fully supported | |
| Job Opening | Job1:1 | Fully supported | |
| Screening Session | Note or Custom Field1:many | Fully supported | |
| Psychometric Assessment | Employee Document or Custom Fieldlossy | Fully supported | |
| Custom Property (Candidate) | Custom Field (Employee)1:1 | Fully supported | |
| Custom Property (Job Opening) | Custom Field (Job)1:1 | Fully supported | |
| Attachment (Resume) | Employee File1:1 | Fully supported | |
| User | User1:1 | Fully supported | |
| Pipeline Stage | Job Stagelossy | 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.
Smart Hire gotchas
Export mechanism is CSV-based, not REST API
Assessment score normalization requires field mapping
Custom fields may be untyped in CSV exports
Candidate-to-job associations can split during multi-file exports
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
Discovery and export profiling
We audit the Smart Hire admin portal to enumerate all record types in scope: candidate records, job openings, screening sessions, psychometric assessment exports, custom property schemas, and user accounts. We run trial CSV exports across each view (candidates, jobs, applications, users) to understand file structure, field headers, ID references across files, and any pagination or filter artifacts in the output. The discovery output is a written migration scope document with a complete field mapping draft, a list of custom fields to provision in BambooHR, and a confirmation of the BambooHR plan tier and ATS module status.
BambooHR schema provisioning
We create all required custom fields in the BambooHR admin panel before any data migration. This includes employee custom fields for assessment scores, screening session notes, and any candidate-level custom properties; job custom fields for requisition metadata; and any custom tabs or tables needed to replicate Smart Hire's data structure. We also confirm ATS module status on the destination account and configure job stage lists matching Smart Hire's pipeline vocabulary. Schema provisioning is validated by attempting a test employee creation via the BambooHR API with all custom fields populated before the production migration begins.
CSV parsing, type coercion, and transform
We parse all Smart Hire CSV exports using the field headers discovered during profiling. Type mismatches (dates stored as text, numbers stored as strings, empty strings where null is expected) are corrected during this phase. Assessment scores are normalized to the numeric or text format agreed upon during scoping. Candidate-to-job associations are reconstructed by matching foreign key IDs across the candidate export and the application/job export. Custom properties are mapped to their corresponding destination custom field IDs. The transform output is a set of typed, validated CSV files ready for BambooHR API ingestion.
Sandbox validation (optional)
If the customer requests validation before production migration, we run a sandbox migration using a cloned dataset representative of the full volume. The customer's HR lead spot-checks 25-50 candidate records against the Smart Hire source, verifies job association integrity, confirms assessment score accuracy, and signs off the sandbox results. Any mapping corrections are applied to the transform pipeline before the production migration phase begins. Sandbox validation adds approximately one week to the timeline.
Production migration in dependency order
We run production migration in record-dependency order: BambooHR Users (validated against the destination User table by email match), Employees (candidate data loaded with custom fields), Jobs (job openings loaded with custom fields), Employee Files (resume and document attachments linked to the corresponding employee), then screening session and assessment data (written to custom fields or notes on the employee record). Each phase emits a row-count reconciliation report showing records attempted, records succeeded, and any errors requiring remediation. BambooHR API rate limits are handled with exponential backoff and batch chunking throughout.
Cutover, validation, and inventory handoff
We freeze Smart Hire writes during cutover and run a final delta migration of any records modified during the migration window. We perform a final reconciliation comparing Smart Hire record counts to BambooHR record counts for each object type. We deliver the migration inventory document listing all active workflows, email templates, career site configurations, and any automation logic in Smart Hire that requires rebuild in BambooHR. We support a one-week post-migration hypercare window for reconciliation issues. We do not rebuild Smart Hire workflows, email templates, or career sites inside the migration scope; these are documented for the customer's admin to rebuild as a separate task.
Platform deep dives
Smart Hire
Source
Strengths
Weaknesses
BambooHR
Destination
Strengths
Weaknesses
Complexity grading
Standard HRMS migration. All 7 core objects map 1:1 between Smart Hire and BambooHR.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Smart Hire and BambooHR.
Object compatibility
All 7 core objects map 1:1 between Smart Hire and BambooHR.
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
Smart Hire: Not publicly documented.
Data volume sensitivity
Smart Hire 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 Smart Hire to BambooHR migration scoping. Not seeing yours? Book a call.
Walk through your Smart Hire 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 Smart Hire
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.