HRMS migration

Migrate from Eddy to Bullhorn ATS & CRM

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

Eddy logo

Eddy

Source

Bullhorn ATS & CRM

Destination

Bullhorn ATS & CRM logo

Compatibility

67%

8 of 12

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

Complexity

BStandard

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Migrating from Eddy to Bullhorn is an HRMS-to-ATS/CRM move that consolidates employee and contact records into Bullhorn's staffing-focused platform. Eddy's core employee objects (name, contact, job title, department, hire date, employment status) map to Bullhorn Candidate or Contact records with custom fields capturing Eddy-specific properties like employment type and termination date. PTO balances, onboarding workflow step counts, and training completion dates migrate as custom object data or custom fields on the Employee-equivalent record. Document file names and blob references transfer; the actual file blobs are extracted and re-associated at the destination. Bullhorn's REST API enforces a Fair Use Policy that requires explicit written authorization for bulk extraction to third-party tools—FlitStack AI coordinates this authorization as part of scoping. We do not migrate Eddy's onboarding workflow logic or training curriculum as configurable objects; we deliver a written inventory of what was active for the customer's admin to rebuild in Bullhorn's onboarding module.

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

Eddy logo

Eddy

What's pushing teams away

  • Reporting limitations frustrate teams requiring custom HR analytics—reviewers explicitly note needing workarounds for basic workforce reports.
  • Incomplete payroll integration means users manage HR records in Eddy but run payroll separately, reducing the all-in-one value proposition.
  • Limited customization of workflows and fields forces growing companies to adopt workarounds that do not scale past 50–100 employees.
  • Some users note missing features common in dedicated payroll or benefits platforms, requiring data re-entry between systems.
  • Custom field support is restricted, pushing companies with industry-specific HR requirements toward more flexible alternatives.

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

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

Eddy

Employee

maps to

Bullhorn ATS & CRM

Candidate and ClientContact (tier-dependent)

1:many
Fully supported

Eddy Employee records map to Bullhorn Candidate (for active candidates in the recruiting pipeline) or ClientContact (for existing client relationships). The split is determined during scoping: candidates with a Bullhorn JobOrder association go to Candidate; contacts representing hiring managers or client contacts go to ClientContact. Eddy employment status (active, on_leave, terminated) maps to a Bullhorn custom field; termination date maps to a custom date field since Bullhorn Candidate lacks a native termination date field. Job title, department, and location from Eddy map to Bullhorn custom fields on both Candidate and ClientContact.

Eddy

Company Settings (Departments)

maps to

Bullhorn ATS & CRM

ClientCorporation + Department Custom Field

1:1
Fully supported

Eddy department records (names, cost center codes, reporting hierarchy) map to Bullhorn ClientCorporation records with a department custom field, or to a Bullhorn custom object for org-chart reporting. We flag whether the customer needs ClientCorporation as the legal entity or as the business unit and configure the mapping accordingly. Locations and addresses from Eddy map to Bullhorn ClientCorporation Address fields.

Eddy

PTO Balances

maps to

Bullhorn ATS & CRM

Custom Object (PTO Balance) on Candidate

1:1
Fully supported

Eddy PTO balances (accrued, used, available, carry-forward) do not have a Bullhorn native equivalent. We create a Bullhorn custom object with fields for pto_type, accrued_balance, used_balance, available_balance, and carry_forward_days, linked to the Employee-equivalent Candidate record. We preserve balance snapshots as of the migration date. Bullhorn ATS tier limits custom objects to 2; ATS Growth has 0. We confirm the customer's Bullhorn edition during scoping and recommend Front Office Growth or Enterprise if custom objects are required.

Eddy

Documents

maps to

Bullhorn ATS & CRM

ContentDocument + ContentDocumentLink

1:1
Fully supported

Eddy employee documents (offer letters, contracts, signed agreements) migrate as Bullhorn ContentDocument records. We extract file names, file types, upload dates, and blob references. Bullhorn's document storage attaches files to Candidate or ClientContact via ContentDocumentLink. PDF and standard document formats are fully supported. Rich-text document content is preserved. We flag that Eddy's document export may require CSV-assisted extraction if the API export path is incomplete for certain file types.

Eddy

Onboarding Workflows

maps to

Bullhorn ATS & CRM

Custom Fields or Custom Object on Candidate

lossy
Mapping required

Eddy onboarding step checklists and task assignment counts map to Bullhorn custom fields (step_1_status, step_2_status, etc.) or a Bullhorn custom object capturing completed onboarding steps and dates. Bullhorn does not replicate Eddy's guided onboarding workflow builder. We document each active onboarding workflow, its step count, the assigned approver, and the completion status for each employee so the customer's Bullhorn admin can rebuild the workflow in Bullhorn's onboarding module or document it as a standard operating procedure.

Eddy

Training Records

maps to

Bullhorn ATS & CRM

Custom Fields or Custom Object on Candidate

1:1
Mapping required

Eddy training completion records (course name, completion date, expiry date, certification status) map to Bullhorn custom fields on the Candidate record or a training custom object. Bullhorn does not have a native LMS or training certification tracking module. We extract training history and completion dates from Eddy and preserve them in Bullhorn custom fields. Customers with extensive training compliance requirements may need to maintain a separate LMS; we document the training record count during scoping to inform that decision.

Eddy

Employee Directory

maps to

Bullhorn ATS & CRM

ClientContact with Directory-Specific Custom Fields

1:1
Fully supported

The Eddy employee directory view is derived from employee records. We migrate the underlying employee data that populates the directory into Bullhorn ClientContact records with custom fields for directory-specific attributes (photo URL, phone extension, reporting manager, office location). We preserve organizational hierarchy information via Bullhorn ClientContact custom fields for manager_id reference. Bullhorn's org chart is a community or portal feature; we note this during the handoff.

Eddy

Payroll Data

maps to

Bullhorn ATS & CRM

Custom Fields or Custom Object on Candidate (flag only)

1:1
Mapping required

Eddy's HR and payroll modules are not fully integrated per reviewer feedback, and payroll data export requires manual steps or CSV export. We extract available pay-related records (pay rate, pay frequency, last pay date) as Bullhorn custom fields on the Candidate record for staffing operations that use Bullhorn's payroll module (Bullhorn Pay). We flag that full pay run history requires manual export from Eddy before migration scoping finalizes, as automated extraction may be incomplete.

Eddy

Company Settings (Locations)

maps to

Bullhorn ATS & CRM

ClientCorporation Address

1:1
Fully supported

Eddy location records (addresses, location names, regional codes) map to Bullhorn ClientCorporation Address records. Multiple Eddy locations per company map to multiple ClientCorporation Address records with address type differentiation (primary, branch, remote). We preserve the location-to-employee association via custom fields on the Employee-equivalent Candidate record.

Eddy

Eddy Custom Properties

maps to

Bullhorn ATS & CRM

Bullhorn Custom Fields (per entity)

lossy
Fully supported

Eddy stores industry-specific HR data as custom fields. We map these to Bullhorn custom fields on the appropriate entity (Candidate, ClientContact, ClientCorporation). Bullhorn limits custom fields per entity depending on edition. Bullhorn ATS supports a limited number of custom fields; Front Office Growth and Enterprise allow custom objects with up to 55 fields each. We audit the Eddy custom property count during scoping and confirm whether the customer's Bullhorn edition has sufficient capacity before migration.

Eddy

Employee Status (active/inactive)

maps to

Bullhorn ATS & CRM

Candidate Status + Custom Employment Status Field

lossy
Fully supported

Eddy employment status (active, on_leave, terminated) maps to Bullhorn Candidate status (Active, Day Labor, On Hold, Placed, etc.) plus a custom field edy_employment_status__c capturing the original Eddy value for audit. Terminated employee records migrate as Day Labor or Inactive Candidate records with the termination date preserved in a custom field. Active employee records migrate as Active Candidate records.

Eddy

Hire Date and Employment Tenure

maps to

Bullhorn ATS & CRM

Date Fields + Custom Tenure Calculation

1:1
Fully supported

Eddy hire_date maps to Bullhorn date fields on the Candidate record. We compute tenure in months and store it in a custom field for reporting. Anniversary dates and probation end dates from Eddy migrate as custom date fields. These are used in Bullhorn reporting for tenure-based filtering.

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.

Eddy logo

Eddy gotchas

High

Contract data cannot be exported via API

Medium

Reporting limitations require workarounds

Medium

Payroll and HR integration is incomplete

Low

Per-employee pricing counts all employees including inactive

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 API Fair Use Policy restricts bulk extraction to unauthorized solutions

    Bullhorn's API Fair Use Policy (updated December 2025) explicitly prohibits bulk data transfer to unauthorized solutions without written permission from Bullhorn. FlitStack AI coordinates written authorization as part of scoping before any extraction begins. Bullhorn's native CSV export is designed for small exports and drops DHTML and rich-text fields entirely, which means formatted notes, embedded resume content, and rich-text onboarding documents silently corrupt during CSV-based migration. API-based extraction with written authorization is the only path that preserves full relational fidelity for candidate notes, document associations, and placement history. Skipping this step means the migration either violates Bullhorn's policy or loses structured data.

  • Bullhorn ATS and ATS Growth editions cap custom objects and fields

    Eddy's PTO balances, training records, onboarding step data, and custom HR properties require Bullhorn custom fields or custom objects. Bullhorn ATS caps custom objects at 2; ATS Growth has 0 custom objects. Front Office Growth and Enterprise allow up to 10 custom objects with 55 fields each. We confirm the customer's Bullhorn edition during scoping and do not begin migration without verifying capacity for the Eddy custom field count. Migrations scoped for ATS Growth without this check result in truncated custom data that cannot be retrofitted without an edition upgrade.

  • Eddy payroll export requires manual steps and may be incomplete

    Reviewers consistently report that Eddy's HR module and payroll module are not fully integrated, requiring separate data handling. Pay run history and payroll records may not be accessible via Eddy's API or CSV export in all plan tiers. We extract available pay rate, pay frequency, and last pay date data as Bullhorn custom fields, but full pay run history requires the customer to manually export from Eddy before migration scoping finalizes. We flag which payroll records are available programmatically versus which require manual extraction, and we document the manual export steps in the migration handoff document.

  • Document blobs require separate extraction from catalog metadata

    Eddy supports document export via CSV for file names and metadata, but actual blob extraction requires separate API calls or browser-based download steps depending on the plan tier. Bullhorn ContentDocument records need the file blob re-uploaded after metadata mapping. We handle both extraction paths but flag that large document sets (over 5,000 files) add extraction time and require Bullhorn storage capacity confirmation before migration. Contract documents, offer letters, and signed agreements are the highest-priority document types; we recommend prioritizing these for extraction during the scoping window.

  • Eddy per-employee pricing counts inactive employees unless removed manually

    Eddy bills per employee on the platform including terminated employees unless manually removed from the employee roster. During migration scoping, we confirm whether inactive employee records should be migrated to Bullhorn as inactive Candidate records or archived. Terminated employees included in migration increase Bullhorn record counts and may affect pricing negotiations. We recommend that the customer removes inactive employees from Eddy's billing roster before migration finalization to avoid paying for phantom employees on both platforms during the transition window.

Migration approach

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

  1. Scoping and Bullhorn edition confirmation

    We audit the Eddy portal for employee count, custom property count, document volume, PTO balance types, training record count, and onboarding workflow complexity. We confirm the customer's Bullhorn edition (ATS, ATS Growth, Front Office Growth, Enterprise) and verify that custom object and custom field capacity meets the Eddy data requirements. We coordinate Bullhorn API Fair Use Policy written authorization during this phase. The scoping output is a written migration scope document specifying record counts per object, custom field count, document count, and a Bullhorn edition recommendation if the current edition cannot accommodate the migration.

  2. Destination schema design and Bullhorn custom object creation

    We design the Bullhorn destination schema based on the object mapping plan. This includes provisioning custom objects for PTO balances and training records, creating custom fields on Candidate and ClientContact for employment status, termination date, hire date, and tenure, and configuring Bullhorn custom objects via the Bullhorn Admin Field Mappings interface or API. Bullhorn requires support tickets for initial custom object setup via their Custom Object Setup Sheet spreadsheet. We submit this as part of the schema phase. The schema is deployed into a Bullhorn Sandbox or test company first for validation before production migration begins.

  3. Eddy data extraction and transformation

    We extract Eddy data using available API endpoints and CSV-assisted extraction where API access is incomplete. For document blobs, we run separate extraction for file names, types, and upload dates, then re-upload blobs to Bullhorn ContentDocument after metadata mapping. For payroll data, we flag available records and defer to manual extraction for any pay run history that cannot be retrieved programmatically. We transform employee records into the Lead-Contact-Candidate model based on the scoping-defined split rule. Custom fields are type-mapped (date fields, text fields, picklists) to match Bullhorn field types. The transformation output is a staged dataset ready for Bullhorn API insertion.

  4. Sandbox migration and reconciliation

    We run a full migration into a Bullhorn Sandbox or test company using production-like data volume. The customer's operations lead reconciles record counts (Candidates in, ClientContacts in, custom object records in, documents attached), spot-checks 25-50 random records against the Eddy source, and validates that PTO balances, training dates, and document associations appear correctly in Bullhorn. Any field mapping corrections, custom object configuration changes, or data transformation fixes happen here before production migration begins.

  5. Production migration in dependency order

    We run production migration in record-dependency order: ClientCorporation records (company entities and addresses), then Candidate records (with Bullhorn-edition-compliant custom fields and custom object links), then ClientContact records for directory-specific entries, then custom object data (PTO balances, training records), then document ContentDocument records with ContentDocumentLink associations. Bullhorn ATS API rate limits are managed via exponential backoff and batch chunking. Each phase emits a row-count reconciliation report before the next phase begins. Bullhorn API Fair Use Policy compliance is maintained throughout; we do not exceed documented API call volumes or bulk transfer thresholds.

  6. Cutover, final delta, and onboarding workflow handoff

    We freeze Eddy write access during cutover, run a final delta migration of any records modified during the migration window, then enable Bullhorn as the system of record. We deliver the onboarding workflow inventory document specifying each active Eddy workflow, its step count, assigned approvers, completion statuses, and recommended Bullhorn equivalent (Bullhorn onboarding module configuration or documented standard operating procedure). We support a one-week hypercare window where we resolve reconciliation issues. Bullhorn's own onboarding team (or their premium implementation partners) handle Bullhorn-specific configuration as a separate scope.

Platform deep dives

Context on both ends of the pair

Eddy logo

Eddy

Source

Strengths

  • Per-employee pricing with transparent base fees makes costs predictable for small teams.
  • Integrated onboarding, PTO, and document storage covers foundational HR needs in one tool.
  • Positive review themes consistently cite ease of use and intuitive navigation for HR tasks.
  • Strong customer support ratings distinguish Eddy from similarly-priced HRMS competitors.
  • Guided onboarding workflows reduce manual steps for new hire setup.

Weaknesses

  • Limited reporting and analytics requires third-party tools for basic workforce insights.
  • Payroll module integration is incomplete, forcing teams to run payroll outside the platform.
  • Custom field support is restricted, limiting adaptability for industry-specific HR needs.
  • Feature set does not scale well past 100 employees, based on reviewer feedback.
  • Contract and catalog metadata exports are not fully supported via API in music/entertainment use cases.
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. All 7 core objects map 1:1 between Eddy and Bullhorn ATS & CRM.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Eddy and Bullhorn ATS & CRM.

  • Object compatibility

    A

    All 7 core objects map 1:1 between Eddy and Bullhorn ATS & CRM.

  • 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

    Eddy: Not publicly documented..

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

Walk through your Eddy 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 accounts under 2,000 employee records, under 5,000 documents, and no custom object requirements beyond basic custom fields. Migrations with PTO balance custom objects, training record custom objects, large document sets, or multi-location organizational structures requiring ClientCorporation mapping move to six to ten weeks because of Bullhorn custom object setup via support tickets, document blob extraction time, and manual payroll data extraction coordination.

Adjacent paths

Related migrations to explore

Ready when you are

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