HRMS migration
Field-level mapping, validation, and rollback between iRecruit and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.
iRecruit
Source
Bullhorn ATS & CRM
Destination
Compatibility
10 of 12
objects map 1:1 between iRecruit and Bullhorn ATS & CRM.
Complexity
BStandard
Timeline
4-6 weeks
Overview
iRecruit and Bullhorn serve different segments of the recruitment market and the migration reflects that structural gap. iRecruit is a hosted ATS for small-to-mid-size businesses with no public API, a built-in Exporter for ad-hoc data pulls, and an iConnect onboarding module that handles I-9 and e-signatures. Bullhorn is an ATS and CRM built for staffing and recruitment agencies with 26 years of domain depth, a fully documented REST and Bulk API, and over 350 marketplace integrations. The migration requires building export scope from iRecruit's existing saved reports since no programmatic API pull is possible, mapping per-job knock-out questions and custom screening questions to Bullhorn's custom field and custom object model, and preserving WOTC tax credit fields while flagging that re-enrollment with the payroll provider is a manual post-migration step. Bullhorn workflows, automations, and active onboarding invite sessions do not migrate as live configurations; we document them for the customer's admin to rebuild.
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 iRecruit object lands in Bullhorn ATS & CRM, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
iRecruit
Job / Job Posting
Bullhorn ATS & CRM
JobOrder
1:1iRecruit Job postings map to Bullhorn JobOrder records. Each iRecruit job carries its title, description, location, employment type, and salary range as standard fields. Job status (open, filled, closed) maps to Bullhorn's status field. Internal and external visibility flags map to the isPublic flag on JobOrder. Active social posting settings (LinkedIn, Facebook, Twitter) do not have a direct Bullhorn API equivalent for bulk configuration — we document the setting state for the customer's admin to reconfigure in Bullhorn's job distribution settings post-migration.
iRecruit
Candidate / Applicant
Bullhorn ATS & CRM
Candidate
1:1iRecruit candidate profiles map to Bullhorn Candidate records. The candidate's resume is attached as a ContentDocument linked to the Candidate via ContentDocumentLink. Application date, source (Indeed, Monster, direct, etc.), and current stage migrate as standard fields. Candidate email, phone, name, and address fields map directly. Where a candidate has applied to multiple iRecruit jobs, we create one Bullhorn Candidate record with separate JobSubmission records for each application, preserving the per-application stage independently.
iRecruit
Job Submission / Application
Bullhorn ATS & CRM
JobSubmission
1:1Each iRecruit candidate-to-job application maps to a Bullhorn JobSubmission record linking the Candidate to the JobOrder. The submission date, status (new, screening, interview, offer, hired, rejected), and any rejection reason migrate. The JobSubmission is the Bullhorn object that tracks the candidate's movement through the hiring pipeline for a specific job, satisfying the requirement to represent each application as a distinct record.
iRecruit
Requisition
Bullhorn ATS & CRM
Lead or JobOrder (split by type)
lossyiRecruit Enterprise requisitions capture the hiring request from a department manager, including job details, department, and approval status. We map requisitions to Bullhorn Lead records if they represent a pre-qualified client hiring need, or to JobOrder if they represent an internal staffing req that becomes a job order in Bullhorn. Requisition approval routing state migrates as a custom field on the target object, not as a Bullhorn workflow — the approval chain requires rebuild in Bullhorn's approval process configuration.
iRecruit
iConnect Onboarding Record
Bullhorn ATS & CRM
Onboarding (Able) or custom Candidate fields
1:1iRecruit iConnect onboarding records contain I-9 completion status, tax form responses (W-4, state equivalents), benefits enrollment selections, and e-signature completion flags. Bullhorn's Able onboarding module handles this differently. We migrate the onboarding form field data and completion state as custom fields on the Bullhorn Candidate record so the Bullhorn admin can initiate onboarding from the correct stage in Able. Active iConnect e-signature invite sessions cannot be transferred as live sessions — they must be restarted in Bullhorn Able on day one of go-live.
iRecruit
User / Team Member
Bullhorn ATS & CRM
User
1:1iRecruit user accounts (recruiter, hiring manager, admin roles) map to Bullhorn User records. Role assignments and team associations migrate as user-level properties and a custom User field for department affiliation. Session-based authentication tokens cannot migrate. Bullhorn's User records must be provisioned by the customer's Bullhorn admin before the candidate and job migrations run, since OwnerId references on JobOrder and Candidate require a valid Bullhorn User ID.
iRecruit
Custom Knock-Out Question
Bullhorn ATS & CRM
Custom Object or custom fields on JobOrder
1:manyiRecruit stores knock-out questions as per-job field configurations, and a candidate's answer set varies by the specific job they applied to. Bullhorn does not have a native per-job knock-out question model — the equivalent is a Bullhorn Custom Object attached to the JobOrder, or a set of custom fields on JobOrder. We create a Custom Object (up to 10 on Bullhorn ATS) capturing each knock-out question and its type (boolean pass/fail, multi-select), then attach answer instances as Custom Object records per JobSubmission. This preserves the per-job answer context that would otherwise collapse if mapped to a static custom field on Candidate.
iRecruit
Custom Screening Question (per job)
Bullhorn ATS & CRM
Custom fields on JobSubmission
1:1iRecruit custom screening questions are defined at the job level and capture free-text, numeric, or multiple-choice answers from applicants. These migrate as custom fields on Bullhorn JobSubmission so each candidate's answers attach to the specific application record rather than the candidate profile. Bullhorn ATS Growth limits custom fields per entity — we audit the field count during scoping and use Bullhorn's custom field limit structure (up to 20 of any combination of checkboxes, drop-downs, radio, pickers, and text types per entity) as the constraint.
iRecruit
Communication Template
Bullhorn ATS & CRM
Note (as template text)
1:1iRecruit communication templates store mass personalised email body text and subject lines tied to specific candidate stages. Template text migrates as Note records attached to a designated Bullhorn User or a Bullhorn custom object created for template storage. Active sending queues and scheduled send-time triggers do not migrate — these are workflow-level features that require rebuild in Bullhorn's automation module. The template body text and subject lines are preserved for the admin to reconfigure in Bullhorn's email template system.
iRecruit
WOTC Tax Credit Record
Bullhorn ATS & CRM
Custom fields on Candidate
1:1WOTC qualification category, qualifying date, and credit amount range per candidate migrate as custom fields on the Bullhorn Candidate record. Bullhorn has no native WOTC object. We preserve the full WOTC field set (category, qualifying date, credit range, status) so the customer's accounting records are complete. Re-enrollment with the destination payroll provider is a manual post-migration step — the filing window is typically 28 days from hire date, and failure to re-submit forfeits the credit.
iRecruit
EEO / Affirmative Action Data
Bullhorn ATS & CRM
Custom fields on Candidate
1:1iRecruit EEO demographic fields (race/ethnicity, gender, veteran status, disability status) and hiring outcome flags migrate as custom fields on the Bullhorn Candidate record. Bullhorn ATS does not have a native affirmative action reporting module at every tier — EEO reporting on Bullhorn is available through Bullhorn Recruitment Cloud or via third-party compliance tools. We preserve the underlying demographic data so it can feed a reporting tool of the customer's choosing. The generated EEO reports themselves do not migrate as formatted reports.
iRecruit
Custom Export File / Sage HRMS / MyPayrollHR Schema
Bullhorn ATS & CRM
Custom fields and custom objects on relevant entities
1:1Where iRecruit has been configured with a custom export file pushing to Sage HRMS or MyPayrollHR, we migrate the export field schema as Bullhorn custom fields and custom objects. The mapping is driven by the customer's existing iRecruit export definition — we work from the export file structure to identify which fields are derived from which source object and replicate that relationship in Bullhorn's schema. Customers on other HRIS platforms will need to re-establish their export pipeline using Bullhorn's API or a Bullhorn marketplace integration post-migration.
| iRecruit | Bullhorn ATS & CRM | Compatibility | |
|---|---|---|---|
| Job / Job Posting | JobOrder1:1 | Fully supported | |
| Candidate / Applicant | Candidate1:1 | Fully supported | |
| Job Submission / Application | JobSubmission1:1 | Fully supported | |
| Requisition | Lead or JobOrder (split by type)lossy | Fully supported | |
| iConnect Onboarding Record | Onboarding (Able) or custom Candidate fields1:1 | Fully supported | |
| User / Team Member | User1:1 | Fully supported | |
| Custom Knock-Out Question | Custom Object or custom fields on JobOrder1:many | Fully supported | |
| Custom Screening Question (per job) | Custom fields on JobSubmission1:1 | Fully supported | |
| Communication Template | Note (as template text)1:1 | Fully supported | |
| WOTC Tax Credit Record | Custom fields on Candidate1:1 | Fully supported | |
| EEO / Affirmative Action Data | Custom fields on Candidate1:1 | Fully supported | |
| Custom Export File / Sage HRMS / MyPayrollHR Schema | Custom fields and custom objects on relevant entities1: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.
iRecruit gotchas
No documented public API for programmatic migration
Active iConnect onboarding sessions are not transferable
Knock-out questions and custom job questions vary per requisition
WOTC qualification records require HRIS re-enrollment
Bullhorn ATS & CRM gotchas
ATS Growth edition has no API access
Attachments excluded from CSV bulk exports
Custom Object limits vary sharply by edition
Opportunity pipeline stages are recruitment-specific
Resume parse quality varies by document format
Pair-specific challenges
Migration approach
Discovery and export scope building
We conduct a structured discovery session with the customer's iRecruit admin to identify all saved Exporter report definitions, active job postings, candidate record volume, requisition approval histories, onboarding record states, and any custom export file configurations. We review the custom knock-out and screening questions per job, the WOTC qualification record count, and the EEO demographic field configuration. If no saved Exporter reports exist, we build the export scope collaboratively with the admin, pulling the same dataset they rely on for reporting. This phase produces a written migration scope document specifying record volumes, object inventory, and the Bullhorn tier recommendation based on custom field and custom object count.
Bullhorn schema design
We design the Bullhorn destination schema based on the export scope. This includes provisioning custom fields on JobOrder (for job-level metadata), JobSubmission (for per-application answers), and Candidate (for WOTC, EEO, and onboarding state fields). For knock-out questions, we create Bullhorn Custom Objects attached to JobOrder and JobSubmission, using the Bullhorn Custom Object Setup Sheet to define field names, edit types, required flags, and picklist values. We configure the Bullhorn job distribution settings to replicate the social posting configuration from iRecruit. Schema is validated in a Bullhorn Sandbox before any production data moves.
Export extraction and data transformation
We extract data from iRecruit using the Exporter tool or custom export files based on the saved report definitions from Phase 1. The export files are ingested into our transformation pipeline, where we apply the mapping logic: per-job knock-out answers to JobSubmission custom fields, candidate applications to JobSubmission records with the Candidate as the parent, WOTC fields to Candidate custom fields, and EEO fields to Candidate custom fields. For multi-job candidates, we generate separate JobSubmission records per application. We run a data quality audit checking for missing required fields, invalid formats, and orphaned records (candidates with no associated job submission) before loading.
Sandbox migration and reconciliation
We run a full migration into a Bullhorn Sandbox using production-like record volumes. The customer's Bullhorn admin reviews a reconciliation report comparing record counts in iRecruit against what landed in Bullhorn, spot-checks 25-50 candidate and job records for field-level accuracy, and verifies that knock-out question answers are stored at the correct level (JobSubmission or Custom Object rather than Candidate). Any mapping corrections are made to the transformation pipeline and the Sandbox migration is re-run until reconciliation passes. The admin signs off the schema and mapping before production migration is scheduled.
User provisioning and owner reconciliation
Bullhorn User records must be provisioned before any OwnerId references can be assigned to JobOrder, Candidate, or JobSubmission records. We extract every distinct iRecruit user referenced on a record (recruiter, hiring manager, admin) and map them to Bullhorn User by email match. Any iRecruit user without a matching Bullhorn User goes to a provisioning queue for the customer's Bullhorn admin to create and activate. Bullhorn ATS Growth and Starter tiers have user count limits — we verify the provisioned user count against the tier during this phase.
Production migration in dependency order
Production migration runs in record-dependency order: Bullhorn Users (provisioned, not migrated), JobOrder records (jobs are the parent for submissions), Candidate records (candidates are the parent for submissions), JobSubmission records with resolved CandidateId and JobOrderId, Custom Object instances for knock-out questions with resolved JobOrderId, custom field values on Candidate for WOTC and EEO data, and communication template text as Note records. We use Bullhorn REST API for record-level inserts and the Bulk API for large batch imports, with exponential backoff on rate-limit responses. Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and inventory handoff
We freeze iRecruit writes during the cutover window, run a delta migration of any records modified during the migration window, then enable Bullhorn as the system of record. We deliver the complete inventory of items that require manual rebuild in Bullhorn: active iConnect onboarding invite sessions (restart in Able), workflow and automation equivalents, job board distribution configuration, requisition approval routing rules, and the WOTC re-enrollment checklist with the 28-day filing window noted. We support a one-week hypercare window where we resolve any record-level issues raised by the recruiting team. Rebuild of Bullhorn automations, onboarding templates, and approval processes is outside standard migration scope.
Platform deep dives
iRecruit
Source
Strengths
Weaknesses
Bullhorn ATS & CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard HRMS migration. All 7 core objects map 1:1 between iRecruit and Bullhorn ATS & CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across iRecruit and Bullhorn ATS & CRM.
Object compatibility
All 7 core objects map 1:1 between iRecruit and Bullhorn ATS & CRM.
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
iRecruit: Not publicly documented.
Data volume sensitivity
iRecruit 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 iRecruit to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.
Walk through your iRecruit to Bullhorn ATS & CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave iRecruit
Other ways to arrive at Bullhorn ATS & CRM
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.