HRMS migration
Field-level mapping, validation, and rollback between ZenApply and BambooHR. We move data and schema; workflows are rebuilt natively in BambooHR.
ZenApply
Source
BambooHR
Destination
Compatibility
7 of 10
objects map 1:1 between ZenApply and BambooHR.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from ZenApply to BambooHR is a migration from a niche video-first ATS to a full-featured HRIS. ZenApply has no public REST API and relies on CSV exports, which means the migration begins with a structured admin-led discovery session to enumerate every custom field before any export is run. We download video resume URLs to temporary storage during the migration window before the source account is deactivated, then re-upload to BambooHR or a linked media host. The core data model shifts: ZenApply's Candidate and Application objects map to BambooHR's Employee record structure, with application history preserved as employment records or candidate archives depending on whether the hire was successful. Custom profile fields from ZenApply require field-by-field discovery and are recreated as BambooHR custom fields. Hiring team User records map to BambooHR Employees. We do not migrate ZenApply workflows or scorecard templates as code; we deliver a written inventory for the customer's admin to rebuild in BambooHR's native tools.
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 ZenApply 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.
ZenApply
Candidate (Applicant)
BambooHR
Employee
1:1ZenApply Candidates with no associated Application (unhired applicants) map to BambooHR Employees in a candidate archive status. Successful hires with an Application status of Hired map to BambooHR Employees with an active employment record. We map standard fields (name, email, phone) directly and recreate any discovered custom profile fields as BambooHR custom fields with matching field types before import. The mapping requires a pre-import schema reconciliation because BambooHR enforces field-type constraints that CSV exports do not surface.
ZenApply
Application
BambooHR
Employment (Job Application / Onboarding Record)
1:1ZenApply Applications link a Candidate to a Job and carry status history (Applied, Screening, Interview, Offer, Hired, Rejected). We map Application status to BambooHR application stage or to onboarding workflow status depending on the hiring outcome. Submission date and source attribution are preserved as custom fields or notes on the Employee record. The application source field (referral, job board, direct) migrates as a text field since BambooHR does not have a native application source taxonomy.
ZenApply
Job (Position)
BambooHR
BambooHR Job Opening (ATS module)
1:1ZenApply Job records map to BambooHR Job Openings. The Job title, description, department, and status (Open, Closed, Draft) migrate directly. Salary band data is not included in the standard CSV export unless manually added by the ZenApply admin during export preparation, so we flag this gap in the pre-export checklist and ask the customer to confirm whether salary range fields are present before migration begins. Closed positions are migrated as inactive job records.
ZenApply
Video Profile
BambooHR
External Media Host (URL reference on Employee)
lossyZenApply video resume assets are hosted as URLs pointing to ZenApply's media infrastructure. We download each video to temporary storage during the migration window (before the source account is deactivated), re-upload to the customer's preferred media host (YouTube, Vimeo, or internal file storage), and store the final URL as a custom text field on the corresponding BambooHR Employee record. This step adds 1-2 days per 100 video assets to the migration timeline. We validate every final URL in BambooHR before the source account is closed.
ZenApply
Interview Scorecard
BambooHR
Note or Custom Field on Employee
lossyZenApply scorecard data (ratings, reviewer comments, overall recommendation) is linked to Applications and Interviewers. We preserve the scorecard structure as a formatted Note attached to the Employee record, with individual ratings migrated as custom fields if the scorecard has a consistent template. If the scorecard uses free-form reviewer comments only, those are migrated as text notes. Scorecard templates themselves do not migrate as code; we document the template structure for the customer to recreate in BambooHR's custom form builder.
ZenApply
User (Hiring Team)
BambooHR
Employee (with user access)
1:1ZenApply User records include name, email, and role (Admin, Hiring Manager, Recruiter). We map Users to BambooHR Employee records with matching email. BambooHR access is provisioned by the customer's admin during or after migration; we provide a user provisioning checklist mapping each ZenApply role to the equivalent BambooHR permission set. Any unrecognised ZenApply role types are flagged in the discovery report for the admin to resolve.
ZenApply
Attachment (Resume, Cover Letter, Portfolio)
BambooHR
BambooHR File (attached to Employee)
1:1Document attachments are exported as file URLs from ZenApply. We download each file, preserve the original filename and MIME type, and re-upload to BambooHR's file storage attached to the corresponding Employee record. Resume files are attached to the Documents tab of the Employee profile. We validate file integrity (MD5 checksum) after re-upload to confirm no data loss during the transfer.
ZenApply
Custom Profile Field
BambooHR
Custom Field (on Employee)
lossyZenApply allows organisations to create custom fields on candidate profiles per position or globally. There is no admin-visible schema export, so we conduct a structured discovery questionnaire with the customer's admin, walking through every active position's application form and the candidate profile editor to enumerate all custom field names and their value types (text, number, date, dropdown). We pre-create matching custom fields in BambooHR before any data loads. Fields missed during discovery will not appear in BambooHR; we use a field count reconciliation step to close this gap.
ZenApply
Application Source Attribution
BambooHR
Custom Text Field on Employee
1:1ZenApply tracks how candidates found the job (referral, job board, direct application, agency). This attribution data lives on the Application record. We map it to a custom text field on the BambooHR Employee record labeled Original Application Source. BambooHR does not have a native application source taxonomy, so the field is free-text. If the customer uses a structured source taxonomy in ZenApply, we create a dropdown custom field in BambooHR with matching values to preserve reporting consistency.
ZenApply
Candidate Note / Free-text Profile
BambooHR
Note on Employee
1:1ZenApply free-form notes attached to candidate profiles (recruiter comments, interview observations) migrate as BambooHR Notes attached to the Employee record. Notes preserve the original timestamp and author name from ZenApply. Long-form profile content that exceeds standard note length is split across multiple Note records with a sequence identifier.
| ZenApply | BambooHR | Compatibility | |
|---|---|---|---|
| Candidate (Applicant) | Employee1:1 | Fully supported | |
| Application | Employment (Job Application / Onboarding Record)1:1 | Fully supported | |
| Job (Position) | BambooHR Job Opening (ATS module)1:1 | Fully supported | |
| Video Profile | External Media Host (URL reference on Employee)lossy | Fully supported | |
| Interview Scorecard | Note or Custom Field on Employeelossy | Fully supported | |
| User (Hiring Team) | Employee (with user access)1:1 | Fully supported | |
| Attachment (Resume, Cover Letter, Portfolio) | BambooHR File (attached to Employee)1:1 | Fully supported | |
| Custom Profile Field | Custom Field (on Employee)lossy | Fully supported | |
| Application Source Attribution | Custom Text Field on Employee1:1 | Fully supported | |
| Candidate Note / Free-text Profile | Note on Employee1: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.
ZenApply gotchas
No public API schema or documented export endpoints
Video media assets stored as URLs, not files
Custom profile fields are customer-specific and require manual discovery
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 CSV export preparation
We conduct a structured discovery session with the ZenApply admin to enumerate all active jobs, positions, custom profile fields, scorecard templates, and hiring team users. We provide a pre-export checklist that instructs the admin on which views to enable in the CSV export to include all visible fields. We specifically call out salary band fields, video URL columns, and any per-position custom fields that may not appear in the default global export. We also identify the media host the customer will use for video assets post-migration. The discovery output is a written scope document with a confirmed field inventory and a per-object record count estimate.
Video asset download and staging
We download all video resume assets from ZenApply-hosted URLs to temporary encrypted cloud storage. Each file is renamed with the candidate's email or unique identifier to preserve the link to the BambooHR Employee record. We validate file integrity with MD5 checksums and generate a manifest mapping each source URL to the staged file. This step runs concurrently with any BambooHR schema configuration and must complete before the ZenApply account deactivation date.
BambooHR schema setup and custom field creation
We create the BambooHR schema before any data loads. This includes provisioning custom fields on the Employee object for every discovered ZenApply custom profile field, matching value types (text, number, date, dropdown). We also create the Job Openings structure, department taxonomy, and any custom fields needed for application source attribution. Custom field creation requires BambooHR admin credentials and is done in a staging environment before production migration begins. We validate that all custom field types are correct by test-importing a small sample of records.
CSV extraction, transformation, and reconciliation
We extract CSV files from ZenApply for each object (Candidates, Applications, Jobs, Users, Attachments). We transform the data: status values are normalised to match BambooHR's expected values, date formats are standardised to ISO 8601, email addresses are validated for uniqueness, and video URL references are replaced with the staged media host URLs from the download manifest. We generate a reconciliation report comparing record counts in the CSV against the discovery estimate. Any discrepancy greater than 5% triggers a re-export request before loading proceeds.
BambooHR data load and video re-upload
We load data into BambooHR in dependency order: Employees first (from Candidate records), then Job Openings (from Job records), then file attachments linked to the correct Employee records. Video assets are re-uploaded to the customer's media host and the final accessible URLs are written to the corresponding BambooHR Employee custom fields. We use BambooHR's REST API for all record creation where available, and the admin CSV import tool for bulk operations. Parent-record lookups (Employee to Department, Employee to Manager) are resolved at load time using email-based matching. Each load phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and admin handoff
We freeze ZenApply writes during cutover and run a final delta migration of any records modified during the migration window. We deliver a validation report comparing BambooHR record counts and a spot-check of 30-50 randomly selected records against the source CSV. We deliver a written Workflow and Scorecard Template Inventory document for the customer's admin to rebuild in BambooHR. We do not rebuild scorecard templates as code inside the migration scope. We provide a one-week hypercare window to resolve any data quality issues reported by the customer's hiring team.
Platform deep dives
ZenApply
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 ZenApply 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
ZenApply: Not publicly documented.
Data volume sensitivity
ZenApply 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 ZenApply to BambooHR migration scoping. Not seeing yours? Book a call.
Walk through your ZenApply 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 ZenApply
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.