HRMS migration
Field-level mapping, validation, and rollback between Bullhorn Connexys ATS and Zoho Recruit. We move data and schema; workflows are rebuilt natively in Zoho Recruit.
Bullhorn Connexys ATS
Source
Zoho Recruit
Destination
Compatibility
9 of 12
objects map 1:1 between Bullhorn Connexys ATS and Zoho Recruit.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Bullhorn Connexys ATS to Zoho Recruit is a structural migration across two fundamentally different ATS architectures. Bullhorn Connexys runs on the Salesforce Force.com platform with a data model built around Candidates, JobOrders, Accounts, Contacts, Placements, and a configurable Job Reporting junction that tracks each candidate's movement through pipeline stages. Zoho Recruit uses a simpler object model with Candidates, Clients, Jobs, and Candidates mapped to Jobs through a Job Submission junction object. The primary migration risks are: Bullhorn's API rate limit ceiling of 100,000 calls per month interacting with Zoho's per-edition credit limits (as low as 500 requests per day on Standard), causing migration to span multiple billing periods for large databases; the Job Reporting stage-history object in Bullhorn having no direct Zoho Recruit equivalent, requiring custom field reconstruction; and Bullhorn Custom Objects on lower-tier Connexys instances (as few as 2 Custom Objects on Bullhorn ATS) needing to map to Zoho Recruit's Custom Module framework, which has different field-type constraints. We do not migrate Bullhorn workflows, automation rules, or GDPR consent-management configurations; we deliver a written inventory for the customer's admin to rebuild in Zoho Recruit's workflow builder.
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 Bullhorn Connexys ATS 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.
Bullhorn Connexys ATS
Candidate
Zoho Recruit
Candidate
1:1Bullhorn Candidate records map directly to Zoho Recruit Candidates. Core fields (name, email, phone, address, skills, work history, education) map to Zoho's standard Candidate fields. We handle Bullhorn's tax information and compliance custom fields as Zoho custom fields, and flag any GDPR consent data for explicit mapping to Zoho's consent-tracking custom fields, which the customer's admin configures before migration because Zoho Recruit has no pre-built consent-management module.
Bullhorn Connexys ATS
JobOrder
Zoho Recruit
Job
1:1Bullhorn JobOrders map to Zoho Recruit Jobs. Job title, requirements, salary range, location, and job status transfer as standard Job fields. Bullhorn job fields such as employment type, remote policy, and benefits information map to Zoho custom fields. We resolve the JobOrder-to-Job status mapping during scoping because Bullhorn and Zoho use different stage naming conventions.
Bullhorn Connexys ATS
Account
Zoho Recruit
Client
1:1Bullhorn Accounts (representing client companies) map to Zoho Recruit Clients. Company name, industry, billing address, and contact associations transfer to the Client record. We preserve the one-to-many relationship between Client and multiple Contacts. The Account's primary billing contact maps to the Client's primary contact field in Zoho.
Bullhorn Connexys ATS
Contact
Zoho Recruit
Contact
1:1Bullhorn Contact records (hiring managers and client-side contacts linked to Accounts) map to Zoho Recruit Contacts. We preserve the Account-Client association during migration and flag any Contact records that lack a parent Account so the customer's admin can link them to the correct Client in Zoho after migration.
Bullhorn Connexys ATS
Placement
Zoho Recruit
Candidate
lossyBullhorn Placements (the final hire outcome linking Candidate to JobOrder with start date, salary, and status) map to Zoho Recruit Candidates with a placement status indicator. Because Zoho Recruit does not have a dedicated Placement object, we model the placement outcome as a Candidate record with custom fields capturing start date, salary, job reference, and placement status. The original JobOrder reference is preserved in a custom field for reporting.
Bullhorn Connexys ATS
Job Reporting (Stage History)
Zoho Recruit
Custom Fields on Candidate
1:manyBullhorn's Job Reporting junction object tracks each candidate's movement through pipeline stages (Application through Submittal, Interview, Offer, Placement) with timestamps and associated User. Zoho Recruit has no equivalent junction object. We reconstruct stage history as a series of custom fields on the Candidate record: stage_name_1, stage_date_1, stage_name_2, stage_date_2, and so on, up to the maximum number of stages configured in the source Bullhorn pipeline. If Job Reporting records are incomplete in Bullhorn (a known Connexys gotcha), we flag the gaps and reconstruct what source data allows.
Bullhorn Connexys ATS
User (Owner/Recruiter)
Zoho Recruit
User
1:1Bullhorn User records representing recruiters, administrators, and managers map to Zoho Recruit Users. We resolve by email match. Bullhorn Owner assignment on Candidate, JobOrder, and Placement records migrates by resolving the Bullhorn User reference to the corresponding Zoho User record. Any Bullhorn Owner without a matching Zoho User is held in a reconciliation queue for the customer's admin to provision before Candidate import begins.
Bullhorn Connexys ATS
Opportunity
Zoho Recruit
Job
1:1Bullhorn Opportunities track potential placements or client deals with revenue estimates. They map to Zoho Recruit Jobs with revenue-related fields. Bullhorn Opportunity custom fields vary by instance and require field-level mapping to Zoho's equivalent custom fields or notes.
Bullhorn Connexys ATS
Custom Object
Zoho Recruit
Custom Module
1:1Bullhorn Custom Objects (extending Candidates, Contacts, Accounts, Jobs, and Placements with up to 55 fields each; limits 2 on Bullhorn ATS, 10 on Front Office Growth/Enterprise) map to Zoho Recruit Custom Modules. We pre-create the destination Custom Module schema in Zoho Recruit before data import, mapping each Bullhorn Custom Object API name to a Zoho Custom Module with equivalent field types. Bullhorn lookup relationships to standard objects resolve to Zoho Lookup fields during import. Edition tier differences matter: if the customer has built extensive custom data on a lower-tier Bullhorn instance and is moving to a Zoho Recruit edition with fewer custom module allowances, we scope data culling before migration begins.
Bullhorn Connexys ATS
Attachment and Resume
Zoho Recruit
Candidate Attachment
1:1Bullhorn resume parsing extracts structured data from uploaded files, and file attachments export via REST API. We preserve parsed resume data as structured Candidate fields and resume files as Zoho Recruit attachments linked to the Candidate record. Large attachment volumes require chunked handling given Zoho's API credit costs per Bulk Write operation. We batch attachments in groups of 100 records per API call as specified by Zoho's API documentation.
Bullhorn Connexys ATS
Activity and Notes
Zoho Recruit
Activity and Notes
1:1Bullhorn activity feeds and notes on Candidate, Contact, JobOrder, and Placement records export via API. We preserve note body text and timestamps as Zoho Recruit Notes linked to the appropriate Candidate, Client, or Job record. Activity timestamps are preserved as Activity records in Zoho with the original Bullhorn timestamp carried forward.
Bullhorn Connexys ATS
Pipeline Stages
Zoho Recruit
Custom Fields / Status Picklist
lossyBullhorn represents pipeline stages as a configurable sequence from Application through Placement. Zoho Recruit uses a Candidate status field and Job Submission status. We map each Bullhorn stage to a Zoho status value (Applied, Screening, Interview, Offer, Hired, Rejected) and configure Zoho's pipeline view to display equivalent stages. The mapping is stored as a configuration document for the customer's admin to validate against their specific Zoho Recruit setup.
| Bullhorn Connexys ATS | Zoho Recruit | Compatibility | |
|---|---|---|---|
| Candidate | Candidate1:1 | Fully supported | |
| JobOrder | Job1:1 | Fully supported | |
| Account | Client1:1 | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| Placement | Candidatelossy | Fully supported | |
| Job Reporting (Stage History) | Custom Fields on Candidate1:many | Mapping required | |
| User (Owner/Recruiter) | User1:1 | Fully supported | |
| Opportunity | Job1:1 | Fully supported | |
| Custom Object | Custom Module1:1 | Fully supported | |
| Attachment and Resume | Candidate Attachment1:1 | Fully supported | |
| Activity and Notes | Activity and Notes1:1 | Mapping required | |
| Pipeline Stages | Custom Fields / Status Picklistlossy | 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.
Bullhorn Connexys ATS gotchas
API rate limits cap bulk migration throughput
Connexys edition tier governs Custom Object limits
Job Reporting stage history can be incomplete
Bullhorn does not publish pricing publicly
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 data audit
We audit the source Bullhorn Connexys ATS instance across edition tier, Candidate and JobOrder volumes, active Custom Object count, Job Reporting stage history completeness, attachment and resume file volumes, and owner distribution. We pair this with a Zoho Recruit edition assessment: Standard covers most small-to-mid agency migrations; Professional adds 10,000 API credits per day and 500 credits per user; Enterprise adds 30,000 API credits per day, 1,000 credits per user, and higher concurrency limits that matter for large attachment migrations. We also verify that at least two users are provisioned in the destination Zoho Recruit account, as required by Zoho's migration tool. The discovery output is a written migration scope, data volume estimate, and a preliminary object mapping document.
Schema design and custom field creation
We design the destination schema in Zoho Recruit. This includes creating any required Custom Modules for Bullhorn Custom Objects, configuring custom fields for stage-history reconstruction (stage_1_name, stage_1_date, etc.), mapping Bullhorn pipeline stages to Zoho Candidate status values and Job Submission statuses, and setting up any GDPR consent-tracking custom fields since Zoho Recruit has no pre-built consent-management module. We deploy schema changes to the customer's Zoho Recruit sandbox or trial environment first for validation before any data moves. Bullhorn lookup relationships to standard objects (Candidate to JobOrder, Candidate to Placement) resolve to Zoho Lookup fields during import, which we pre-configure.
Data extraction from Bullhorn with rate-limit budgeting
We extract data from Bullhorn Connexys via the REST API within the 100,000-call monthly ceiling and 50-concurrent-session cap. For large databases, we schedule extraction across multiple months or run during off-peak periods to avoid hitting the monthly limit. We extract Candidates, JobOrders, Accounts, Contacts, Placements, Custom Objects, and Job Reporting stage-history records in CSV format. We pre-process exports to satisfy Zoho's mandatory field requirements (inserting placeholder values for any Candidate records missing Last Name) and chunk resume and attachment files for batched upload. Bullhorn GDPR consent records are extracted with consent timestamps preserved for explicit mapping to Zoho custom fields.
Sandbox migration and reconciliation
We run a full migration into the customer's Zoho Recruit environment using production-equivalent data volume as a validation pass. The customer's recruitment operations lead reconciles record counts (Candidates in, Clients in, Jobs in, Contacts in, Custom Module records in), spot-checks 25-50 random records against the Bullhorn source, and validates stage-history reconstruction on a sample of Candidates with known pipeline histories. Any mapping corrections happen here, not in production. We specifically validate that Job Reporting stage-history reconstruction captures the expected number of stage transitions for each sampled Candidate.
Production migration in dependency order
We run production migration in record-dependency order: Users (validated, manual provisioning confirmed), Clients (from Bullhorn Accounts), Contacts (with Client association resolved), Jobs (from Bullhorn JobOrders), Candidates (with GDPR consent fields and stage-history custom fields populated), Custom Modules (from Bullhorn Custom Objects with lookup relationships resolved), and attachments (via Zoho Bulk API in batches of 100 records per API call to stay within credit limits). Each phase emits a row-count reconciliation report before the next phase begins. Bullhorn API extraction runs in parallel with Zoho import to manage the monthly Bullhorn call ceiling across the migration window.
Cutover, validation, and workflow inventory handoff
We freeze Bullhorn writes during cutover, run a final delta migration of any records modified during the migration window, then enable Zoho Recruit as the system of record. We deliver a written inventory of every Bullhorn workflow, automation rule, and GDPR consent-management configuration for the customer's admin to rebuild in Zoho Recruit's workflow builder. We do not rebuild Bullhorn workflows as Zoho workflows inside the migration scope; that work is handled by the customer's admin or a Zoho implementation partner. We support a one-week hypercare window where we resolve any reconciliation issues raised by the customer's recruitment team.
Platform deep dives
Bullhorn Connexys ATS
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 Bullhorn Connexys ATS 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
Bullhorn Connexys ATS: 100,000 API calls per month per org; 50 concurrent sessions maximum.
Data volume sensitivity
Bullhorn Connexys ATS exposes a bulk API — large-volume migrations stream efficiently.
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 Bullhorn Connexys ATS to Zoho Recruit migration scoping. Not seeing yours? Book a call.
Walk through your Bullhorn Connexys ATS 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 Bullhorn Connexys ATS
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.