HRMS migration

Migrate from IceHrm to Bullhorn ATS & CRM

Field-level mapping, validation, and rollback between IceHrm and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.

IceHrm logo

IceHrm

Source

Bullhorn ATS & CRM

Destination

Bullhorn ATS & CRM logo

Compatibility

58%

7 of 12

objects map 1:1 between IceHrm and Bullhorn ATS & CRM.

Complexity

BStandard

Timeline

4-7 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from IceHrm to Bullhorn is a cross-domain migration: IceHrm is a general-purpose HRMS with modules spanning payroll, leave, attendance, training, and performance reviews, while Bullhorn is a purpose-built ATS and CRM for staffing and recruitment agencies. The structural mismatch means the Employee object maps cleanly to Bullhorn Candidate, but IceHrm leave balances, time entries, performance reviews, and payroll runs have no native Bullhorn equivalents and migrate to Bullhorn custom objects or are flagged as requiring a separate HRMS for ongoing management. We audit the deployed IceHrm schema during scoping, discover per-module custom fields, and resolve Bullhorn edition constraints on custom object counts (2 on Bullhorn ATS, 10 on Front Office Growth/Enterprise) before any data moves. Bullhorn does not support workflow migrations; we deliver a written inventory of IceHrm module configurations that the customer's admin rebuilds in Bullhorn or a companion system.

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

IceHrm logo

IceHrm

What's pushing teams away

  • Support responsiveness is a recurring complaint — multiple reviews cite support staff who lack deep product knowledge, causing delays when configuration issues arise.
  • The learning curve for understanding how IceHrm modules interrelate and where specific settings live is steep enough to generate friction during onboarding and configuration.
  • Organizations that scale beyond the SMB tier often find IceHrm lacks the advanced HCM features, reporting depth, or compliance controls available in enterprise platforms like Workday or BambooHR.
  • Teams without in-house developer resources struggle with the self-hosted version's maintenance burden — server updates, database backups, and extension management fall on the customer.

Choosing

Bullhorn ATS & CRM logo

Bullhorn ATS & CRM

What's pulling them in

  • Agencies choose Bullhorn because it combines ATS and CRM in one platform, eliminating the need to switch between separate tools for candidate management and client relationship tracking.
  • The resume parser extracts contact details, work history, and skills into structured, searchable candidate profiles automatically without manual data entry, reportedly driving 24% more placements per recruiter.
  • Bullhorn's placement and split-billing model natively supports contract staffing workflows, handling start/end dates, overtime rules, and multi-party pay/charge rates in a single record.
  • The platform offers extensive third-party integrations through its Recruitment Cloud Marketplace, connecting with back-office, onboarding, and payroll systems used by staffing agencies.
  • 72% of Bullhorn customers are teams with fewer than 10 users, and Bullhorn's implementation team handles setup and data migration for small agencies going live within weeks.

Object mapping

How IceHrm objects map to Bullhorn ATS & CRM

Each row shows how a IceHrm 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.

IceHrm

Employee

maps to

Bullhorn ATS & CRM

Candidate

1:1
Fully supported

IceHrm Employee records map to Bullhorn Candidate. We map firstName, lastName, dateOfBirth, gender, maritalStatus, bloodGroup, photo, privateEmail, workEmail, and address fields to Bullhorn Candidate standard fields. The IceHrm employment_start_date maps to dateAvailable; jobTitle maps to occupation. IceHrm custom fields added to the Employee module migrate to Bullhorn Candidate custom fields (first available custom field slot). If the customer uses IceHrm for internal employees who will be placed as contractors, we discuss the candidate sourcing strategy during scoping because internal employees and external applicants may need separate data flows in Bullhorn.

IceHrm

Employee

maps to

Bullhorn ATS & CRM

User (for internal recruiters)

1:1
Fully supported

IceHrm Employee records marked as admin or manager roles map to Bullhorn User (internal recruiter) records if they will use Bullhorn. We resolve by email match against Bullhorn User. User provisioning is a manual step coordinated with the Bullhorn admin before migration; we provide a mapping table identifying which IceHrm employees should become Bullhorn Users and which remain Candidate-only records.

IceHrm

Organization / Department Structure

maps to

Bullhorn ATS & CRM

Corporation + Department (custom field)

1:1
Fully supported

IceHrm Departments, branches, and offices map to Bullhorn Corporation (for client organizations) and a custom Department picklist on the Candidate record for internal org structure. IceHrm company-level settings migrate as Bullhorn Corporation if the customer is a staffing agency managing multiple client accounts. Internal department hierarchy (HR, Engineering, Sales) maps to a custom Candidate field or Candidate Custom Object tracking internal org assignment.

IceHrm

Recruitment / Job Postings

maps to

Bullhorn ATS & CRM

JobOrder

1:1
Fully supported

IceHrm Job Posting records (title, description, requirements, status, branch) map to Bullhorn JobOrder. The IceHrm job_status field maps to Bullhorn status (Open, Closed, Completed). jobType maps to employmentType; salaryStart and salaryEnd map to payRate or salaryRange custom fields. We map branches and locations to Bullhorn JobOrder address and location fields. Custom job posting fields in IceHrm migrate to JobOrder custom fields up to the Bullhorn field limit.

IceHrm

Recruitment / Applicant Tracking

maps to

Bullhorn ATS & CRM

JobSubmission (Candidate + JobOrder link)

1:1
Fully supported

IceHrm Application records (applicant linked to job posting with stage, interview notes, rating) map to Bullhorn JobSubmission. The IceHrm application_status maps to Bullhorn status (New, Interview, Offer, Hired, Rejected). We preserve interview dates, ratings, and notes as submission history. If IceHrm stores multiple interview rounds, each maps to a separate note or activity record on the JobSubmission. Custom application-stage fields migrate to JobSubmission custom fields.

IceHrm

Employee Documents

maps to

Bullhorn ATS & CRM

Candidate attachments (ContentDocumentLink)

1:1
Fully supported

IceHrm employee documents (contracts, certifications, ID scans, resumes) linked to Employee records migrate as Bullhorn Candidate attachments via ContentDocumentLink. We extract files individually, preserve the original file name and MIME type, and link each document to the Candidate record. Bullhorn's resume parsing processes the attached resume into structured Candidate fields (skills, employment history, education) after migration. File upload is sequential per record with MIME type validation to avoid Bullhorn's rejection of malformed attachments.

IceHrm

Leave / Time-off

maps to

Bullhorn ATS & CRM

Custom Object (Leave Balance Tracker)

1:many
Fully supported

IceHrm Leave module stores leave types (Annual, Sick, Personal), accrual balances, and approved requests. Bullhorn has no native leave balance tracking. We create a Bullhorn Candidate Custom Object (LeaveBalances) with fields per leave type (leaveType, balanceDays, accrualRate, lastAccrualDate) and link each record to the Candidate. Leave request history migrates as a second Custom Object (LeaveRequests) with date range, leave type, status, and approver. Bullhorn ATS editions are limited to 2 custom objects; we discuss with the customer whether leave tracking is migration-critical or handled by a separate HRMS post-migration.

IceHrm

Time & Attendance

maps to

Bullhorn ATS & CRM

Custom Object (TimeEntry History)

1:many
Fully supported

IceHrm Time & Attendance stores punch-in/out timestamps, timesheets, and overtime entries per employee. Bullhorn has no native attendance module. If historical attendance records are migration-critical, we create a Bullhorn Candidate Custom Object (TimeEntries) with date, clockIn, clockOut, hoursWorked, overtimeHours, and status fields linked to the Candidate. Bullhorn ATS's 2-custom-object limit constrains this; we recommend the customer evaluate Bullhorn Time & Expense or a dedicated time-tracking integration for ongoing needs and treat historical data as an audit archive rather than a live-functional migration.

IceHrm

Payroll / Salary Data

maps to

Bullhorn ATS & CRM

Custom Object (Payroll Summary)

1:1
Fully supported

IceHrm Payroll stores salary components, pay schedules, and payroll run history. Bullhorn's native payroll (Bullhorn Connexys, Bullhorn Onboarding) handles time tracking and onboarding billing but is not a full payroll engine. We migrate the most recent payroll run summary (current salary, payFrequency, payGrade, lastPayDate) to a Bullhorn Candidate Custom Object (PayrollSummary) for audit and record continuity. Detailed payroll run history (per-pay-period earnings, deductions, tax withholdings) requires a separate payroll system and is documented as out-of-scope for Bullhorn migration; we recommend HRIS integrations like Gusto, ADP, or Paychex for ongoing payroll management.

IceHrm

Performance Reviews

maps to

Bullhorn ATS & CRM

Custom Object (Review History)

1:many
Fully supported

IceHrm Performance Reviews store review cycles, templates, ratings, and peer feedback per employee. Bullhorn has no native performance review module. We create a Bullhorn Candidate Custom Object (PerformanceReviews) with reviewDate, reviewerName, overallRating, strengths, areasForImprovement, and status fields. Peer review comments migrate as long-text fields within the Review record. IceHrm custom review templates map to a templateName field; the structured template criteria migrate as separate custom fields. If the customer uses IceHrm for annual performance management, we recommend Bullhorn's partner ecosystem (Lattice, BambooHR, Culture Amp) for ongoing performance tracking post-migration.

IceHrm

Training / Learning Management

maps to

Bullhorn ATS & CRM

Custom Object (Training History)

1:many
Fully supported

IceHrm Training tracks courses, enrollments, completion dates, and learning paths per employee. Bullhorn has no native LMS. We create a Bullhorn Candidate Custom Object (TrainingRecords) with courseName, enrollmentDate, completionDate, status (Enrolled, In Progress, Completed, Failed), and certificationExpiry fields. Learning path associations migrate as a text field or link to a separate TrainingPrograms Custom Object if Bullhorn's custom object budget permits. The customer should evaluate Bullhorn's integrations with LMS platforms or dedicated training systems for ongoing learning management.

IceHrm

Custom Fields (per module)

maps to

Bullhorn ATS & CRM

Custom Fields (per entity)

lossy
Fully supported

IceHrm allows custom fields per module independently, meaning the Employee module and Recruitment module may have different custom field schemas. We discover all IceHrm custom fields during the pre-migration audit, map each to the corresponding Bullhorn entity (Candidate, JobOrder, JobSubmission) custom field slot, and resolve data type compatibility (IceHrm picklist maps to Bullhorn drop-down; IceHrm text maps to Bullhorn text). Bullhorn's custom field limits per entity are published in the Bullhorn KB; we verify slot availability during scoping and flag any fields that exceed the limit for customer decision on exclusion or custom object fallback.

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.

IceHrm logo

IceHrm gotchas

High

Self-hosted schema modifications cause migration surprises

High

Employee count billing model on IceHrm Cloud

Medium

Custom fields per module require manual field-level discovery

Medium

Document attachment export requires file-by-file handling

Bullhorn ATS & CRM logo

Bullhorn ATS & CRM gotchas

High

ATS Growth edition has no API access

High

Attachments excluded from CSV bulk exports

Medium

Custom Object limits vary sharply by edition

Medium

Opportunity pipeline stages are recruitment-specific

Low

Resume parse quality varies by document format

Pair-specific challenges

  • Bullhorn custom object limits constrain multi-module IceHrm migrations

    IceHrm ships with nine modules (Employees, Leave, Time, Payroll, Recruitment, Performance, Training, Documents, Expenses) that have no direct Bullhorn equivalents. Bullhorn ATS is limited to 2 custom objects; Front Office Growth/Enterprise supports up to 10 custom objects with 55 fields each. We map leave, time, payroll, performance, and training data to custom objects during migration, but the customer must prioritize which IceHrm modules warrant custom object slots. We provide a ranked recommendation during scoping and flag which modules should be excluded from migration and handled by a companion HRMS post-migration.

  • IceHrm self-hosted schema modifications require field-level audit before mapping

    IceHrm's self-hosted version runs PHP and MySQL with direct database access, allowing customers to add columns, modify field types, or create custom tables. Cloud instances use the standard schema. We cannot assume the deployed schema matches the upstream IceHrm release. During pre-migration audit, we inspect the actual database structure (cloud instances via Admin export; self-hosted via database query or file system access) and adjust field mappings per the discovered schema. Custom PHP modifications or extended tables are flagged before migration begins.

  • Employee-to-Candidate mapping has downstream placement workflow implications

    IceHrm Employee records may represent internal staff, contract workers, and job applicants in a single object. Bullhorn separates Candidates (external job seekers) from Users (internal recruiters) and has no internal employee management object. We map IceHrm employees to Bullhorn Candidates, but the customer must define the business logic for which records are actual placement candidates versus internal staff who happen to be in IceHrm. Failing to resolve this upfront produces a Bullhorn database cluttered with non-placeable internal records.

  • Document attachment export from IceHrm is file-by-file

    IceHrm stores employee documents (contracts, certifications, ID scans, resumes) as file attachments linked to records. There is no bulk file export endpoint; we extract documents individually via the web interface (cloud) or file system access (self-hosted). We preserve file name, MIME type, upload date, and record linkage. Bullhorn's candidate record accepts attachments but requires MIME type validation and sequential file insertion to avoid corruption. If the customer has hundreds of documents, this step extends the migration timeline significantly.

  • Bullhorn workflows and automations do not migrate from IceHrm

    IceHrm module-level workflows (leave approval chains, recruitment stage triggers, training enrollment rules) have no equivalent in Bullhorn. Bullhorn Automation (formerly Herefish) handles candidate engagement sequences but is a separate product with its own configuration. We do not migrate IceHrm workflows as code. We deliver a written inventory of every active IceHrm module configuration, workflow trigger, approval chain, and automation rule with a recommended Bullhorn equivalent (Bullhorn workflows, Bullhorn Automation, or a third-party integration). The customer's Bullhorn admin rebuilds these post-migration.

Migration approach

Six steps for a successful IceHrm to Bullhorn ATS & CRM data migration

  1. Discovery and schema audit

    We audit the source IceHrm instance across all active modules, identifying standard and custom fields per module (Employees, Leave, Time, Payroll, Recruitment, Performance, Training, Documents, Organization). For cloud instances, we use the Admin export and API access; for self-hosted, we query the MySQL schema directly. We document the deployed schema versus the upstream IceHrm release, identify custom field counts per module, and flag any non-standard field types. We pair this with a Bullhorn edition assessment (ATS at 2 custom objects vs Front Office Growth/Enterprise at 10) and a migration-priority ranking for the five IceHrm modules without native Bullhorn equivalents.

  2. Custom object planning and Bullhorn schema setup

    We design the Bullhorn destination schema based on the custom object priority ranking. For each IceHrm module assigned a custom object slot, we define the object name, fields (data type, required/optional, picklist values), and relationship to the Candidate record. Bullhorn custom object setup requires a support ticket with a completed Custom Object Setup Spreadsheet; we prepare this spreadsheet and coordinate with the customer's Bullhorn admin to submit it. Standard Bullhorn fields receive the IceHrm field mappings. The schema deploys to a Bullhorn Sandbox first for validation before any data moves.

  3. Sandbox migration and record reconciliation

    We run a full migration into Bullhorn Sandbox using representative data volume. The customer reconciles record counts across all objects (Candidate, JobOrder, JobSubmission, custom objects), spot-checks 25-50 randomly selected records against the IceHrm source for field-level accuracy, and validates that Bullhorn's resume parsing correctly populates Candidate structured fields from uploaded resumes. We correct any mapping errors identified in sandbox before production migration begins. Sandbox sign-off is a required gate.

  4. File extraction and document preparation

    We extract all employee documents from IceHrm individually, preserving file name, MIME type, upload date, and the linked Employee record ID. For self-hosted instances, we access the file storage directory directly; for cloud instances, we use the web interface export. We organize documents by Employee ID, validate MIME types against Bullhorn's accepted list, and prepare a mapping table linking each file to the destination Candidate record. Large document volumes (over 5,000 files) extend the timeline by one to two weeks for file handling alone.

  5. Production migration in dependency order

    We run production migration in sequence: Bullhorn Users (manually provisioned, validated by customer), Candidate records (with Employee data mapped and custom fields populated), JobOrder records (job postings from IceHrm Recruitment), JobSubmission records (applications linked to JobOrder and Candidate), custom object records (leave, time, payroll, performance, training history in priority order), and documents (attached via ContentDocumentLink). Each phase emits a row-count reconciliation report before the next phase begins. Bullhorn API rate limits are respected with exponential backoff and batch chunking.

  6. Cutover, validation, and workflow handoff

    We freeze IceHrm writes during cutover, run a final delta migration of any records modified during the window, then enable Bullhorn as the system of record for candidate and recruitment data. We deliver the IceHrm workflow and module configuration inventory to the customer's Bullhorn admin for rebuild planning. We support a one-week hypercare window for reconciliation issues. We do not rebuild IceHrm module configurations as Bullhorn workflows or Bullhorn Automation inside the migration scope; those are documented for the customer's admin to rebuild or for a separate Bullhorn Automation engagement.

Platform deep dives

Context on both ends of the pair

IceHrm logo

IceHrm

Source

Strengths

  • Fully open-source with source-code access on GitHub, giving teams complete control over the codebase and hosting environment.
  • Modular architecture allows activating only needed HR modules, reducing system complexity for smaller teams.
  • Cloud tier pricing is aggressively low at $12/month for up to 6 employees, making it accessible for micro-SMBs and early-stage companies.
  • Both cloud and self-hosted deployments share the same feature set, enabling a low-risk migration path from managed to self-hosted.
  • Covers the full core HRMS surface area: employee management, leave, attendance, payroll, recruitment, performance reviews, and training.

Weaknesses

  • Support quality is inconsistent — reviewers report support staff with limited product knowledge and slow response times on complex issues.
  • The learning curve is steep for non-technical HR administrators who need to understand how modules interconnect and where settings live.
  • API documentation is not publicly prominent, limiting the availability of structured, programmatic export options for large-scale data extraction.
  • Enterprise-grade features — advanced analytics, compliance automation, global payroll — are absent or underdeveloped compared to HCM platforms like BambooHR or Workday.
  • Self-hosted deployments require in-house server maintenance, database management, and update handling, which is a significant hidden cost for teams without developer resources.
Bullhorn ATS & CRM logo

Bullhorn ATS & CRM

Destination

Strengths

  • Unified ATS and CRM on one platform purpose-built for staffing agencies, eliminating separate tools for candidates and clients.
  • Automated resume parsing extracts structured candidate data—contact details, work history, skills—into searchable profiles instantly.
  • Native placement and split-billing model handles contract staffing workflows including start/end dates and overtime rules.
  • Bullhorn Recruitment Cloud Marketplace offers 100+ pre-validated third-party integrations spanning the full recruiting lifecycle.
  • 24/7 global support coverage from 350+ support staff with dedicated account management included at all tiers.

Weaknesses

  • Widely regarded as old and bloated with an unintuitive interface and steep learning curve for new recruiters.
  • Slow page loads and performance lag cited in over 200 verified G2 reviews during high-volume recruiting periods.
  • Pricing is opaque—custom-negotiated per organization with significant upfront implementation fees that vary by deal.
  • ATS Growth edition excludes API access entirely, preventing automated data export without upgrading first.

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 IceHrm and Bullhorn ATS & CRM.

  • 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

    IceHrm: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

Estimate your IceHrm to Bullhorn ATS & CRM 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 IceHrm to Bullhorn ATS & CRM data migrations

Answers to the questions buyers ask most during IceHrm to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your IceHrm to Bullhorn ATS & CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations land between four and seven weeks for accounts under 500 employees with core recruitment data and up to two custom objects. Migrations that include leave history, time entries, payroll summaries, performance reviews, and training records (all requiring custom object setup and data transformation) move to ten to fourteen weeks. Bullhorn's custom object setup requires a support ticket with Bullhorn, which adds one to two weeks of coordination. Document-heavy IceHrm instances (over 1,000 file attachments) add linear time for file extraction and attachment.

Adjacent paths

Related migrations to explore

Ready when you are

Move from IceHrm.
Land in Bullhorn ATS & CRM, 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