HRMS migration

Migrate from Aperio to Bullhorn ATS & CRM

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

Aperio logo

Aperio

Source

Bullhorn ATS & CRM

Destination

Bullhorn ATS & CRM logo

Compatibility

50%

6 of 12

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

Complexity

BStandard

Timeline

6-10 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Aperio to Bullhorn is a category shift: Aperio is a performance management system that manages review cycles, goals, and competencies for employees, while Bullhorn is a full ATS and CRM built for staffing agencies. There is no direct object-to-object correspondence. We extract employee profiles, review history, and goal hierarchies from Aperio's CSV exports, then map them into Bullhorn's Candidate and Contact records, custom objects for performance data, and structured notes for review artifacts. Aperio has no documented public API, which makes every migration a CSV-to-REST-API project with longer timelines than API-based migrations. Bullhorn supports custom objects (up to 10 on Front Office Growth and Enterprise tiers, each with 55 fields) where we store performance review cycles and goal data that does not fit Bullhorn's standard ATS schema. We do not migrate Aperio's review templates, competency frameworks, or development plans as functional configuration; we deliver these as written inventories for the customer's Bullhorn admin to rebuild.

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

Aperio logo

Aperio

What's pushing teams away

  • Some customers report outgrowing Aperio as their organization scales, finding it better suited to smaller or mid-market teams than to complex enterprise structures.
  • Organizations seeking a broader HR platform eventually migrate away because Aperio focuses specifically on performance management rather than covering payroll, recruiting, or onboarding.
  • Customers sometimes cite limited awareness or marketing reach as a reason they struggled to get full value from the platform, suggesting adoption challenges.
  • Companies that need deep integrations with adjacent HR systems find Aperio's ecosystem narrower than competitors, prompting a move to platforms with more native connectors.

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

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

Aperio

Employee

maps to

Bullhorn ATS & CRM

Candidate and Contact

1:many
Fully supported

Aperio Employee records map to Bullhorn Candidate (for recruiting-relevant employee data such as internal hires, former contractors being considered for placement) and Bullhorn Contact (for HR-adjacent records such as former candidates maintained for reference). We extract name, title, department, manager, hire date, email, and phone from Aperio's employee export and load into Bullhorn's Candidate and Contact records via the Bullhorn REST API. The manager relationship is preserved as a custom Candidate or Contact field pointing to the manager's record ID, since Bullhorn does not have a native employee hierarchy object.

Aperio

Department

maps to

Bullhorn ATS & CRM

Corporation and custom Department field

lossy
Fully supported

Aperio Department records map to Bullhorn Corporation (Company) if the organization treats departments as client entities, or to a custom Candidate and Contact field for internal org structure. Bullhorn's Corporation object is designed for external client companies rather than internal departments, so we configure a custom field department__c on Candidate and Contact and populate it from Aperio's department name during import. If the customer maintains a separate department roster, we create a Bullhorn custom object department__sp with a lookup to Candidates.

Aperio

Performance Review

maps to

Bullhorn ATS & CRM

Custom Object (Review Cycle)

1:1
Fully supported

Aperio Performance Review records map to a Bullhorn custom object review_cycle__c (Front Office Growth or Enterprise tier required for custom objects). Each review maps to its cycle, the reviewee (Candidate or Contact), reviewer (Candidate or Contact), submitted ratings, and reviewer comments. We store review status, rating values, and competency scores as custom fields within the review_cycle__c object. Bullhorn ATS and ATS Growth tiers do not support custom objects; for these tiers, we store review metadata as structured notes attached to the Candidate record, which limits searchability and reporting.

Aperio

Goal

maps to

Bullhorn ATS & CRM

Custom Object (Goal)

1:1
Fully supported

Aperio Goal records map to a Bullhorn custom object goal__c. Each goal stores title, description, status, start date, due date, and weight. We reconstruct parent-child hierarchies by extracting goal_id and parent_goal_id pairs from Aperio's flat CSV export and creating a custom field parent_goal__c on the goal__c object that references the parent's Bullhorn ID. We flag circular references and orphaned child goals during the reconstruction phase. Goal__c is available on Bullhorn Front Office Growth and Enterprise tiers only.

Aperio

Review Cycle

maps to

Bullhorn ATS & CRM

Custom Object (Review Cycle)

lossy
Fully supported

Aperio Review Cycles (the temporal container for batches of reviews) map to a review_cycle container within the Bullhorn custom object. We extract cycle metadata including cycle name, start date, end date, status, and associated template name, and store these as fields on the review_cycle__c object. The Bullhorn custom object's ID links individual performance reviews to their parent cycle.

Aperio

Review Template

maps to

Bullhorn ATS & CRM

Written inventory (not migrated)

1:1
Fully supported

Aperio Review Templates define the structure of reviews including competency sections, rating scales, and mandatory fields. Bullhorn has no native review template object. We export template configurations from Aperio, document the template structure (sections, competencies, rating scales, required fields), and deliver a written template inventory to the customer's Bullhorn admin. The admin rebuilds templates using Bullhorn's custom object field structure or a supported partner tool.

Aperio

Competency

maps to

Bullhorn ATS & CRM

Custom Object (Competency Library)

1:1
Fully supported

Aperio Competency library records map to a Bullhorn custom object competency__c. Each competency stores the competency name, description, and rating definitions. We link competency records to review_cycle__c records via a junction object or a multi-select picklist on review_cycle__c depending on the customer's Bullhorn edition. Custom picklists are limited to 55 per custom object; we flag any competency libraries exceeding this limit.

Aperio

Development Plan

maps to

Bullhorn ATS & CRM

Custom Object (Development Plan)

1:1
Fully supported

Aperio Development Plans (growth actions tied to employees and review outcomes) map to a Bullhorn custom object development_plan__c. Each plan stores the associated employee (Candidate or Contact lookup), plan title, milestones with target dates, status, and any linked goals. We extract milestone data as structured child records within development_plan__c or as a related note series depending on Bullhorn's field capacity constraints.

Aperio

Job Title

maps to

Bullhorn ATS & CRM

Candidate Title and custom Job Title field

1:1
Fully supported

Aperio Job Title records map to Bullhorn's Candidate Title field for primary job title and to a custom field job_title__c on the Candidate record for secondary or historical titles. Job titles used as criteria within Aperio review templates are preserved in the template inventory document and mapped to Bullhorn custom picklist values where applicable.

Aperio

Custom Fields

maps to

Bullhorn ATS & CRM

Custom Fields on relevant Bullhorn objects

lossy
Mapping required

Aperio custom fields on Reviews, Goals, and Development Plans require field-by-field mapping to Bullhorn custom fields. We identify all active custom fields during scoping, export sample values, and map them by type: Aperio picklists map to Bullhorn drop-down custom fields, multi-select maps to multi-select picklist, text maps to text, date maps to date. Value sets that differ from Bullhorn defaults are flagged for the customer's admin to resolve before migration. Bullhorn's 55-field limit per custom object applies and may require consolidation for complex Aperio configurations.

Aperio

Employee Manager Relationship

maps to

Bullhorn ATS & CRM

Custom lookup field on Candidate/Contact

lossy
Fully supported

Aperio's manager relationship on Employee records (manager_id referencing another Employee) does not have a native Bullhorn equivalent because Bullhorn does not have an employee hierarchy object. We store the manager relationship as a custom Candidate or Contact field (manager__c) that references the Bullhorn Candidate ID of the manager. We resolve these references after the initial Candidate import completes, using email matching as the dedupe key.

Aperio

Goal Hierarchy

maps to

Bullhorn ATS & CRM

Custom Object with parent_goal__c lookup

lossy
Fully supported

Aperio's nested goal structures flatten during CSV export to parent_goal_id fields that do not self-describe. We extract all goal_id and parent_goal_id pairs, load goals into the Bullhorn goal__c custom object, then reconstruct the hierarchy by populating the parent_goal__c lookup field with the resolved Bullhorn ID. We run a circular reference check and flag any orphaned child goals (goals whose parent_goal_id references a goal that was not exported or not migrated) for customer resolution.

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.

Aperio logo

Aperio gotchas

High

No public API means CSV-only migration exports

Medium

Goal parent-child hierarchies export as flat records

Medium

Custom fields require manual value-set mapping

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

  • Aperio has no public API; all extraction is CSV-only

    Aperio provides no documented REST or bulk API, so every migration relies entirely on CSV exports generated from within the application. This imposes field limits (exports are scoped to visible columns in the export interface), requires manual column selection by someone with Aperio admin access, and means migration engineers cannot perform delta syncs or automated re-runs without re-exporting. We handle this by extracting all available CSV fields during discovery, mapping them to Bullhorn equivalents during scoping, and running multiple validation passes against the export before loading. Migrations from Aperio run 30-40% longer than API-based migrations of comparable record counts because of the manual export dependency.

  • Bullhorn's custom object limit constrains review and goal storage

    Bullhorn's custom object support is tier-dependent: Front Office Growth and Enterprise allow up to 10 custom objects with 55 fields each; ATS Growth allows 2 custom objects; ATS Starter allows none. Aperio organizations with active performance reviews, goal hierarchies, competency libraries, and development plans may need four or more Bullhorn custom objects to store equivalent data. We validate the customer's Bullhorn edition during scoping and recommend an upgrade to Front Office Growth if the migration scope requires more custom objects than the current tier supports. For ATS Growth customers who need more than 2 custom objects, we store overflow data as structured notes on the Candidate record, with a written migration plan for when the tier upgrade is applied.

  • Goal parent-child hierarchies lose structure in Aperio's flat CSV export

    Aperio supports nested goal structures where child goals roll up to parents. When exported to CSV, these hierarchies become flat records with a parent_goal_id column that does not describe the relationship. We extract goal_id and parent_goal_id pairs, reconstruct the hierarchy in Bullhorn by populating a parent_goal__c lookup field on the goal__c custom object, and flag any circular references or orphaned child goals detected during reconstruction. If the customer uses goal weighting or rollup calculations in Aperio, we document these as part of the goal inventory and note that Bullhorn does not have native goal rollup functionality.

  • Custom field value sets require explicit mapping before Bullhorn load

    Organizations commonly add custom fields to Aperio Performance Reviews and Goals with picklist or multi-select values that differ from defaults. These custom fields and their value sets do not self-document in the CSV export. We identify all custom field definitions during scoping, export sample values, and map them explicitly to Bullhorn custom field value sets. Where value sets differ significantly (for example, an Aperio 5-point rating scale that needs to map to a Bullhorn 3-point scale), we flag the discrepancy and proposed mapping for customer resolution before any records load. Skipping this step results in Bullhorn rejecting records with values not in the picklist whitelist.

  • Review templates and competency frameworks do not migrate as functional configuration

    Aperio Review Templates (defining competency sections, rating scales, and mandatory fields) and Competency Libraries (definitions and ratings) are configuration objects, not data records. Bullhorn has no native template or competency library object. We export template configurations and competency definitions, document them in a written inventory, and deliver these to the customer's Bullhorn admin to rebuild as part of post-migration setup. The custom object schema we create in Bullhorn provides the field structure, but the template logic (which competencies apply to which review types, rating scale labels, section ordering) requires manual rebuild.

Migration approach

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

  1. Discovery and CSV export scoping

    We work with an Aperio admin to export all available CSV data: Employees, Departments, Performance Reviews (all cycles), Goals (all levels including parent-child relationships), Review Templates, Competencies, Development Plans, Job Titles, and any active custom fields. We also capture field-level metadata (column names, sample values, data types) and validate export completeness. Because Aperio has no API, we document the export date and time, note any filtering applied during export, and confirm whether the export includes inactive records. This discovery output establishes the migration baseline and reveals any data shape issues before we design the Bullhorn schema.

  2. Bullhorn edition validation and custom object provisioning

    We validate the customer's Bullhorn edition (Starter, Core, Pro, Front Office Growth, Enterprise) to confirm custom object capacity. If the migration scope requires more custom objects than the current tier supports, we recommend an upgrade to Front Office Growth or Enterprise before migration begins. We provision the required custom objects in Bullhorn's sandbox or development environment: review_cycle__c, goal__c, competency__c, development_plan__c, and any additional objects for custom field storage. Each custom object's 55-field limit is respected during field design, and any overflow is documented as a follow-on migration item.

  3. Schema mapping and value-set reconciliation

    We map every Aperio field to a Bullhorn field or custom field with explicit type matching. Custom field value sets from Aperio are reconciled against Bullhorn picklist definitions; discrepancies are documented with proposed mappings for customer approval. The manager relationship, goal parent-child links, and department mapping are designed in this phase. We validate that all required fields in Bullhorn (Candidate first name, last name, and status) have corresponding values from Aperio; missing required fields are flagged for the customer's Aperio admin to populate before export.

  4. Sandbox migration and reconciliation

    We run a full migration into the Bullhorn sandbox using production-like data volume. The customer's HR and IT leads reconcile record counts (employees in, candidates and contacts in, reviews in, goals in), spot-check 25-50 random records against the Aperio source, validate goal hierarchy reconstruction, and confirm custom field population. Any mapping corrections, missing required fields, or value-set discrepancies surface here. We do not proceed to production migration until the sandbox migration is signed off.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Job Titles and Departments (reference data), then Candidates and Contacts (from Aperio Employees), then Goals (with parent_goal__c links resolved after the initial goal load), then Review Cycles (custom object metadata), then Performance Reviews (linked to review_cycle__c and reviewee), then Development Plans, then custom field final values. Each phase emits a row-count reconciliation report before the next phase begins. Goal hierarchy reconstruction runs after the initial goal load completes so that all goal IDs are available for parent linking.

  6. Cutover, validation, and configuration rebuild handoff

    We freeze Aperio writes during cutover, run a final delta migration of any records modified during the migration window, then enable Bullhorn as the system of record for migrated data. We deliver the review template inventory, competency library inventory, and development plan structure document to the customer's Bullhorn admin for manual rebuild. We support a one-week hypercare window for reconciliation issues. We do not rebuild Aperio templates, competency frameworks, or development plan logic inside the migration scope; these are separate configuration engagements.

Platform deep dives

Context on both ends of the pair

Aperio logo

Aperio

Source

Strengths

  • Purpose-built performance review cycle management with structured goal-setting and competency frameworks
  • Real-time alerts and dashboards give managers continuous visibility rather than batched quarterly reviews
  • Mid-market pricing and onboarding model that avoids the complexity of enterprise HR suite configuration
  • Structured development planning linked to review outcomes supports retention conversations
  • CSV-based data export enables migration scoping without relying on API integrations

Weaknesses

  • No documented public API, requiring CSV exports and manual field mapping for all migrations
  • Mid-market focus means limited enterprise features that larger organizations require as they scale
  • Focused narrowly on performance management rather than covering recruiting, onboarding, or payroll
  • Custom fields and goal hierarchies require careful manual mapping work during migration
  • Limited integration ecosystem compared to broader HR suites with native connector marketplaces
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 Aperio 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

    Aperio: Not publicly documented — no published API surface, so rate limits are not specified externally..

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Aperio-to-Bullhorn migrations complete in six to ten weeks for organizations with fewer than 2,000 employees, multiple review cycles, and straightforward goal hierarchies. Complex migrations with large goal parent-child trees, multi-year review histories, or organizations requiring Bullhorn tier upgrades (to access enough custom objects) extend to twelve to eighteen weeks. Aperio's CSV-only export constraint adds 30-40% to timelines compared to API-based migrations of comparable record counts.

Adjacent paths

Related migrations to explore

Ready when you are

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