HRMS migration
Field-level mapping, validation, and rollback between BrightMove and Zoho Recruit. We move data and schema; workflows are rebuilt natively in Zoho Recruit.
BrightMove
Source
Zoho Recruit
Destination
Compatibility
8 of 12
objects map 1:1 between BrightMove and Zoho Recruit.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from BrightMove to Zoho Recruit is a migration from a modular ATS built for staffing agencies and RPOs to a platform priced from free through $75 per user per month, delivering significant ongoing savings. BrightMove structures recruiting data around Candidates, Jobs, Placements, and Contacts, with custom pipeline stages that vary by tenant configuration. Zoho Recruit uses a Candidates module, Job Openings module, and Clients/Contacts module with its own stage taxonomy. We extract BrightMove's full stage taxonomy during discovery, resolve BrightMove custom fields to Zoho picklists and text fields, and sequence the migration so that Client records exist before Candidate-to-Job associations are created. Zoho Recruit enforces mandatory Last Name on all candidate imports — we flag any BrightMove candidate records without a surname and apply a placeholder value before import. Workflows, automations, and job board integrations do not migrate; we deliver a written inventory of BrightMove workflows requiring rebuild in Zoho Recruit's workflow builder and a job board reconnection checklist for the customer's admin to execute post-migration.
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 BrightMove 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.
BrightMove
Candidate
Zoho Recruit
Candidate
1:1BrightMove Candidates map directly to Zoho Recruit Candidates. We extract resume data, contact information, status history, and all custom fields. Zoho Recruit requires a Last Name value on every Candidate import — any BrightMove candidate without a surname is flagged and assigned a placeholder value 'Not Provided' during the transform phase. Email, phone, address, skills, and source fields migrate to equivalent Zoho Candidate fields. Tags from BrightMove become Zoho Recruit Tags applied via the tag association API.
BrightMove
Job Order
Zoho Recruit
Job Opening
1:1BrightMove Job Orders (title, description, requirements, department, location, status) map to Zoho Recruit Job Openings. The most critical mapping work is the pipeline stage. BrightMove allows organizations to configure custom pipeline stages that vary by tenant — we extract the full stage taxonomy during discovery and map each BrightMove stage to the nearest Zoho Recruit stage equivalent (Open, Phone Screen, Interview, Offer, Hired, Closed) preserving the original order. Any custom stages that have no Zoho equivalent are created as custom stage values in Zoho Recruit before migration.
BrightMove
Placement
Zoho Recruit
Candidate + Job Opening association
lossyBrightMove Placements record a hired candidate with start date, compensation details, and client association. Zoho Recruit does not have a standalone Placement object — the placement relationship is expressed by associating the Candidate record to the Job Opening with a status of 'Hired' and recording the start date and compensation in custom fields on the Candidate or Job Opening. We extract placement start_date, compensation_package, and client_name from BrightMove and create the Candidate-Job Opening association in Zoho Recruit with those values stored as custom fields. Note: BrightMove placement billing data (invoicing, AR/AP) lives in the BrightMove back office module and does not map to any Zoho Recruit ATS object; it belongs in Zoho Books if accounting continuity is required, a scope addressed separately.
BrightMove
Client Contact
Zoho Recruit
Client + Contact
1:manyBrightMove Contacts are client-facing recruiter or hiring-manager contacts associated with client companies. Zoho Recruit separates client company records (Clients module) from individual Contact records (Contacts module, often used as a sub-module of Clients). We map BrightMove Contact name, email, phone, and role to the Zoho Recruit Contact fields, and map the associated client company to a Zoho Recruit Client record. Custom fields on BrightMove Contacts are mapped to Zoho custom fields on the Contact or Client module based on field type.
BrightMove
Activity Log / Note
Zoho Recruit
Activity
1:1BrightMove stores activity logs and notes against candidates and job orders. Activity types vary by tenant configuration. We extract all available activities — calls, interviews, status updates, internal notes — and map them to Zoho Recruit Activity records. Zoho Recruit's activity stream supports date, description, activity type, and linked candidate or job opening. We preserve activity timestamps and assign the activity to the migrated candidate or job opening using Zoho's lookup relationship. Large note volumes use batch inserts via the Zoho Recruit API.
BrightMove
Resume / Document Attachment
Zoho Recruit
Candidate Attachment
1:1Resume files and attached documents stored per BrightMove candidate are extracted during migration, validated for file integrity, and uploaded as Zoho Recruit Candidate attachments. We preserve the original filename and file type. If a candidate's resume was parsed into structured fields in BrightMove (name, email, phone extracted from the resume), those parsed fields map to the corresponding Zoho Recruit Candidate fields separately from the attachment.
BrightMove
Custom Field (Candidates)
Zoho Recruit
Custom Field (Candidates)
lossyBrightMove allows custom fields on Candidates using types including text, dropdown, date, and checkbox. Zoho Recruit supports equivalent custom field types in all paid editions. We map text fields to Zoho Single Line or Multi Line fields, date fields to Zoho Date fields, checkboxes to Zoho Checkbox fields, and dropdowns to Zoho Picklist fields. For dropdown fields, we extract the BrightMove picklist option values and create matching Zoho Picklist values during the schema pre-creation phase. The Standard Edition of Zoho Recruit does not support Lookup fields — if BrightMove custom fields include lookup relationships, the destination must be on Standard edition or above.
BrightMove
Custom Field (Job Orders)
Zoho Recruit
Custom Field (Job Openings)
lossyBrightMove Job Orders support custom fields to capture department-specific requirements, compensation ranges, or clearance levels. These map to Zoho Recruit Job Opening custom fields using the same type-mapping logic as candidate custom fields. Department and classification custom fields on BrightMove job orders often require value normalization before mapping to Zoho picklists.
BrightMove
User / Recruiter
Zoho Recruit
User
1:1BrightMove User accounts (recruiters and hiring managers) are mapped to Zoho Recruit User records. We resolve by email address. Users who already have an active Zoho Recruit account cannot be imported — Zoho requires closing the separate account first per the Zoho Recruit Data Migration documentation (help.zoho.com/portal/en/kb/recruit/essentials/data-management/data-migration). We flag any BrightMove user with a matching existing Zoho Recruit account and escalate to the customer's admin for resolution before the migration phase begins.
BrightMove
Tag / Label
Zoho Recruit
Tag
1:1Tags applied to BrightMove candidates and job orders are extracted and applied as Zoho Recruit Tags. Tag naming conventions may differ between systems, so we map the BrightMove tag name to the Zoho tag name using an exact-match lookup table built during discovery. Tags used for candidate segmentation or job order categorization carry over for use in Zoho Recruit's filtering and reporting.
BrightMove
Back Office Invoice (if licensed)
Zoho Recruit
Not migrated to Zoho Recruit ATS
1:1BrightMove's back office module ($499+/mo) stores invoicing, AR/AP, and payroll data for staffing firms. Zoho Recruit is an ATS, not an accounting platform — none of these objects have a Zoho Recruit equivalent. If the customer needs accounting continuity, we scope a separate data extraction of BrightMove back office records into CSV for import into Zoho Books. This is a distinct engagement from the ATS migration and is priced separately. We disclose this boundary clearly during scoping to prevent scope creep.
BrightMove
Job Board Integration Configuration
Zoho Recruit
Job Board Integration (to reconnect)
1:1BrightMove's built-in job board distribution (Indeed, ZipRecruiter, and other integrations) is a platform configuration, not a data record. These integrations do not migrate. We deliver a written job board reconnection checklist that identifies every BrightMove-connected job board account, the credentials needed, and the Zoho Recruit job board integration setup steps for each. The customer's admin executes the reconnection post-migration; we do not configure third-party job board accounts on behalf of the customer.
| BrightMove | Zoho Recruit | Compatibility | |
|---|---|---|---|
| Candidate | Candidate1:1 | Fully supported | |
| Job Order | Job Opening1:1 | Fully supported | |
| Placement | Candidate + Job Opening associationlossy | Fully supported | |
| Client Contact | Client + Contact1:many | Fully supported | |
| Activity Log / Note | Activity1:1 | Fully supported | |
| Resume / Document Attachment | Candidate Attachment1:1 | Fully supported | |
| Custom Field (Candidates) | Custom Field (Candidates)lossy | Fully supported | |
| Custom Field (Job Orders) | Custom Field (Job Openings)lossy | Fully supported | |
| User / Recruiter | User1:1 | Fully supported | |
| Tag / Label | Tag1:1 | Fully supported | |
| Back Office Invoice (if licensed) | Not migrated to Zoho Recruit ATS1:1 | Fully supported | |
| Job Board Integration Configuration | Job Board Integration (to reconnect)1: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.
BrightMove gotchas
Pricing structure requires careful scoping for total cost
Custom workflow stages require field-level mapping
API documentation lacks migration-critical detail
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 BrightMove across all licensed modules — core recruiting, back office (if licensed), candidate records, job orders, placements, contacts, activity logs, and custom fields. We extract the full custom pipeline stage taxonomy and confirm the BrightMove workflow configuration. We also identify BrightMove user accounts, tag taxonomies, and document attachment volumes. On the Zoho Recruit side, we confirm the target edition (Forever Free, Standard, Professional, or Staffing Agency Enterprise), verify the modules available in that edition, and identify any feature constraints (Lookup fields, custom fields) that affect the mapping design. The discovery output is a written migration scope document covering record counts per object, custom field inventory, stage mapping table, and a decision on whether back office data moves to Zoho Books as a separate scope.
API connectivity test and export strategy
We run a pre-migration API connectivity test against the BrightMove Open API to validate response times, pagination behavior, and rate limits for the expected data volume. If the API proves suitable, we proceed with API-based extraction. If the API is too restrictive for the candidate database size, we coordinate a CSV export with the customer using BrightMove's reporting interface, then structure the CSV files into the format required for Zoho Recruit's import tool. We also test Zoho Recruit's import API to confirm batch size limits and validate that the target Zoho Recruit edition supports the field types we need to create.
Schema pre-creation and field mapping
We create the Zoho Recruit destination schema before any data moves. This includes creating custom fields on Candidates and Job Openings (matching BrightMove field types to Zoho field types), creating custom stage values where BrightMove stages have no Zoho equivalent, and verifying that the Zoho Recruit edition supports all required field types. We build the full field mapping table mapping each BrightMove object field to its Zoho Recruit equivalent, including transformation rules (date format normalization, text truncation, placeholder values for missing mandatory fields like Last Name). For the tag taxonomy, we create the target Zoho Recruit tags before candidate import so that tag associations can be applied during the load phase.
User reconciliation and staging migration
We extract all BrightMove user accounts and attempt to match by email against existing Zoho Recruit users. Any user with an existing separate Zoho Recruit account is flagged and held in a reconciliation queue — the customer's admin must close that separate account before the user can be imported. We run a full migration into a Zoho Recruit staging environment using representative data volume. The customer's recruiting operations lead reconciles record counts, spot-checks 25-50 candidate records for field accuracy, verifies that custom field values transferred correctly, and confirms the stage mapping is working as expected. Mapping corrections are made before production migration begins.
Production migration in dependency order
We run production migration in record-dependency order: Zoho Recruit Users first (validated from the reconciliation step), then Clients (from BrightMove client companies), then Contacts (linked to the Client records), then Job Openings (with custom stages pre-created), then Candidates (with Last Name placeholder applied where needed), then Candidate-to-Job Opening associations for placements (with start date and compensation in custom fields), then Activity records (batched via the Zoho Recruit API), then Tags, then document attachments. Each phase emits a row-count reconciliation report before the next phase begins. We use exponential backoff and chunking on the Zoho Recruit API to stay within rate limits.
Cutover, validation, and workflow handoff
We freeze BrightMove write access during the cutover window, run a final delta migration of any records modified during the migration window, then enable Zoho Recruit as the system of record. We deliver the BrightMove workflow inventory document to the customer's admin team for rebuild in Zoho Recruit's workflow builder, and we deliver the job board reconnection checklist for the admin to execute with their third-party job board accounts. We support a one-week hypercare window to resolve any reconciliation issues raised by the recruiting team. We do not rebuild BrightMove workflows as Zoho Recruit workflows inside the migration scope, and we do not configure job board integrations — those are separate admin tasks.
Platform deep dives
BrightMove
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 BrightMove 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
BrightMove: Not publicly documented in available sources.
Data volume sensitivity
BrightMove 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 BrightMove to Zoho Recruit migration scoping. Not seeing yours? Book a call.
Walk through your BrightMove 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 BrightMove
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.