HRMS migration

Migrate from Eploy to Bullhorn ATS & CRM

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

Eploy logo

Eploy

Source

Bullhorn ATS & CRM

Destination

Bullhorn ATS & CRM logo

Compatibility

79%

11 of 14

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

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Eploy to Bullhorn is a structural migration across two ATS platforms with fundamentally different object models. Eploy organises hiring around Jobs, Candidates, Workflow Stages, Hiring Manager Portals, and an integrated Onboarding module. Bullhorn uses a Jobs-to-Candidates-to-Placement chain anchored by a separate Company entity and a Work Order or Job Order object. We resolve the stage model gap during scoping by building a custom mapping table from Eploy's organisation-specific stages to Bullhorn's Work Order statuses, preserve the original stage transition timestamps as audit data, and handle the document attachment pipeline (Eploy serves resume URLs that must be downloaded then uploaded to Bullhorn as binary blobs). Workflow automations and Eploy's onboarding module do not migrate as code; we deliver a written inventory of both for the customer's Bullhorn admin to rebuild in Bullhorn Automation or the Bullhorn Onboarding module 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

Eploy logo

Eploy

What's pushing teams away

  • Steep learning curve and unintuitive interface require significant training investment before teams become productive
  • Reporting and analytics are considered complex to configure and use, frustrating teams that need ad-hoc insights
  • API rate limits (10 req/sec, daily tier caps up to 50,000) can constrain large-scale data exports and bulk imports
  • Small feature additions often incur disproportionate costs, leading to frustration when simple customisations require premium upgrades
  • Clunky interface undermines campaign coordination for high-volume recruitment teams managing complex hiring pipelines

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

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

Eploy

Job Requisition

maps to

Bullhorn ATS & CRM

Job Order

1:1
Fully supported

Eploy Job records (title, department, location, salary bands, workflow assignment) map 1:1 to Bullhorn Job Order records. Custom job fields from Eploy migrate to Bullhorn custom fields on Job Order. The job-to-workflow linkage in Eploy maps to the Job Order's status and custom status picklist values that we configure during Bullhorn schema design.

Eploy

Candidate

maps to

Bullhorn ATS & CRM

Candidate

1:1
Fully supported

Eploy Candidate records (contact details, skills, notes, application history, status) map directly to Bullhorn Candidate. A Bullhorn Candidate does not require a Company record to exist first, but we create Client Corporation records during migration to enable the placement chain. Duplicates are resolved by email deduplication key during import.

Eploy

Workflow Stages

maps to

Bullhorn ATS & CRM

Job Order Status / Custom Status Picklist

lossy
Mapping required

Eploy workflow stages are organisation-specific with no canonical list in the API; we discover them by aggregating distinct stage values across active jobs during discovery. Each Eploy stage maps to a Bullhorn Job Order status or a custom status picklist value. Stage transition timestamps preserve as a separate audit object linked to the candidate's submission record.

Eploy

Hiring Manager Portal

maps to

Bullhorn ATS & CRM

User Assignment on Job Order / Contact

1:1
Fully supported

Hiring manager assignments in Eploy (specific users tied to jobs and workflow stages) map to Bullhorn Job Order ownership and the primary Contact record on the Client Corporation. Role-based permissions that Eploy grants at the portal level may not translate directly to Bullhorn's permission set model; we flag these for Bullhorn admin review during scoping.

Eploy

Offer

maps to

Bullhorn ATS & CRM

Placement (Lead泪水) or Job Order extended fields

1:1
Fully supported

Eploy Offer records (salary, start date, role details, e-signature status) map to Bullhorn Placement records once the candidate is placed against a Job Order. If placement has not occurred at migration time, we create a Candidate custom field set capturing the offer details and flag the record for the Bullhorn team to convert to a Placement upon hire.

Eploy

Onboarding Records

maps to

Bullhorn ATS & CRM

Bullhorn Onboarding Module (separate)

1:1
Mapping required

Eploy's onboarding module (reference collection, contracts, compliance documents) lives in a separate schema that may not fully expose all fields via the standard API. We query the onboarding endpoints explicitly during discovery, migrate what is accessible, and recommend a manual CSV export for records with partial schemas. Bullhorn Onboarding (part of Bullhorn One) is a separate licensed module; we document the onboarding data gap and map the record structure for re-entry post-migration.

Eploy

Employee Referral

maps to

Bullhorn ATS & CRM

Candidate custom referral fields / Referral source picklist

1:1
Fully supported

Eploy referral records (linking an employee to a referred candidate with reward status) map to Bullhorn Candidate records with a referral source custom picklist field and a referring employee custom lookup field. Reward status migrates as a text field; the monetary reward value does not transfer unless a custom numeric field is created in Bullhorn.

Eploy

Talent Pool

maps to

Bullhorn ATS & CRM

Candidate Tag or Candidate Segment

1:1
Fully supported

Eploy Talent Pools (saved candidate collections for future roles) migrate as Bullhorn Candidate Tags or Segments. Pool membership preserves as a tag value on each Candidate record, enabling the Bullhorn team to recreate Talent Pool views through Bullhorn's built-in search and filter capabilities. We map pool names to tag values during scoping with customer confirmation.

Eploy

Custom Properties (Job)

maps to

Bullhorn ATS & CRM

Job Order Custom Fields

lossy
Fully supported

Organisations add custom fields to Eploy Job records. We detect the custom property schema during discovery and create corresponding custom fields in Bullhorn on the Job Order entity via Bullhorn's custom fields API. Custom field type mapping (text, number, date, picklist) is confirmed with the customer before schema deployment.

Eploy

Custom Properties (Candidate)

maps to

Bullhorn ATS & CRM

Candidate Custom Fields

lossy
Fully supported

Eploy custom candidate properties migrate to Bullhorn Candidate custom fields. Multi-select checkbox properties in Eploy map to Bullhorn multi-select picklists. Long-text notes migrate to Bullhorn Candidate custom text area fields. Custom field name collisions with Bullhorn standard fields are resolved by appending a suffix during scoping.

Eploy

Assessment

maps to

Bullhorn ATS & CRM

Candidate custom assessment fields or note attachment

1:1
Fully supported

Assessment scores and results from Eploy attach to candidate records. We migrate structured assessment data as custom fields on the Candidate object. Visual or scored assessments that do not fit a typed field migrate as a Note record attached to the Candidate with the assessment content preserved in the body. The assessment provider reference migrates as a text field.

Eploy

Document / Attachment (Resume)

maps to

Bullhorn ATS & CRM

Candidate Attachment (binary blob)

1:1
Fully supported

Eploy serves resume and document URLs rather than inline blobs. We enumerate all attachment URLs, download each file to temporary storage, then upload each to Bullhorn's attachment endpoint as a multipart/form-data binary blob. Large volumes of attachments (hundreds per candidate in compliance-heavy sectors) extend migration time. Filenames and the associated Candidate record link are preserved. This two-pass pattern is required because Bullhorn does not accept redirect URLs as attachment sources.

Eploy

Communication History (Email/SMS)

maps to

Bullhorn ATS & CRM

Candidate Note or Communication History

1:1
Fully supported

Eploy email and SMS threads tied to candidates migrate as Note records in Bullhorn linked to the Candidate. Formatting may flatten in transit. SMS content migrates as a separate Note record with an sms_thread__c custom flag for Bullhorn admin identification. Timestamps are preserved in the Note's created date for timeline ordering.

Eploy

Application / Submission History

maps to

Bullhorn ATS & CRM

Candidate Job Submission records

1:1
Fully supported

Each Eploy candidate-to-job submission creates a Candidate Job Submission record in Bullhorn linking the Candidate to the Job Order. We preserve the Eploy submission date and the workflow stage at submission time as custom fields on the Bullhorn submission record. Multiple submissions for the same candidate to different jobs create separate submission records.

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.

Eploy logo

Eploy gotchas

High

API rate limits cap daily call volumes per tier

High

API keys are tied to individual user records

Medium

Onboarding module data may live in a separate schema

Medium

Custom workflow stages require mapping table creation

Low

Document attachments require separate download-then-upload passes

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

  • Eploy workflow stages require manual mapping before migration

    Eploy organisations define their own workflow stage names and ordering; there is no canonical list exposed in the API. We discover stages by querying active jobs and aggregating distinct values, then build a mapping table requiring explicit customer confirmation before any candidate records are written to Bullhorn. Skipping this step results in all migrated candidates defaulting to a single generic status in Bullhorn with no stage history, making pipeline reporting unreliable on day one.

  • Onboarding module may have partial API access

    Eploy's onboarding features (reference collection, contracts, compliance documents) live in a distinct module that does not expose all fields via the standard API. We query the onboarding endpoints explicitly during discovery and flag any objects returning partial schemas. For records inaccessible via API, we recommend a manual CSV export from the Eploy onboarding module as a complement to the automated migration. Bullhorn Onboarding is a separate licensed module; the customer must confirm whether Bullhorn One onboarding is in scope before migration planning.

  • Document attachments require a two-pass download-upload pipeline

    Eploy serves resume and document URLs via the candidate API, not as inline blobs. Bullhorn requires binary file uploads via multipart/form-data. We must enumerate all attachment URLs, download each to temporary storage, then upload each individually to Bullhorn's attachment endpoint. For large candidate databases with hundreds of attachments per record (common in compliance-heavy sectors such as healthcare or finance), this two-pass pattern extends migration time significantly and requires sufficient temporary storage capacity.

  • Bullhorn requires a Company record before placement

    Bullhorn's placement chain requires a Client Corporation (Company) record to exist before a candidate placement can be created. Eploy does not require a Company anchor for candidate records. We create Client Corporation records for every unique company referenced in Eploy job records and candidate work history during migration, ensuring the placement chain is unbroken when the Bullhorn team converts offers to placements.

  • Bullhorn Automation and Eploy workflow rules do not migrate

    Eploy configurable workflow rules (candidate notification triggers, stage advancement rules, hiring manager portal assignments) and Bullhorn Automation are different automation models with different triggers, conditions, and actions. Bullhorn Automation is also a separately licensed feature. We do not migrate automations as code. We deliver a written inventory of every active Eploy workflow rule and Bullhorn Automation equivalent, including trigger type, conditions, and actions, for the customer's Bullhorn admin to rebuild in Bullhorn Automation post-migration.

Migration approach

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

  1. Discovery and Eploy API scoping

    We audit the source Eploy tenant across API tier (1 to 4, determining daily call limits), active job count, candidate volume, custom property schemas on Jobs and Candidates, talent pool count, onboarding module schema, referral records, and document attachment volume. We identify the Eploy API key's associated service account and confirm read permissions across all objects. We also enumerate the distinct workflow stage values across active jobs to begin the stage mapping table. The discovery output is a written migration scope document with record counts per object, API rate assessment, and a preliminary stage mapping table.

  2. Stage mapping design and Bullhorn schema preparation

    We build the complete stage mapping table by aggregating all distinct Eploy workflow stage names and proposing Bullhorn Job Order status and custom status picklist values for each. Customer confirmation of the stage map is required before schema work begins. We then design the Bullhorn destination schema: custom fields on Job Order and Candidate (mapped from Eploy custom properties), Client Corporation records created from Eploy company references, custom referral and assessment fields, and any custom objects. Schema is deployed to a Bullhorn Sandbox first for validation.

  3. Sandbox migration and reconciliation

    We run a full migration into Bullhorn Sandbox using production-like data volumes. The customer's Bullhorn admin reconciles record counts (Jobs in, Candidates in, Offers in, Talent Pool memberships in, Documents in), spot-checks 25 to 50 random candidate records against the Eploy source, and verifies the stage mapping produces expected Bullhorn status values. Stage mapping corrections and custom field adjustments happen here, not in production. Document attachment counts are verified against the source URL list.

  4. Document attachment pre-processing

    Before production migration begins, we enumerate all document attachment URLs from Eploy and download each file to secure temporary storage. We verify file integrity (MD5 checksum), resolve any redirect chains, and stage the files for Bullhorn upload in dependency order (after candidate records exist in Bullhorn so that the parent record ID is available). For high-volume document sets, we parallelise downloads within the Eploy API rate limit (10 req/sec burst) using exponential backoff on 429 responses.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Client Corporation records (from Eploy companies referenced in jobs and candidate history), Job Orders (from Eploy Job requisitions with status and custom fields), Candidates (with Client Corporation lookups resolved), Offer and referral data (as custom fields on Candidate), Talent Pool memberships (as Candidate tags), Application history (as Candidate Job Submission records), Assessment data (as custom fields and Note records), Communication history (as Note records), then document attachments (as Bullhorn binary blobs linked to Candidate). Each phase emits a row-count reconciliation report before the next phase begins. We throttle to stay within the Eploy API's daily call tier and implement checkpointing to resume from the last successful record on any 429 response.

  6. Cutover, validation, and workflow rebuild handoff

    We freeze Eploy writes 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 Eploy workflow rule inventory and Bullhorn Automation rebuild guide to the customer's Bullhorn admin team. We support a one-week hypercare window where we resolve any reconciliation issues raised by the recruitment team. We do not rebuild Eploy workflow rules as Bullhorn Automation inside the migration scope; that is a separate engagement or an internal admin task.

Platform deep dives

Context on both ends of the pair

Eploy logo

Eploy

Source

Strengths

  • Founded in 1998, giving it one of the longest track records in the UK ATS market with deep sector knowledge
  • Integrates onboarding into the same platform as the ATS, creating a single system of record from hire to start date
  • Offers its own migration and implementation services, acknowledging data migration as a core part of the customer lifecycle
  • OAuth2 API with tiered daily call limits enables programmatic data extraction for migrations
  • Strong customer service reputation (4.9/5) suggests reliable support during complex migration projects

Weaknesses

  • No free tier or self-service trial, requiring a sales conversation before evaluation, which increases migration commitment risk
  • Pricing starts at £695/month flat rate, making cost predictability difficult for organisations migrating mid-contract
  • Interface described as clunky and non-intuitive by multiple reviewers, suggesting migration scoping calls must account for user retraining
  • API rate limits (max 50,000 calls/day on Tier 4) can extend migration timelines for large candidate databases
  • Reporting complexity deters organisations that need quick access to recruitment analytics, a common migration trigger
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 Eploy and Bullhorn ATS & CRM.

B

Overall complexity

Standard migration

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

  • Object compatibility

    A

    All 7 core objects map 1:1 between Eploy 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

    Eploy: 10 requests per second; daily tier caps of 1,000 / 5,000 / 10,000 / 50,000 depending on subscribed tier.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

Walk through your Eploy 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 three and five weeks for accounts under 15,000 candidates and 500 jobs with no custom objects or complex stage sets. Migrations with high document attachment volumes (hundreds per candidate in compliance-heavy sectors), large talent pools, complex custom stage sets, or separate onboarding module extraction move to eight to fourteen weeks because of the two-pass document pipeline, stage mapping validation, and onboarding module schema discovery. Bullhorn's own documentation notes that small agencies go live in weeks, not months, which aligns with our typical timeline for clean record sets.

Adjacent paths

Related migrations to explore

Ready when you are

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