HRMS migration
Field-level mapping, validation, and rollback between ZenApply and Recruit CRM & ATS. We move data and schema; workflows are rebuilt natively in Recruit CRM & ATS.
ZenApply
Source
Recruit CRM & ATS
Destination
Compatibility
8 of 12
objects map 1:1 between ZenApply and Recruit CRM & ATS.
Complexity
BStandard
Timeline
2-3 weeks
Overview
Moving from ZenApply to Recruit CRM is a platform upgrade for small hiring teams that have outgrown a video-first ATS with opaque pricing and no documented API. ZenApply holds candidate data behind a CSV-export-only interface, stores video resume assets as hosted URLs rather than downloadable files, and relies on manual enumeration of custom profile fields. Recruit CRM provides a transparent per-seat pricing model starting at $85 per month, a documented ATS-and-CRM combined platform designed for recruitment agencies, Boolean and radius search, and over 1,000 third-party integrations via Zapier. We sequence the migration by exporting Jobs and Applications from ZenApply first, resolving Candidate deduplication by email, transferring video media assets to Recruit CRM's attachment layer or an external host before source account closure, and mapping every discovered custom field to Recruit CRM custom properties. We do not migrate ZenApply workflows or automations as code; we deliver a written inventory for the customer's admin to rebuild in Recruit CRM.
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 Recruit CRM & ATS, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
ZenApply
Job (Position)
Recruit CRM & ATS
Job
1:1ZenApply Jobs map to Recruit CRM Jobs. We export Job name, description, department, status (open/closed), and the job ID used as a foreign key on Applications. ZenApply CSV exports do not include salary band data unless manually added during export preparation; we flag any missing salary fields and advise the customer to append this data before migration begins.
ZenApply
Application
Recruit CRM & ATS
Candidate
1:manyZenApply Applications link a Candidate to a Job with status, submission date, and source attribution. When a single candidate has applied to multiple ZenApply Jobs, we create one Recruit CRM Candidate record per application, preserving each application's status and timeline. Source attribution (Indeed, LinkedIn, direct) maps to the Recruit CRM Source field on the Candidate record.
ZenApply
Candidate (Applicant)
Recruit CRM & ATS
Candidate
1:1ZenApply Candidate profiles map to Recruit CRM Candidate records. Standard fields (first name, last name, email, phone) migrate directly. Candidate deduplication uses email as the primary key; we flag duplicate email addresses during extraction and escalate to the customer for resolution before import begins. Any candidate records with no email address are held in a reconciliation queue.
ZenApply
Video Profile URL
Recruit CRM & ATS
Candidate Attachment
lossyZenApply video resume assets are hosted URLs that expire when the account is deactivated. We download video files to temporary storage during the migration window, validate format and playback, then re-upload to Recruit CRM as candidate attachments. Video media requires 1-2 days per 100 assets for download, re-encoding if needed, and re-upload. We complete all video transfers before the source account is closed.
ZenApply
Custom Profile Field
Recruit CRM & ATS
Custom Property
lossyZenApply custom profile fields are per-position or global and have no admin-visible schema export. We conduct a structured discovery session with the customer, walking through each active Job's application form and the candidate profile editor to enumerate all custom field labels, data types (text, number, date, checkbox, dropdown), and current values. We then create matching custom properties in Recruit CRM before importing candidate data.
ZenApply
Interview Scorecard
Recruit CRM & ATS
Custom Notes or Custom Field
1:1ZenApply scorecards are linked to Applications and contain ratings and reviewer comments. We preserve the scorecard template structure as a set of custom fields in Recruit CRM and migrate individual ratings and reviewer free-text comments as note entries attached to the Candidate record. Scorecard rating values are normalized if ZenApply used a non-standard scale.
ZenApply
User (Hiring Team)
Recruit CRM & ATS
Team Member
1:1ZenApply Users include name, email, and role (Admin, Hiring Manager, Recruiter). We map these to Recruit CRM Team Members, matching by email address. Any ZenApply role that does not map directly to a Recruit CRM role type is flagged and the customer decides which Recruit CRM role to assign during migration.
ZenApply
Attachment (Resume, Cover Letter, Portfolio)
Recruit CRM & ATS
Candidate Document
1:1ZenApply exports attachment files as URLs or downloadable exports depending on the export configuration. We download all resume files, cover letters, and portfolio documents, preserve original filenames and MIME types, and re-upload to Recruit CRM attached to the corresponding Candidate record. Attachments without a valid MIME type are flagged for manual review.
ZenApply
Application Status
Recruit CRM & ATS
Candidate Status
lossyZenApply application status values are customer-configured pipeline values with no standard taxonomy. We capture the full list of active status values during discovery, map them to Recruit CRM candidate status options, and flag any values with no direct equivalent in Recruit CRM for the customer to decide during configuration.
ZenApply
Activity / Engagement History
Recruit CRM & ATS
Activity Log or Note
1:1ZenApply does not expose engagement history (calls, emails, meetings, notes) through its CSV export in a structured format. We extract any free-text notes from candidate profile fields and migrate them as Recruit CRM notes. If ZenApply stores engagement timestamps in custom fields, we map those to Recruit CRM activity entries. Plain activity timelines without structured source data are inventoried in the migration handoff document for manual rebuild if required.
ZenApply
Candidate Tags
Recruit CRM & ATS
Tags or Custom Property
1:1ZenApply may use tags to label candidates (skills, stage, source type). We map these to Recruit CRM Tags if the destination instance uses the tagging feature, or to a multi-select custom property if tags are used for structured categorization. The customer confirms tagging strategy during discovery.
ZenApply
Email Communication History
Recruit CRM & ATS
Activity Note
1:1ZenApply email communications stored in candidate profiles migrate as Recruit CRM activity notes attached to the Candidate record. We extract email subject, body text, and timestamp from the candidate record fields or associated notes during CSV processing and reformat for Recruit CRM's activity note structure. Email threads spanning multiple candidates are preserved individually per candidate.
| ZenApply | Recruit CRM & ATS | Compatibility | |
|---|---|---|---|
| Job (Position) | Job1:1 | Fully supported | |
| Application | Candidate1:many | Fully supported | |
| Candidate (Applicant) | Candidate1:1 | Fully supported | |
| Video Profile URL | Candidate Attachmentlossy | Fully supported | |
| Custom Profile Field | Custom Propertylossy | Fully supported | |
| Interview Scorecard | Custom Notes or Custom Field1:1 | Fully supported | |
| User (Hiring Team) | Team Member1:1 | Fully supported | |
| Attachment (Resume, Cover Letter, Portfolio) | Candidate Document1:1 | Fully supported | |
| Application Status | Candidate Statuslossy | Fully supported | |
| Activity / Engagement History | Activity Log or Note1:1 | Fully supported | |
| Candidate Tags | Tags or Custom Property1:1 | Fully supported | |
| Email Communication History | Activity Note1: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
Recruit CRM & ATS gotchas
API rate limits are license-scaled and can throttle bulk migration
Custom field schemas vary per organization and require field-level mapping
Files and email attachments require separate extraction and re-upload
Email sequences and automation logic do not transfer between platforms
Pair-specific challenges
Migration approach
Discovery and export audit
We conduct a structured discovery session with the ZenApply customer, walking through every active Job, the candidate profile editor for each Job, and the admin settings to enumerate all visible fields and custom properties. We review the current candidate count, application volume, attachment count, and video asset count. We then guide the customer through exporting CSV files for Jobs, Applications, Candidates, and any available attachments. We audit the exported CSVs for completeness against the discovery notes and flag any missing fields before mapping begins.
Schema design and Recruit CRM configuration
We design the destination Recruit CRM schema based on the discovered ZenApply field inventory. This includes creating custom properties in Recruit CRM to match every ZenApply custom field, configuring candidate status values to cover the ZenApply application pipeline, setting up team member roles, and configuring any required tags or source attribution fields. Schema configuration is validated in the Recruit CRM sandbox or trial instance before production migration begins.
Media asset download and re-upload
We extract all video resume URLs and attachment URLs from the ZenApply CSV exports, download files to temporary encrypted storage, validate format and integrity, and re-upload to Recruit CRM as candidate attachments. This step runs in parallel with schema configuration and must complete before the ZenApply account is deactivated. We generate a media inventory report listing each candidate, the original ZenApply URL, the new Recruit CRM attachment reference, and any files that failed validation.
Data cleansing and deduplication
We run a data quality pass on the exported CSVs before importing into Recruit CRM. Duplicate candidate records (matched by email address) are flagged for customer resolution. Missing required fields (email, first name, last name) are flagged. Custom field values that do not match the expected data type (text vs. number, valid vs. invalid date format) are normalized or escalated. The customer approves the cleansed dataset before we begin loading into Recruit CRM.
Production migration in dependency order
We load data into Recruit CRM in dependency order: Team Members first (for owner lookup resolution), then Jobs, then Candidates (with deduplication applied), then Applications (linked to Job and Candidate), then custom property values, then notes, then media attachments, then tags. Each phase emits a row-count reconciliation report showing records loaded, records skipped, and records held for review. We run the full migration during a pre-agreed cutover window to minimize changes to the source during the load.
Cutover, validation, and automation inventory handoff
We freeze ZenApply write access during cutover and run a final delta pass to capture any records modified during the migration window. We validate Recruit CRM record counts, spot-check 20-30 candidate profiles for field-level accuracy against the source CSVs, and confirm all media attachments are accessible. We deliver the automation inventory document listing every ZenApply workflow or automation requiring rebuild in Recruit CRM, with a brief description of each trigger and action for the customer's admin to reference during rebuild. We do not rebuild ZenApply automations as Recruit CRM workflows; that is outside standard migration scope.
Platform deep dives
ZenApply
Source
Strengths
Weaknesses
Recruit CRM & ATS
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 Recruit CRM & ATS.
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 Recruit CRM & ATS migration scoping. Not seeing yours? Book a call.
Walk through your ZenApply to Recruit CRM & ATS 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 Recruit CRM & ATS
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.