HRMS migration

Migrate from Keka to Zoho Recruit

Field-level mapping, validation, and rollback between Keka and Zoho Recruit. We move data and schema; workflows are rebuilt natively in Zoho Recruit.

Keka logo

Keka

Source

Zoho Recruit

Destination

Zoho Recruit logo

Compatibility

53%

8 of 15

objects map 1:1 between Keka and Zoho Recruit.

Complexity

BStandard

Timeline

2-3 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Keka logo

Keka

What's pushing teams away

  • Onboarding and implementation after signing up is cited as a friction point — initial setup and configuration require significant effort before the product delivers value.
  • Limited customization options frustrate organizations with unique workflows or industry-specific requirements that cannot be accommodated within Keka's opinionated module structure.
  • Slower performance during login or peak usage periods, particularly for large user bases or organizations with high concurrent activity, noted in professional services automation contexts.
  • Feature gaps in PSA billing — particularly around retainer invoicing and credit note workflows — cause professional services teams to seek alternatives with more mature finance tooling.

Choosing

Zoho Recruit logo

Zoho Recruit

What's pulling them in

  • Lowest cost entry point of any major ATS — a free tier with Candidates, Clients, Contacts, Interviews, and a career site lets small teams validate before committing to a paid plan.
  • Deep Zoho ecosystem integration — if the team already uses Zoho CRM, Sheets, or Analytics, candidate data flows between modules without re-keying or third-party middleware.
  • Customizable pipelines and stages — both agency and corporate editions let users define custom pipeline stages and assign candidates through drag-and-drop visual boards.
  • AI-assisted features via Zia — resume parsing, candidate summarization, and job-candidate matching are built in on paid tiers, reducing manual screening time.
  • Job board aggregation at no extra cost — paid tiers include postings to major job boards, extending reach without purchasing separate job ad bundles.

Object mapping

How Keka objects map to Zoho Recruit

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

maps to

Zoho Recruit

Candidates

1:1
Fully supported

Keka 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

maps to

Zoho Recruit

Job Openings

1:1
Fully supported

Keka 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

maps to

Zoho Recruit

Job Openings

1:many
Fully supported

Keka'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

maps to

Zoho Recruit

Candidates

1:1
Fully supported

Keka 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)

maps to

Zoho Recruit

Candidate Attachments

1:1
Fully supported

Keka 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

maps to

Zoho Recruit

Interview Feedback Forms

1:1
Fully supported

Keka 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

maps to

Zoho Recruit

Interview Feedback

1:1
Fully supported

Keka'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

maps to

Zoho Recruit

Offers

1:1
Fully supported

Keka 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)

maps to

Zoho Recruit

Departments

lossy
Fully supported

Keka'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

maps to

Zoho Recruit

Users (Recruiters)

1:1
Fully supported

Keka 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)

maps to

Zoho Recruit

Out of scope

lossy
Fully supported

Keka 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)

maps to

Zoho Recruit

Out of scope

lossy
Fully supported

Keka'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

maps to

Zoho Recruit

Out of scope

lossy
Mapping required

Keka'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

maps to

Zoho Recruit

Out of scope

lossy
Mapping required

Keka'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

maps to

Zoho Recruit

Out of scope

lossy
Mapping required

Keka 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.

Gotchas + challenges

What specifically takes care here

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 logo

Keka gotchas

High

Effective-dated compensation and payroll history sequencing

Medium

Organizational hierarchy decomposition required

Medium

PSA billing model translation

Low

Performance review band label customisation

Zoho Recruit logo

Zoho Recruit gotchas

High

Daily API rate limits are tier-gated and per-user capped

High

User import hard cap of 2,000 records

Medium

Attachment folder hierarchy must be preserved exactly

Medium

Resume parsing quota varies by plan and resets daily

Low

Custom fields unavailable in Free and Standard editions

Pair-specific challenges

  • Zoho Recruit cannot hold Core HR or payroll data

    Zoho Recruit is a dedicated applicant tracking system with no Core HR, payroll, attendance, time-off, or performance management modules. Keka's all-in-one HRMS stores these as primary objects, but there is no destination field in Zoho Recruit for salary history, employment status, leave balances, accruals, or performance ratings. We identify all non-ATS records during discovery and exclude them from the migration load. Customers needing payroll or performance continuity should evaluate Zoho People as the destination for Core HR and performance data, with Zoho Recruit handling only the recruiting pipeline. Migrating both requires a parallel engagement with two distinct scope definitions.

  • Zoho Recruit's Last Name is a mandatory field with no exceptions

    Zoho Recruit requires a Last Name value on every Candidate record during import. Keka candidates may have incomplete name records (e.g., mononyms, candidates with only a first name, or records entered in a single Name field). We extract name components from Keka's candidate records, split first and last name using a configurable rule (space-split, comma-split, or pattern-based), and set any record without a separable last name to 'Not Provided' per Zoho Recruit's import specification. This is confirmed with the customer before migration runs.

  • Daily resume parsing limits constrain bulk import speed on Standard tier

    Zoho Recruit Standard tier limits resume parsing to 250 resumes per day. Enterprise tier removes this limit. If the migration includes more than 250 candidates on a Standard-tier Zoho Recruit account, we schedule the import across multiple days or recommend an Enterprise tier upgrade for the migration window. Resume file attachments (not parsed) are not subject to this limit and can be loaded at full speed. We factor this constraint into the timeline estimate during scoping.

  • Keka Workflow Automations do not migrate to Zoho Recruit Workflow Rules

    Keka Hire Job Workflows and Global Workflows are configuration-based automation objects tied to hiring pipeline events such as stage changes, interviewer assignments, or offer approvals. Zoho Recruit Workflow Rules use a different trigger model (record-created, record-edited, scheduled) with different action types (field updates, email alerts, task creation, webhook calls). We do not migrate workflow definitions as code. We deliver a written inventory of every active Keka Workflow with its trigger, conditions, and actions, mapped to a Zoho Recruit Workflow Rule equivalent. The customer's admin rebuilds them in Zoho Recruit post-migration. Workflows are a common source of migration gap if not explicitly scoped and inventoried.

  • Keka position-level hiring data may require manual decomposition

    Keka introduced position-level hiring management in late 2024, allowing multiple position slots to attach to a single Job Requisition with distinct attributes (department, manager, location). Zoho Recruit models one Job Opening per requisition with an opening count. If Keka position records carry attributes that differ from the parent requisition, we must either split each position into a separate Zoho Recruit Job Opening or consolidate with customer confirmation. We flag this decomposition requirement during discovery and confirm the preferred strategy before migration.

Migration approach

Six steps for a successful Keka to Zoho Recruit data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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

Context on both ends of the pair

Keka logo

Keka

Source

Strengths

  • Unified platform combining Core HR, payroll, attendance, performance, and hiring modules in one product.
  • Employee-centric UI design with strong mobile app experience rated highly across G2 reviews.
  • Automated payroll processing with statutory compliance support (PF, TDS, ESI for India).
  • Configurable approval workflows for leave, onboarding, and hiring requisitions.
  • Position-based hiring tracking introduced in late 2024 for structured workforce planning.

Weaknesses

  • Onboarding and post-signup implementation is cited as a friction point in multiple reviews.
  • Limited customization restricts adaptability for organizations with non-standard HR workflows.
  • Performance degrades during peak usage or large concurrent user sessions.
  • API capabilities and rate limits are not publicly documented, complicating programmatic extraction.
  • Enterprise-level feature depth lags behind larger HCM suites for complex multi-entity or multi-country scenarios.
Zoho Recruit logo

Zoho Recruit

Destination

Strengths

  • Free tier includes full candidate management with a hosted career site, making it viable for very small staffing operations.
  • Multi-edition architecture splits agency and corporate HR workflows, with tier-gated features that scale predictably with headcount.
  • Per-user API rate limits (500–1000/day) are generous for mid-size migrations compared to competitors that gate by total org quota.
  • Zoho's own data migration tool supports CSV import from Bullhorn, CATS, Jobdiva, and Workable, validating interoperability with common ATS formats.
  • 45-day money-back guarantee and 15-day full-feature trial reduce financial risk for teams evaluating the platform.

Weaknesses

  • Free edition excludes custom fields, lookup relationships, and formula fields, making data model extensibility unavailable until a paid tier is purchased.
  • Resume parsing quotas are capped: 250/day on Standard, 500/day on Professional, unlimited only on Enterprise — bulk imports of large candidate pools will hit these limits.
  • No bulk/batch API endpoint for inserts or updates — large migrations rely on looping single-record API calls within daily rate limit windows.
  • Custom modules cannot be imported from external ATS; only standard modules (Users, Candidates, Clients, etc.) are in the supported migration list.
  • Attachments require a rigid folder hierarchy to re-associate with records, and any deviation in folder structure during extraction causes silent disassociation.

Complexity grading

How hard is this migration?

Standard HRMS migration. 1 of 7 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Keka and Zoho Recruit.

  • Object compatibility

    B

    1 of 7 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    7-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Keka: Not publicly documented.

  • Data volume sensitivity

    B

    Keka doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Keka to Zoho Recruit migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Keka to Zoho Recruit data migrations

Answers to the questions buyers ask most during Keka to Zoho Recruit migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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 consultation

Most migrations land between two and three weeks for organizations with fewer than 5,000 Candidates and 500 Job Openings. Migrations exceeding 20,000 Candidates, large interview history volumes, multiple position-level records, or migration during a Zoho Recruit Standard-tier parsing rate-limited window move to six to ten weeks. The timeline is extended if Keka's position-level decomposition strategy requires customer confirmation, if user provisioning in Zoho Recruit is delayed, or if the data quality pass reveals widespread name or required-field issues.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Keka.
Land in Zoho Recruit, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day