HRMS migration

Migrate from ChartHop to Bullhorn ATS & CRM

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

ChartHop logo

ChartHop

Source

Bullhorn ATS & CRM

Destination

Bullhorn ATS & CRM logo

Compatibility

43%

6 of 14

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

Complexity

BStandard

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from ChartHop to Bullhorn is a platform-type transition: ChartHop is a people-operations HRMS centered on employee records, org charts, and headcount planning; Bullhorn is a staffing ATS and CRM built around candidates, client companies, job orders, and placements. The migration maps ChartHop's People to Bullhorn Candidate, Jobs to JobOrder, and Departments to a combination of JobOrder corporate references and Custom Objects for org hierarchy. Compensation bands, performance review responses, and engagement survey aggregates migrate into Bullhorn Custom Objects only if the customer's Bullhorn edition supports them. Headcount planning scenarios cannot migrate because ChartHop does not expose them via public API. We deliver an itemized schema document for Bullhorn Support to create Custom Objects before migration begins, and we flag each data type that has no Bullhorn analog for manual re-entry post-migration.

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

ChartHop logo

ChartHop

What's pushing teams away

  • Integration depth with payroll and ATS systems is inconsistent; some teams report that data syncs require manual reconciliation or additional middleware.
  • Limited customization compared to enterprise HR suites; organizations with complex workflows or unique data models find ChartHop too opinionated.
  • Technical stability concerns include occasional data staleness, crashes, and site instability reported in user reviews.
  • Steep learning curve for advanced features like custom scenario types and approval workflows; initial admin configuration is required before teams can use the platform fully.
  • Custom field proliferation without governance leads to cluttered data sheets and confusing reporting views over time.

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 ChartHop objects map to Bullhorn ATS & CRM

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

ChartHop

Person (Employee)

maps to

Bullhorn ATS & CRM

Candidate

1:1
Fully supported

ChartHop People records map to Bullhorn Candidate. All standard profile fields (firstName, lastName, email, phone with country code, jobTitle, startDate, employmentType) map directly. Custom fields migrate into Bullhorn custom fields on the Candidate entity. Active candidates in Bullhorn are distinguished from inactive by the candidate's employmentStatus mapped to the Candidate isDeleted flag. We resolve manager relationships during migration by cross-referencing manager email against the Bullhorn User table.

ChartHop

Person Custom Fields

maps to

Bullhorn ATS & CRM

Candidate Custom Fields (customField1-customField20)

lossy
Fully supported

ChartHop unlimited custom fields on People must map into Bullhorn's Candidate entity custom fields. Bullhorn ATS Growth edition has no Candidate custom fields; Bullhorn ATS has 2 Custom Objects; Front Office Growth and Enterprise editions support up to 10 Custom Objects with 55 fields each. We audit every ChartHop custom field during scoping, deduplicate near-duplicates (e.g., 'Comp Band' vs 'Compensation Band'), and generate a Custom Object Setup Sheet for Bullhorn Support to create before migration. Custom field types (text, date, multiple choice, yes/no) map to equivalent Bullhorn field edit types.

ChartHop

Job (Position)

maps to

Bullhorn ATS & CRM

JobOrder

1:1
Fully supported

ChartHop Job records — title, department, employmentType, compensationBand, jobLevel — map to Bullhorn JobOrder. jobTitle in ChartHop becomes title in Bullhorn JobOrder. The ChartHop Job status (active, closed, on-hold) maps to JobOrder status (Open, Closed, Canceled). compensationBand data from ChartHop migrates to JobOrder custom fields; Bullhorn's standard JobOrder does not have a native compensation band structure. jobLevel maps to a Bullhorn custom field if the customer requires level classification at the JobOrder level.

ChartHop

Department

maps to

Bullhorn ATS & CRM

CorporateDepartment (via ClientCorporation or JobOrder reference)

lossy
Fully supported

ChartHop Department records represent internal organizational units. Bullhorn does not have a native internal-department object. We map ChartHop Departments to Bullhorn CorporateDepartment if the customer's Bullhorn edition includes this object, or to a custom field on JobOrder (department__c) and Candidate (primaryDepartment__c) for filtering and reporting. The department tree's parent-child hierarchy is preserved as a custom text field (departmentPath__c) since Bullhorn's CorporateDepartment does not natively support recursive parent-child trees.

ChartHop

Reporting Relationship (Manager)

maps to

Bullhorn ATS & CRM

User lookup on Candidate

1:1
Fully supported

ChartHop's manager field on each Person record stores a reference to another Person record. We resolve this at migration time by extracting the manager's email from ChartHop and matching it against Bullhorn User records. If the manager is not a Bullhorn User, we assign the record to the nearest available Bullhorn User and flag the orphan for admin review. Bullhorn does not have a native reporting-structure object, so manager relationships are stored as a custom lookup field on the Candidate record pointing to the Bullhorn User who is the hiring manager.

ChartHop

Matrix Team

maps to

Bullhorn ATS & CRM

Custom Object (customObject1s-matrixTeam)

lossy
Fully supported

ChartHop Matrix Teams model cross-functional reporting where one employee has multiple managers. Bullhorn has no native multi-manager structure. We export matrix assignments (person email, team name, role, primary manager, secondary manager) and load them into a Bullhorn Custom Object. The custom object links to Bullhorn Candidate records via a custom lookup field. Access controls on the custom object restrict visibility to relevant departments. Bullhorn Support must create this Custom Object before migration; the setup sheet is included in the pre-migration handoff package.

ChartHop

Compensation (base, cash, variable, equity, total)

maps to

Bullhorn ATS & CRM

Custom Object or Candidate custom fields

lossy
Fully supported

ChartHop compensation fields (baseCompensation, cashCompensation, variableCompensation, equityCompensation, totalCompensation, payFrequency) map to Bullhorn Candidate custom fields or a Custom Object linked to Candidate. We determine the target based on the customer's Bullhorn edition and Custom Object budget. Compensation band data from ChartHop's Compensation module migrates as a separate export pass with company, bandMin, bandMid, bandMax, and jobLevel fields loaded into a compensation-bands Custom Object if available. Historical compensation cycles are not migrated as structured records unless a Custom Object is allocated for them.

ChartHop

Time Off and PTO Balances

maps to

Bullhorn ATS & CRM

Bullhorn Time & Expense or Candidate custom fields

lossy
Mapping required

ChartHop PTO balances (current balance, accrual rate, policy type) are exported as a snapshot. Bullhorn has no native PTO tracking object. The migration maps current PTO balances to Bullhorn Candidate custom fields (ptoBalance__c, ptoAccrualRate__c, ptoPolicyType__c) if the customer does not license Bullhorn Time & Expense. Historical accrual logs require a separate export pass and are delivered as a CSV reference document for the customer's HR admin to reconcile against their payroll system. PTO data does not map into Bullhorn's standard ATS or CRM objects.

ChartHop

Performance Review (cycles, forms, responses)

maps to

Bullhorn ATS & CRM

Custom Object or Candidate attachments

lossy
Fully supported

ChartHop Performance review cycles, review forms, and submitted responses are exported as structured records. Bullhorn has no native performance review object. We map completed review data (reviewer name, reviewee email, reviewPeriod, overallRating, responseText) into a Bullhorn Custom Object linked to the Candidate record, provided the Bullhorn edition supports Custom Objects. Review templates with custom question types require manual re-creation in Bullhorn Forms or as Bullhorn custom fields. We deliver a written inventory of each review cycle with its field mapping so the customer's admin can confirm completeness before migration.

ChartHop

Goals (company, team, individual objectives and progress)

maps to

Bullhorn ATS & CRM

Custom Object linked to Candidate or Opportunity

lossy
Fully supported

ChartHop Goals store company, team, and individual objectives with progress values linked to live people data. Bullhorn has no native goal-tracking object. We export goal hierarchies (goalName, goalType, ownerEmail, parentGoal, progressPercent, status) and load them into a Bullhorn Custom Object linked to the relevant Candidate record via a lookup. Cascading goal dependencies are preserved as a text field listing the parent goal ID since Bullhorn Custom Objects do not support native parent-child relationship fields without Salesforce Object creation. Goal rebuild in Bullhorn depends on whether the customer licenses Bullhorn Automation (Herefish) for task-based goal tracking.

ChartHop

Engagement Survey (responses, aggregates, benchmarks)

maps to

Bullhorn ATS & CRM

Custom Object (if edition supports) or reference document

lossy
Fully supported

ChartHop Engagement survey responses and aggregate results are exported with anonymization where required. Bullhorn has no native engagement survey object. Survey metadata (question text, participation rate, benchmark data) is preserved in a Bullhorn Custom Object if the Bullhorn edition supports Custom Objects. Anonymized individual responses migrate as aggregate records to avoid re-identification risk. Survey creation and distribution tools do not migrate; we recommend Bullhorn's native survey capabilities or a third-party integration as the replacement path.

ChartHop

Documents and Files (employee attachments)

maps to

Bullhorn ATS & CRM

Candidate Document storage (ContentDocument via ContentDocumentLink)

1:1
Fully supported

ChartHop file uploads per employee profile (miscellaneous and field-linked files) migrate as Bullhorn ContentDocument records linked to the Candidate via ContentDocumentLink. All files must be under Bullhorn's 100MB limit per document; files exceeding this threshold are flagged and delivered as a separate ZIP archive for manual upload. We preserve the original file name, file type, upload date, and the ChartHop custom field the file is linked to (mapped to a Bullhorn custom field on the Candidate for reference). File access controls from ChartHop do not transfer; Bullhorn document security is managed through Bullhorn's own user-role permissions.

ChartHop

Org Chart View

maps to

Bullhorn ATS & CRM

Reference document and Bullhorn department reporting

1:1
Fully supported

ChartHop's org chart is a rendered view of People, Jobs, and reporting lines. Bullhorn does not render org charts. We export the underlying data — every Person record with their manager reference, department, and job title — as a structured reference document (CSV + JSON) that the customer can use to re-create the org view in a third-party visualization tool or within Bullhorn's reporting structure. Matrix reporting relationships are included in this export and are separately mapped via the Matrix Team Custom Object (see mapping row 6). The visual layout itself does not migrate.

ChartHop

Headcount Planning Scenarios

maps to

Bullhorn ATS & CRM

Reference document only

1:1
Not supported

ChartHop headcount planning scenarios — including proposed hires, budget impacts, approval statuses, and scenario types (create, update, terminate/backfill, promotion, budget, custom) — are inaccessible via ChartHop's public API. We flag the existence of active scenarios during pre-migration scoping and export them as reference documents (CSV) for the customer's HR and Finance teams to re-create manually in Bullhorn or a third-party headcount planning tool. Bullhorn does not have a native headcount planning module; customers typically integrate Bullhorn with an HRMS (Workday, BambooHR) or use Bullhorn's Custom Objects to model headcount scenarios post-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.

ChartHop logo

ChartHop gotchas

High

Headcount planning scenarios are not accessible via API

Medium

Spreadsheet imports require XLSX format and strict formatting rules

Medium

ATS integration with Jobvite requires exact email matching

Medium

Internal transfers are not supported in ATS sync

Low

Custom fields proliferate without governance by default

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 Objects require Bullhorn Support to create

    Bullhorn Custom Objects cannot be created via the REST API by the customer alone; Bullhorn Support must provision them using a Custom Object Setup Sheet. This introduces a sequencing constraint: the Bullhorn edition must be confirmed (ATS Growth has zero Custom Objects; Bullhorn ATS has 2; Front Office Growth and Enterprise have 10) and Bullhorn Support tickets must be opened before migration data extraction begins. We include the completed Custom Object Setup Sheet in the pre-migration handoff package and coordinate the Bullhorn Support ticket timeline with the migration schedule.

  • ChartHop headcount planning scenarios are not accessible via API

    ChartHop does not expose headcount planning scenarios through its public API. All scenario data — proposed hires, budget impacts, approval workflows, and scenario types — lives inside ChartHop's planning workflow engine. We flag the existence of active scenarios during scoping and export them as reference CSV documents. The customer's HR and Finance teams must re-create active scenarios manually in Bullhorn or a dedicated headcount planning tool post-migration. This is a ChartHop platform limitation, not a migration method limitation.

  • PTO and compensation data have no native Bullhorn home

    Bullhorn has no native PTO tracking or compensation management objects. PTO balances migrate to Bullhorn Candidate custom fields; compensation history migrates to a Custom Object if the Bullhorn edition supports one. Bullhorn Time & Expense is a separate licensed product that handles time tracking but not accrual policy management. We map what we can and deliver a written inventory of each data type with its target field so the customer's admin can confirm accuracy. Historical accrual logs and compensation cycle history require a separate export pass and are delivered as reference CSVs.

  • Bullhorn's REST API enforces Fair Use Policy on bulk extraction

    Bullhorn's API Fair Use Policy explicitly prohibits bulk data transfer to unauthorized third-party solutions without written permission. FlitStack AI is an authorized Bullhorn migration partner operating under the Fair Use Policy with rate-limit handling, exponential backoff, and batch chunking. Customers attempting self-service migration or using non-authorized tools risk Bullhorn API access suspension during extraction. We confirm partner authorization status during scoping and coordinate extraction windows around Bullhorn's documented rate limits.

  • ChartHop spreadsheet imports require XLSX format with strict formatting

    ChartHop explicitly rejects CSV files for bulk imports and may corrupt CSV data if used. All customer-provided spreadsheet exports must use XLSX format, include country codes in international phone numbers, use complete job titles, and include identifiers matching across source systems. We validate and reformat any customer-supplied ChartHop exports before loading them into the migration pipeline to prevent silent data rejection or field misalignment.

Migration approach

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

  1. Discovery and Bullhorn edition confirmation

    We audit the customer's ChartHop instance: record counts (People, Jobs, Departments, custom fields, matrix teams, performance reviews, goals, engagement surveys), active headcount planning scenarios, payroll connector type, and any active ATS integrations (Jobvite). We simultaneously confirm the target Bullhorn edition (ATS Growth, Bullhorn ATS, Front Office Growth, or Enterprise) based on Custom Object count requirements identified in the audit. The discovery output is a written migration scope with record counts per object, a Custom Object count budget against the confirmed Bullhorn edition, and a list of data types that have no native Bullhorn home requiring custom field or manual re-entry decisions.

  2. Custom Object schema coordination with Bullhorn Support

    Before any data extraction begins, we submit the Custom Object Setup Sheet to Bullhorn Support to create all required Custom Objects (matrix teams, compensation history, performance reviews, goals, engagement surveys, PTO if not using Bullhorn Time & Expense). Bullhorn Support requires a completed spreadsheet with field names, edit types, required flags, and hints per field. This step can take 3-10 business days depending on Bullhorn Support queue depth. We initiate this ticket as early as possible in the project to avoid blocking the migration timeline.

  3. Sandbox migration and reconciliation

    We run a full migration into the customer's Bullhorn Sandbox (Partial Copy or Full Copy) using production-like data volume. The customer's HR and staffing leads reconcile record counts against ChartHop source data, spot-check 25-50 randomly selected records for field-level accuracy, and verify that custom fields appear correctly on the record layout. Schema corrections, field type adjustments, and Custom Object field additions happen in Sandbox, not production. Bullhorn Support handles any Custom Object edits required after initial creation.

  4. ChartHop data extraction in dependency order

    We extract ChartHop data in dependency order: People (base profile, custom fields, manager email), Jobs (with compensation band references), Departments (with parent-child relationships), Matrix Team assignments, Compensation snapshots, PTO balances, Performance review records, Goals, Engagement survey aggregates, and Document file references. Headcount planning scenarios are extracted as CSV reference documents (read-only) and delivered separately for manual re-creation. All spreadsheet exports from ChartHop are validated for XLSX format and country-code compliance before entering the migration pipeline.

  5. Production migration with bulk API

    Production migration runs in dependency order: Bullhorn Users (resolved by email match against ChartHop manager and recruiter email list), ClientCorporations (if mapping ChartHop company-linked jobs), Candidates (with manager UserId resolved, custom fields populated, and manager relationships linked), JobOrders (with department references, compensation band fields, and status mapped), Custom Objects (matrix teams, compensation history, performance reviews, goals, engagement surveys — only after Bullhorn Support confirms Custom Object creation), Documents (ContentDocument records via Bullhorn file API with 100MB per-file limit enforced). Each phase emits a reconciliation report showing record count in versus record count successfully loaded.

  6. Cutover, validation, and non-migrated artifact handoff

    We freeze ChartHop write access during the cutover window, run a final delta migration for any records modified during the migration phase, then mark Bullhorn as the system of record. We deliver: (1) a headcount planning scenarios reference CSV for manual re-creation, (2) a Bullhorn Custom Object field mapping document for admin review, (3) a Bullhorn Time & Expense integration recommendation if PTO tracking is required, (4) a performance review template rebuild guide. We support a one-week hypercare window for reconciliation issues. We do not rebuild Bullhorn automations, workflows, or onboarding sequences inside the migration scope.

Platform deep dives

Context on both ends of the pair

ChartHop logo

ChartHop

Source

Strengths

  • Visual, live org chart that updates as employee data changes, eliminating manual spreadsheet maintenance
  • Modular per-employee pricing lets customers buy only the modules they need (Core, Headcount Planning, HRIS, Compensation, Performance, Engagement)
  • Headcount planning supports six scenario types (create, update, terminate/backfill, promotion, budget, custom) with live budget impact
  • Sits on top of existing payroll providers (ADP, Gusto, etc.) rather than requiring a payroll switch, lowering adoption risk
  • Built-in connectors for ATS (Jobvite, Greenhouse, Lever), HRIS (BambooHR, Namely, Rippling) and equity tools for end-to-end people-data sync

Weaknesses

  • Payroll and ATS integration depth varies significantly across connectors; sync frequency and field mapping differ by system.
  • Advanced features like custom scenario types and approval workflows require significant initial admin configuration before teams can use them productively.
  • No public API documentation for headcount planning scenarios; sandbox planning data is inaccessible for programmatic migration.
  • Matrix team structures and multi-manager reporting relationships are ChartHop-specific and do not map cleanly to standard HRMS schemas.
  • Limited offline or bulk-export options for large employee rosters; file uploads capped at 100MB per document.
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 ChartHop 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

    ChartHop: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

Walk through your ChartHop 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 two and four weeks for organizations under 500 employee records with no custom object complexity. Migrations with compensation history, performance review records, engagement survey data, or large employee rosters (over 2,000 records) extend to six to ten weeks because of multi-pass data extraction, Bullhorn Support Custom Object provisioning lead time (3-10 business days), and Sandbox-to-production validation cycles. Bullhorn's own implementation team handles Bullhorn configuration in parallel with our migration work.

Adjacent paths

Related migrations to explore

Ready when you are

Move from ChartHop.
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