HRMS migration
Field-level mapping, validation, and rollback between Keka and Zoho Recruit. We move data and schema; workflows are rebuilt natively in Zoho Recruit.
Keka
Source
Zoho Recruit
Destination
Compatibility
8 of 15
objects map 1:1 between Keka and Zoho Recruit.
Complexity
BStandard
Timeline
2-3 weeks
Overview
Keka is an all-in-one HRMS platform; Zoho Recruit is a dedicated applicant tracking system. The migration scope is therefore narrower than a full-HRMS-to-HRMS move. We extract records from Keka's Hire module (Requisitions, Positions, Candidates, Scorecards, Interview Feedback, and Offer data) and map them into Zoho Recruit's Job Opening, Candidate, Interview, and Assessment modules. Keka's Core HR data (Employees, Departments, Locations), Payroll History, Time Off balances, Attendance logs, Performance Reviews, and PSA billing records have no equivalent in Zoho Recruit and are flagged as out-of-scope during discovery. Keka Workflow Automations tied to the hiring pipeline do not migrate as code; we deliver a written inventory for the customer's admin to rebuild in Zoho Recruit Workflow Rules post-migration. The migration runs in strict record-dependency order with Zoho Recruit's daily parsing limits (250/day on Standard, unlimited on Enterprise) factored into the timeline.
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 Keka 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.
Keka
Employees
Zoho Recruit
Candidates
1:1Keka Employees who have applied for internal roles via Keka Hire and carry candidate records map to Zoho Recruit Candidates. Contact information (email, phone), current employment details (title, department), and resume attachments migrate as typed Zoho Recruit fields. Keka's employee status (Active, On Notice, Resigned) does not map to a Zoho Recruit Candidate field; we preserve it in a custom text field keka_employment_status__c for reference. Note that Keka Employees who have not engaged with Keka Hire have no Candidate record to migrate and are flagged as out-of-scope for this ATS migration.
Keka
Hire: Job Requisitions
Zoho Recruit
Job Openings
1:1Keka Hire Job Requisitions map to Zoho Recruit Job Openings. The job title, description (rich text), employment type (full-time, part-time, contract), location, and number of openings migrate to corresponding Zoho Recruit fields. Keka's position-level hiring management (introduced late 2024, allowing multiple positions per job) may require decomposition: each Keka position becomes a separate Zoho Recruit Job Opening or a single Job Opening with the opening count aggregated. The customer chooses the decomposition strategy during scoping.
Keka
Hire: Positions
Zoho Recruit
Job Openings
1:manyKeka's position-level records (introduced late 2024) attach multiple position slots to a single Job Requisition. If Keka Position records carry distinct attributes such as department, location, or hiring manager, we split each Position into a separate Zoho Recruit Job Opening to preserve those distinctions. If Positions share all attributes with the parent Requisition, we aggregate the count into a single Job Opening with the total headcount. We flag this decision for customer confirmation during discovery.
Keka
Hire: Candidates
Zoho Recruit
Candidates
1:1Keka Hire Candidates map directly to Zoho Recruit Candidates. Candidate first name, last name, email, phone, source, current status in the pipeline, and any custom fields migrate. Keka's Candidate scorecards and rating data migrate to Zoho Recruit Interview Feedback forms. The candidate's application date and any offer details migrate as date and text fields respectively.
Keka
Hire: Candidate Documents (Resumes)
Zoho Recruit
Candidate Attachments
1:1Keka stores candidate resumes as document attachments. We extract the resume file (PDF, DOC, DOCX) and attach it to the corresponding Zoho Recruit Candidate record via the Attachment object. The original file name and MIME type are preserved. Note that Zoho Recruit's resume parsing (250 resumes/day on Standard, unlimited on Enterprise) is an automated parsing feature in the destination, not a migration deliverable; parsed fields are generated fresh by Zoho Recruit after the raw file is attached.
Keka
Hire: Scorecards
Zoho Recruit
Interview Feedback Forms
1:1Keka Hire scorecards record interviewer ratings and written feedback against configurable criteria. We map each scorecard to a Zoho Recruit Interview Feedback form, preserving the rating values and the feedback text. If Keka's scorecard criteria do not match a Zoho Recruit standard feedback field, we create custom fields on the Interview Feedback form before migration.
Keka
Hire: Interview Feedback
Zoho Recruit
Interview Feedback
1:1Keka's interview feedback records include interviewer name, interview date, stage in the pipeline, recommendation, and written notes. We map these to Zoho Recruit Interview records linked to the corresponding Candidate and Job Opening. The recommendation (e.g., Strong Hire, Hire, No Hire) migrates as a custom picklist field if Zoho Recruit's standard recommendation values do not match Keka's.
Keka
Hire: Offer Letters
Zoho Recruit
Offers
1:1Keka stores offer letter metadata including offered salary, start date, offer status, and the offer PDF. We map the salary and start date to Zoho Recruit Offer fields; the offer PDF migrates as an attachment to the Offer record. Note that Zoho Recruit Offer management is available on Professional ($50/recruiter) and Enterprise ($75/recruiter) tiers; Standard tier does not include Offer management.
Keka
Departments (from org hierarchy)
Zoho Recruit
Departments
lossyKeka's four-tier org hierarchy (Legal Entity → Business Unit → Department → Location) must be flattened for Zoho Recruit, which supports a single Department object. We extract the Department-level records from Keka and create corresponding Department records in Zoho Recruit. Legal Entity, Business Unit, and Location are preserved as text fields on the Job Opening (keka_legal_entity__c, keka_location__c) so the customer can use them for reporting without restructuring the org hierarchy in Zoho Recruit.
Keka
Hire: Hiring Team / Interviewers
Zoho Recruit
Users (Recruiters)
1:1Keka tracks hiring team members and interviewers per requisition. We extract the unique list of user IDs referenced in Keka's hiring data and match them by email against the Zoho Recruit destination User table. Any Keka hiring team member without a matching Zoho Recruit User is held in a reconciliation queue for the customer's admin to provision before candidate import begins.
Keka
Core HR: Employees (for background/reference)
Zoho Recruit
Out of scope
lossyKeka Core HR Employee records that are not tied to the Hire module have no equivalent in Zoho Recruit. Zoho Recruit is an ATS, not an HRMS; it does not maintain employment records, payroll data, or organizational hierarchies beyond the Department object. We flag all Core HR, payroll, attendance, time-off, performance, and PSA records as out-of-scope during discovery and exclude them from the migration load. If the customer needs these objects migrated, Zoho People or another HCM platform should be evaluated as the destination.
Keka
Documents (Custom Document Fields)
Zoho Recruit
Out of scope
lossyKeka's document storage and custom document field placeholders are tied to its Core HR and onboarding workflows. Zoho Recruit does not have a document management module equivalent to Keka's. We export custom document fields as a structured reference table (field name, parent record, current value) for the customer's admin to re-enter manually in Zoho Recruit's custom fields or a linked Zoho WorkDrive folder if Zoho Docs is part of the destination stack.
Keka
Payroll History and Pay Components
Zoho Recruit
Out of scope
lossyKeka's payroll runs, salary components, statutory deductions (PF, TDS, ESI), reimbursements, and accrual records are not migratable to Zoho Recruit because Zoho Recruit has no payroll module. We flag payroll history as out-of-scope and recommend Zoho Payroll (part of Zoho People) as a separate destination if payroll continuity is required. We export payroll run metadata as a written record for the customer's finance team to maintain.
Keka
Performance Reviews and Bands
Zoho Recruit
Out of scope
lossyKeka's Perform module stores review cycles, review instances, and performance band assignments (e.g., Exceeds, Meets, Needs Improvement). Zoho Recruit has no performance management module; the equivalent product in Zoho's suite is Zoho People with its Performance Management add-on. We flag all performance data as out-of-scope and note that the customer may need a parallel migration to Zoho People if performance history must be preserved.
Keka
PSA: Projects, Time Entries, Billing Records
Zoho Recruit
Out of scope
lossyKeka PSA covers professional services automation including projects, billable and non-billable time tracking, retainer and time-based billing models, invoices, line items, taxes, and credit notes. Zoho Recruit has no PSA module. We flag all PSA data as out-of-scope and note that Zoho Projects or Zoho Invoice are separate products for services and billing tracking. We export PSA project assignments and billing records as a structured CSV for the customer's admin to assess for manual entry or a separate PSA migration.
| Keka | Zoho Recruit | Compatibility | |
|---|---|---|---|
| Employees | Candidates1:1 | Fully supported | |
| Hire: Job Requisitions | Job Openings1:1 | Fully supported | |
| Hire: Positions | Job Openings1:many | Fully supported | |
| Hire: Candidates | Candidates1:1 | Fully supported | |
| Hire: Candidate Documents (Resumes) | Candidate Attachments1:1 | Fully supported | |
| Hire: Scorecards | Interview Feedback Forms1:1 | Fully supported | |
| Hire: Interview Feedback | Interview Feedback1:1 | Fully supported | |
| Hire: Offer Letters | Offers1:1 | Fully supported | |
| Departments (from org hierarchy) | Departmentslossy | Fully supported | |
| Hire: Hiring Team / Interviewers | Users (Recruiters)1:1 | Fully supported | |
| Core HR: Employees (for background/reference) | Out of scopelossy | Fully supported | |
| Documents (Custom Document Fields) | Out of scopelossy | Fully supported | |
| Payroll History and Pay Components | Out of scopelossy | Mapping required | |
| Performance Reviews and Bands | Out of scopelossy | Mapping required | |
| PSA: Projects, Time Entries, Billing Records | Out of scopelossy | Mapping required |
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.
Keka gotchas
Effective-dated compensation and payroll history sequencing
Organizational hierarchy decomposition required
PSA billing model translation
Performance review band label customisation
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 scope definition
We audit Keka across all active modules, focusing on the Hire module (Requisitions, Positions, Candidates, Scorecards, Interview Feedback, Offers) and identifying all non-ATS records (Core HR Employees, Payroll, Performance, PSA) as out-of-scope. We document the Keka hiring pipeline stages, scorecard criteria, custom fields, and any active Workflows. We confirm the Zoho Recruit destination tier (Free, Standard, Professional, Enterprise) and note any feature limitations that affect the mapping, such as the Offer management availability on Professional and above, the resume parsing daily limit on Standard, and the Department-only org model.
ATS record extraction and cleaning
We extract all ATS-scope records from Keka via the platform's export capabilities or API, producing CSV or JSON files for each module: Job Requisitions, Positions, Candidates, Candidate Documents, Scorecards, Interview Feedback, and Offers. We run a data quality pass to flag missing last names, duplicate email addresses, orphaned candidate records (candidates with no associated job), and any records with invalid dates or incomplete required fields. We resolve or flag each quality issue with the customer's HR admin before mapping begins.
Field mapping and decomposition planning
We produce a written field mapping document for each migrating module, listing every Keka source field, its Zoho Recruit destination field, the data type transformation required, and any custom field to be created in Zoho Recruit. We confirm the decomposition strategy for Keka's position-level data (one Job Opening per position vs. aggregated opening count) with the customer's hiring team. We also create any custom Interview Feedback fields needed to accommodate Keka's scorecard criteria that do not map to Zoho Recruit's standard feedback fields.
User and Department provisioning in Zoho Recruit
We extract all unique interviewer and hiring manager IDs referenced in Keka's hiring data and match them by email against the Zoho Recruit destination User table. Any user without a matching Zoho Recruit account is placed in a reconciliation queue; the customer's admin provisions those accounts before candidate import. We create Keka's Department-level org units as Zoho Recruit Departments; Legal Entity, Business Unit, and Location are captured as custom text fields on Job Openings for post-migration reference.
Sandbox migration and reconciliation
We run a full migration into a Zoho Recruit sandbox account using production-equivalent data volumes. The customer's recruiting lead reconciles record counts across all modules, spot-checks 25-50 random Candidate and Job Opening records against the Keka source, and validates that interview feedback, scorecards, and offer data are linked to the correct parent records. Any mapping corrections are documented and applied to the production migration script. This step validates that Zoho Recruit's parsing limits and custom field configurations can handle the full load before cutover.
Production migration and cutover
We run the production migration in record-dependency order: Departments first, then Job Openings, then Candidates (with resume attachments), then Interview records and Feedback, then Offers. Resume attachments are loaded after parsed candidate records to avoid double ingestion. We observe Zoho Recruit's daily parsing limits on Standard tier and throttle the import schedule accordingly. After each module phase, we emit a row-count reconciliation report. We deliver the Keka Workflow inventory document to the customer's admin with recommended Zoho Recruit Workflow Rule equivalents. We do not rebuild Keka Workflows as Zoho Recruit Workflow Rules inside the migration scope.
Platform deep dives
Keka
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 Keka 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
Keka: Not publicly documented.
Data volume sensitivity
Keka 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 Keka to Zoho Recruit migration scoping. Not seeing yours? Book a call.
Walk through your Keka 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 Keka
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.