HRMS migration
Field-level mapping, validation, and rollback between Ashby and Zoho Recruit. We move data and schema; workflows are rebuilt natively in Zoho Recruit.
Ashby
Source
Zoho Recruit
Destination
Compatibility
7 of 12
objects map 1:1 between Ashby and Zoho Recruit.
Complexity
BStandard
Timeline
4-6 weeks
Overview
Moving from Ashby to Zoho Recruit is a migration from a data-driven, analytics-first recruiting platform priced for dedicated recruiting ops to a budget-accessible ATS with a simpler feature set. Ashby's RPC-style API with its 15 req/min rate limit on report endpoints shapes our export strategy—we chunk requests across time windows and pre-scope record counts before any data moves. Candidates and Applications map directly to their Zoho Recruit equivalents, while Offer records preserve compensation details and e-signature status for audit trails. Interview Plans, Sequences, and automated activity triggers do not migrate because Ashby's tier-gated automation model has no direct equivalent in Zoho Recruit; we deliver a written inventory of every plan and sequence with Zoho Recruit workflow rebuild guidance. We flag Ashby's elevated seat pricing model during scoping so customers understand the cost difference before committing to migration scope.
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 Ashby object lands in Zoho Recruit, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Ashby
Candidate
Zoho Recruit
Candidate
1:1Ashby Candidate records map directly to Zoho Recruit Candidates. We export all standard contact fields (name, email, phone, LinkedIn URL), source attribution, and status via the candidates endpoint. Custom fields on Candidates are enumerated via customField.list and mapped to Zoho Recruit custom fields created during the Zoho schema design phase. Note that Zoho Recruit requires Last Name as a mandatory field—Candidates without a last name in Ashby are assigned 'not provided' per Zoho's import requirements.
Ashby
Application
Zoho Recruit
Job Application
1:1Ashby Application records (the link between a Candidate and a specific Job) map to Zoho Recruit Job Applications. The application submission date, current stage, and all stage transitions migrate as Zoho Recruit Activity records. Application associations to multiple Jobs (rare in Ashby but possible) map as separate Job Application records in Zoho Recruit, each tied to the relevant Job Opening.
Ashby
Job
Zoho Recruit
Job Opening
1:1Ashby Jobs (top-level job postings) map to Zoho Recruit Job Openings. The Ashby job title, department, team, location, employment type, and status migrate directly. Job Board Distribution settings in Ashby are documented for manual reconfiguration in Zoho Recruit because distribution channels are destination-platform-specific.
Ashby
Opening
Zoho Recruit
Job Opening (additional slot)
1:manyAshby Openings represent individual headcount slots within a Job. A Job with three Openings in Ashby becomes a single Zoho Recruit Job Opening with the headcount count adjusted accordingly. We document each individual Opening's metadata (reason, status, target start date) in a separate reference file for the customer's admin to re-enter as a Job Opening note or custom field. The opening count adjustment prevents duplicate Job Opening records in Zoho Recruit.
Ashby
Offer
Zoho Recruit
Job Offer
1:1Ashby Offer records map to Zoho Recruit Job Offers. Compensation details (salary, equity, bonus), start date, and e-signature status transfer as standard Offer fields. Offer history and status transitions (extended, accepted, declined, withdrawn) migrate as Activity records on the Job Application for compliance and audit trail purposes.
Ashby
User
Zoho Recruit
User
1:1Ashby Users (recruiters, hiring managers, admins) export via user.list and map to Zoho Recruit Users by email match. Role assignments in Ashby map to Zoho Recruit's permission structure (Standard User, Recruiter, Hiring Manager, Admin). Note: Zoho Recruit requires that any User with an existing separate Zoho Recruit account must close that account before being imported into the company's shared Zoho Recruit instance—this is a Zoho Recruit constraint that we verify during scoping.
Ashby
Interview Plan
Zoho Recruit
Workflow (manual rebuild required)
lossyAshby Interview Plans export with their stage structures and activity definitions as a written inventory. Automated activity triggers (sending booking links, assessments, questionnaires when a Candidate enters a stage) are tier-gated at Ashby Plus and Enterprise and have no direct equivalent in Zoho Recruit's workflow model. We document the full plan structure—stages, required activities, and automated actions—and deliver it to the customer's admin with Zoho Recruit Workflow rebuild instructions. This is not a live migration of automation code.
Ashby
Sequence
Zoho Recruit
Workflow (manual rebuild required)
lossyAshby Email Sequences with templates and stage definitions export as a written template inventory. Automation rules tied to sequences are documented with their cadence steps, delay logic, and personalization tokens. Zoho Recruit does not have a native sequence cadence equivalent at all tiers; we map available automation types and document a recommended Zoho Recruit Workflow configuration for the customer's admin to implement post-migration.
Ashby
Assessment (HackerRank, CoderPad, Checkr)
Zoho Recruit
Candidate Submission or Attachment
1:1Assessment results attached to Applications in Ashby (from HackerRank, CoderPad, Checkr integrations) export as activity records with the assessment result data. The assessment itself lives in the third-party platform, not Ashby. We map the association (Candidate + Job Application + Assessment type + score/status) as a Zoho Recruit Candidate custom field or note, and the customer re-links the third-party integration in Zoho Recruit post-migration if desired.
Ashby
Custom Field (Candidates, Applications, Jobs)
Zoho Recruit
Custom Field
lossyAll Ashby custom fields on Candidates, Applications, and Jobs are enumerated via customField.list and mapped to Zoho Recruit custom fields. We create the corresponding Zoho Recruit custom fields (with correct field types: text, picklist, date, number, checkbox, etc.) before Candidate import begins. Zoho Recruit's custom field API is accessible from Standard tier. Customers with dozens of custom fields should expect a custom field creation and mapping review step during scoping.
Ashby
Activity (email, note, call, scorecard)
Zoho Recruit
Activity
1:1Ashby Activity records (emails, notes, calls, scorecards) export per Candidate and Application and map to Zoho Recruit Activities with the original timestamp preserved for timeline ordering. Automated activities tied to Ashby interview plan triggers are flagged as non-migratable because they depend on automation rules that do not transfer. Manual activities (recruiter-sent emails, notes, logged calls) migrate fully. The Zoho Recruit Activity limit per module is noted during scoping to avoid quota issues on high-volume accounts.
Ashby
Department
Zoho Recruit
Department (custom field or picklist)
lossyAshby Department records export and map to Zoho Recruit as either a custom field on Job Openings or a picklist value in an existing Department field. We verify Zoho Recruit's current module structure for the destination account and configure accordingly. Department hierarchy and permissions do not have a direct equivalent in Zoho Recruit's permission model and are documented for admin awareness.
| Ashby | Zoho Recruit | Compatibility | |
|---|---|---|---|
| Candidate | Candidate1:1 | Fully supported | |
| Application | Job Application1:1 | Fully supported | |
| Job | Job Opening1:1 | Fully supported | |
| Opening | Job Opening (additional slot)1:many | Fully supported | |
| Offer | Job Offer1:1 | Fully supported | |
| User | User1:1 | Fully supported | |
| Interview Plan | Workflow (manual rebuild required)lossy | Fully supported | |
| Sequence | Workflow (manual rebuild required)lossy | Fully supported | |
| Assessment (HackerRank, CoderPad, Checkr) | Candidate Submission or Attachment1:1 | Fully supported | |
| Custom Field (Candidates, Applications, Jobs) | Custom Fieldlossy | Fully supported | |
| Activity (email, note, call, scorecard) | Activity1:1 | Fully supported | |
| Department | Department (custom field or picklist)lossy | 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.
Ashby gotchas
Report API rate limits throttle large-scale migrations
File-based migrations omit candidate lifecycle history
Elevated seat pricing not visible at initial pricing discussion
Automation triggers are tier-gated and may not migrate
Dashboard layouts do not export via API
Zoho Recruit gotchas
Daily API rate limits are tier-gated and per-user capped
User import hard cap of 2,000 records
Attachment folder hierarchy must be preserved exactly
Resume parsing quota varies by plan and resets daily
Custom fields unavailable in Free and Standard editions
Pair-specific challenges
Migration approach
Discovery and scoping audit
We audit the Ashby account across tier (Foundations/Plus/Enterprise), candidate and application volume, active interview plans, email sequences, custom fields on all modules, and user count. We also verify the destination Zoho Recruit account status: plan tier, existing user accounts, and current module configuration. The discovery output is a written migration scope document listing all objects, record counts, custom field inventory, and any tier-gated features (interview plan automation triggers, advanced analytics) that will require manual rebuild. We also flag the Ashby elevated seat pricing context so the customer understands the cost delta before signing scope.
Zoho Recruit schema design and custom field creation
We configure the Zoho Recruit destination schema before any data moves. This includes creating all custom fields identified during discovery (with correct field types matched to Ashby source types), configuring pipeline stages to approximate Ashby's offer and application stages, and setting up the Job Opening structure. We verify that all destination custom fields are created and accessible to the migration user. Zoho Recruit's field-level customization API allows us to provision custom fields programmatically rather than manually, reducing configuration time.
Sandbox migration and mapping reconciliation
We run a full migration into a Zoho Recruit staging environment using a representative data sample (typically 100-200 records per major object). The customer's recruiting operations lead reviews record counts, spot-checks 25-50 random candidates and applications against the Ashby source, and validates that custom field values transferred correctly. Any mapping corrections—wrong field types, picklist value mismatches, missing custom fields—happen in this phase before production migration begins. This step prevents corrections in the production environment where they are harder to reverse.
User account verification and provisioning
We extract every distinct Ashby User referenced on Candidates, Applications, and Jobs and match by email against the Zoho Recruit destination account. Any Ashby User with an existing Zoho Recruit account must close it before import per Zoho Recruit's platform constraint. We deliver a user reconciliation report to the customer's admin with the list of accounts requiring action. Migration cannot proceed past this step because many Zoho Recruit modules require an OwnerId reference, which depends on a resolved User.
Production migration in dependency order
We run production migration in record-dependency order: User mapping (validated against the reconciliation queue), Job Openings (created before Applications can link), Candidates (with last name remediation applied), Job Applications (with CandidateId and JobOpeningId resolved), Offers (with JobApplicationId resolved), Activity history (emails, notes, calls, scorecards as Zoho Recruit Activities with original timestamps preserved). Interview Plans and Sequences are not migrated as automation code; they are delivered as written documentation for the customer's admin to rebuild. Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and interview plan handoff
We freeze Ashby writes during a defined cutover window (typically a business day with no new applications expected), run a final delta migration of any records modified during the window, then set Zoho Recruit as the system of record. We deliver the Interview Plan and Sequence inventory document to the customer's admin team with step-by-step rebuild instructions for Zoho Recruit's Workflow builder. We support a one-week hypercare window where we resolve any data quality issues raised by the recruiting team. We do not rebuild Ashby Interview Plans or Sequences as Zoho Recruit Workflows inside the migration scope; that is a separate engagement or an internal admin task.
Platform deep dives
Ashby
Source
Strengths
Weaknesses
Zoho Recruit
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 Ashby and Zoho Recruit.
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
Ashby: 15 requests per minute per org; max 3 concurrent report operations (shared between report.generate and report.synchronous).
Data volume sensitivity
Ashby 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 Ashby to Zoho Recruit migration scoping. Not seeing yours? Book a call.
Walk through your Ashby to Zoho Recruit migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Ashby
Other ways to arrive at Zoho Recruit
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.