HRMS migration

Migrate from Dover to Bullhorn ATS & CRM

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

Dover logo

Dover

Source

Bullhorn ATS & CRM

Destination

Bullhorn ATS & CRM logo

Compatibility

58%

7 of 12

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

Complexity

BStandard

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Dover to Bullhorn is a platform upgrade that trades Dover's template-driven simplicity for Bullhorn's staffing-specific ATS and CRM depth. Because Dover has no public REST API, all source data comes through CSV bulk export across Candidates, Jobs, Scorecards, and Users. We transform each CSV into Bullhorn's normalized schema, map Dover pipeline stages to Bullhorn Opportunity statuses and Record Types, resolve owner email-to-user lookups in the destination org, and load via Bullhorn's REST API with batch chunking and retry logic. AI-generated scorecards from Dover's Premium tier export as custom fields and map to Bullhorn user-defined fields. Dover's Gmail and Calendar integrations are OAuth-linked external accounts and do not migrate. Bullhorn automations, email sequences, tearsheets, and job board API credentials do not migrate; we deliver a written inventory of these for the customer's Bullhorn admin to rebuild 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

Dover logo

Dover

What's pushing teams away

  • The absence of a documented public API means engineering teams cannot build custom integrations or automate workflows around the ATS, forcing reliance on Dover's native connectors only.
  • Occasional bugs and interface glitches cause friction when managing multiple concurrent pipelines, with users reporting dropped scores and lost stage changes.
  • As hiring volume scales past 20–30 open roles, the platform's simplicity becomes a constraint—basic reporting lacks the depth needed for hiring funnel analytics and recruiter performance metrics.
  • Teams that require advanced compliance features such as SOC 2 controls, role-based data residency, or audit logs find Dover's offering insufficient for enterprise procurement requirements.

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

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

Dover

Candidate

maps to

Bullhorn ATS & CRM

Candidate

1:1
Fully supported

Dover Candidate records map directly to Bullhorn Candidate with name, email, phone, source, current stage, and application date transferred as standard fields. The candidate record is the primary migration unit. Stage history from Dover's stage history export table migrates as Bullhorn Opportunity records linked to the Candidate, preserving the progression timeline. Any Dover Candidate without an email address is flagged as a partial record and held for manual review before Bullhorn ingest.

Dover

Candidate

maps to

Bullhorn ATS & CRM

Contact

1:many
Fully supported

Dover Candidates that represent placed or active talent who are also clients or external recruiters split into Bullhorn Contact records. We use the candidate's email domain and a type flag in the CSV to determine whether to create a Bullhorn Contact alongside the Candidate. Both records are linked so that a Candidate's placement history and a Contact's client activity coexist without duplication.

Dover

Job

maps to

Bullhorn ATS & CRM

JobOrder

1:1
Fully supported

Dover Job postings (title, department, location, description, status) map to Bullhorn JobOrder. The Job-to-Candidate linkage from Dover migrates as Bullhorn Submission records that connect each Candidate to the corresponding JobOrder. We preserve the job's published status and any linked scorecard template name on the JobOrder for Bullhorn recruiters to reassign evaluation criteria post-migration.

Dover

Scorecard

maps to

Bullhorn ATS & CRM

User-Defined Field on Candidate

lossy
Fully supported

Dover AI-generated scorecards and manually created evaluation templates export as custom fields in the candidate CSV. These map to Bullhorn user-defined fields (UDFs) on the Candidate object. Dover's numeric scoring maps to Bullhorn number UDFs; free-text evaluation notes map to text UDFs. We flag any Dover scorecard fields that exceed Bullhorn's UDF field name or type constraints and resolve them during transformation. The customer rebuilds scorecard templates in Bullhorn's native Evaluation tool post-migration.

Dover

Pipeline Stage

maps to

Bullhorn ATS & CRM

Opportunity Status + Record Type

lossy
Fully supported

Dover's per-job pipeline stages (Applied, Screening, Interview, Offer, Hired) extract as a per-job stage taxonomy. We map each unique Dover stage set to a Bullhorn Opportunity Record Type with a corresponding Status set. If Dover had no fixed stage names (custom per job), we standardize to a Bullhorn five-stage pipeline and preserve the original Dover stage name in a text field on the Opportunity for audit.

Dover

User

maps to

Bullhorn ATS & CRM

CorporateUser

1:1
Fully supported

Dover User accounts (name, email, role, active/inactive) map to Bullhorn CorporateUser. We resolve owners by email match against the Bullhorn destination org's user table. Any Dover User without a matching Bullhorn CorporateUser is held in a reconciliation queue for the customer's Bullhorn admin to provision before candidate and job import begins, since OwnerId references are required on JobOrder and Candidate records.

Dover

Scorecard

maps to

Bullhorn ATS & CRM

Evaluation

1:1
Fully supported

If the customer used Dover's structured scorecard templates with numeric ratings, we create Bullhorn Evaluation records linked to the Candidate and JobOrder. Evaluation section scores map to Bullhorn number fields on the Evaluation; overall recommendation maps to a picklist UDF. Dover AI-generated scores that lack a structured template format are stored as text UDFs on the Candidate record as a fallback.

Dover

Candidate (source tracking)

maps to

Bullhorn ATS & CRM

Lead

1:1
Fully supported

Dover Candidates sourced from specific job boards or referral channels with no active job assignment map to Bullhorn Lead records rather than Candidate records. The source field (LinkedIn, Indeed, Referral, etc.) from Dover populates the LeadSource on the Bullhorn Lead. Active applications remain as Candidate-to-JobOrder links. This split is computed at migration time using the candidate's job association column in the CSV export.

Dover

Job Board Credentials

maps to

Bullhorn ATS & CRM

Bullhorn Job Board Credential Re-configuration

lossy
Fully supported

Dover job board API credentials (LinkedIn, Indeed, X/Twitter, and 100+ others) are stored as settings in Dover and are not records in the candidate data model. We document every active job board credential from the Dover settings export and provide a configuration checklist for the customer's Bullhorn admin to re-enter or reconnect these integrations in Bullhorn post-migration. Job board postings themselves do not migrate; we provide a list of active postings to recreate.

Dover

Recruiting Marketplace

maps to

Bullhorn ATS & CRM

Not Migrated

1:1
Not supported

The Dover Recruiting Marketplace is a separate external service connecting companies with external recruiters. It is not part of Dover's core ATS data model and has no equivalent in Bullhorn's standard data model. We exclude it from migration scope and flag it in the data inventory for the customer to decommission or migrate through the separate marketplace platform's own export tools.

Dover

Calendar Integration

maps to

Bullhorn ATS & CRM

Not Migrated

1:1
Fully supported

Dover's Gmail and Calendar OAuth integrations store scheduling and email history in Google, not in Dover's database. These are not included in the CSV export. We document candidate records with linked Google activity for the customer to re-connect the Bullhorn Gmail integration post-migration and preserve scheduling continuity. Interview invitations and calendar events do not migrate.

Dover

Custom Scorecard Fields (Premium AI)

maps to

Bullhorn ATS & CRM

Candidate Custom Fields

lossy
Fully supported

Dover Premium tier AI applicant scores and AI-generated interview notes export as custom fields in the CSV. We map these to Bullhorn free-text or number custom fields on the Candidate object. If the customer relies heavily on Dover's AI scoring as the primary evaluation signal, we flag that Bullhorn's Kyloe AI for Bullhorn is a separate product requiring additional licensing and configuration, and the AI scoring model does not transfer between platforms.

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.

Dover logo

Dover gotchas

High

No public API requires CSV-only export for migration

Medium

AI features gated behind Premium tier

Medium

Calendar and email threads not portable

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

  • No public API forces CSV-only export from Dover

    Dover does not publish a REST API or webhook documentation, which means all data export for migration must use the platform's CSV bulk export feature. We pull Candidates, Jobs, Scorecards, and Users as separate CSV downloads, then perform field mapping and transformation in our pipeline. CSV exports have row limits and can produce malformed data for records with long text fields or non-UTF-8 characters. We pre-validate each CSV before transformation and flag any records that exceed row limits, contain malformed data, or have missing required fields (particularly email addresses on Candidates) so they can be resolved before Bullhorn ingest begins.

  • Dover pipeline stages vary per job and require normalization

    Dover allows pipeline stages to be customized per job, meaning the stage taxonomy (Applied, Screening, Interview, Offer, etc.) is not uniform across the account. Bullhorn's Opportunity Record Type model requires a fixed Status set per Record Type. We extract every distinct stage configuration across all Dover jobs, deduplicate the set, and design a normalized Bullhorn pipeline with a limited number of Record Types that cover all roles. Any job with more than ten custom stages is flagged for the customer to simplify or consolidate before migration, since Bullhorn's standard pipeline UI does not support that depth without custom development.

  • Dover Premium AI scorecards map to Bullhorn UDFs, not native AI

    If the customer's Dover instance used AI applicant scoring or AI-generated interview notes as the primary evaluation mechanism, those scores export as custom fields in the CSV and map to Bullhorn free-text or number custom fields. Bullhorn's native AI capabilities (Kyloe AI for Bullhorn) are a separate product requiring additional licensing and are not populated by the migration. We explicitly flag this limitation in the migration inventory so the customer understands that Dover AI scores do not carry over as an active scoring model and must be regenerated in Bullhorn if desired.

  • Bullhorn automations, sequences, and tearsheets do not migrate

    Bullhorn automations (trigger-based workflows), email sequences (drip cadences), hotlists, and tearsheets are configuration objects with different data models than their Dover equivalents or no Dover equivalent at all. We do not migrate Bullhorn automations as code. We deliver a written inventory of every Bullhorn automation and sequence the customer has configured, documenting the trigger, conditions, and actions for the customer's Bullhorn admin to rebuild in Bullhorn Automation Builder post-migration. Dover does not have equivalent automation objects, so there is no source-side sequence to migrate.

  • Owner resolution requires pre-provisioned Bullhorn users

    Bullhorn requires a valid CorporateUser OwnerId on JobOrder and Candidate records. We resolve Dover User emails to Bullhorn CorporateUser by email match. If any Dover User who is assigned as an owner on Candidate or Job records does not have a matching Bullhorn CorporateUser, migration for those records pauses. The customer's Bullhorn admin must provision the missing user before record import can resume. We provide a reconciliation report listing every unmatched owner after discovery so this can be resolved before migration begins, preventing mid-migration stalls.

Migration approach

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

  1. Discovery and CSV export sequencing

    We audit the Dover account across all workspaces, collecting Candidate count, Job count, scorecard template count, user count, and active pipeline stage sets. We confirm whether Premium AI scoring was used and flag any jobs with more than ten custom stages. We then coordinate with the customer to run the CSV bulk export from Dover for each object (Candidates, Jobs, Scorecards, Users) and transfer the files to FlitStack AI over a secure channel. We validate row counts and flag any CSV that exceeds Dover's export row limit or contains encoding issues before transformation begins.

  2. Bullhorn sandbox provisioning and schema design

    We set up a Bullhorn Sandbox org linked to the customer's production instance for validation migration. We design the Bullhorn schema: Record Types per Dover pipeline group, Status sets mapped from Dover stage taxonomies, user-defined fields for Dover scorecard and AI scoring data, and Lead/Candidate split rules for unsourced candidates. Bullhorn custom fields are deployed to the Sandbox via API before any data loads. The customer's Bullhorn admin reviews and approves the schema design before we proceed to the validation migration.

  3. Sandbox validation and reconciliation

    We run a full migration into the Bullhorn Sandbox using production data volumes. The customer's Bullhorn admin reconciles record counts (Candidates in, Jobs in, Users in, Opportunities in), spot-checks a random sample of candidate and job records against the Dover source, and validates that scorecard data appears in the correct Bullhorn UDF fields. Stage mapping is validated against the Dover stage history for at least five jobs. Any mapping corrections and schema adjustments happen in the Sandbox and are redeployed before production migration begins.

  4. Owner reconciliation and Bullhorn user provisioning

    We extract every distinct Dover User referenced on Candidate, Job, and Scorecard records and match by email against the Bullhorn destination org's CorporateUser table. We produce a reconciliation report listing matched owners (proceed to migration) and unmatched owners (must be provisioned). The customer's Bullhorn admin provisions any missing CorporateUsers before we begin production migration. Migration cannot proceed past this step because JobOrder and Candidate records require a valid OwnerId.

  5. Production migration in dependency order

    We run production migration in record-dependency order: CorporateUsers (validated, not migrated), JobOrders (created first as the parent of all candidate-to-job linkages), Candidates (with OwnerId resolved from the User reconciliation), Leads (for unsourced Dover candidates), Opportunities (linked to Candidate and JobOrder via Bullhorn Submission records), and custom UDFs (scorecard and AI scoring data loaded last to ensure the parent record exists). Each phase emits a row-count reconciliation report. Bullhorn's REST API batch endpoint handles 50-record chunks with exponential backoff on rate-limit responses.

  6. Cutover, delta sync, and automation rebuild handoff

    We freeze Dover 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 Bullhorn automation and sequence inventory document to the customer's Bullhorn admin for rebuild in Bullhorn Automation Builder. We support a one-week hypercare window where we resolve any record linkage or data quality issues raised by the recruiting team. Bullhorn automations and Dover Premium AI scoring are not rebuilt as part of the migration scope; these are separate configuration engagements.

Platform deep dives

Context on both ends of the pair

Dover logo

Dover

Source

Strengths

  • Free tier includes unlimited users, jobs, and 100+ job board integrations with no time limit
  • Template-based scorecards and interview guides get teams live in under two hours
  • Native Gmail and Calendar sync keeps recruiting activity in existing tools
  • AI applicant scoring and auto-generated interview notes reduce manual screening overhead
  • Responsive Premium support provides onboarding guidance for teams without HR ops staff

Weaknesses

  • No documented public API limits programmatic access to candidate and job data
  • Free tier lacks AI features, custom reporting, and premium support found in paid alternatives
  • Occasional UI bugs and stability issues reported in G2 reviews
  • Limited advanced analytics and hiring funnel reporting compared to enterprise ATS platforms
  • No SOC 2 compliance certification disclosed, creating procurement friction for regulated industries
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 Dover and Bullhorn ATS & CRM.

B

Overall complexity

Standard migration

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

  • Object compatibility

    A

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

    Dover: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

Walk through your Dover 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 10,000 Candidates and 500 Jobs with a consistent stage taxonomy and no custom scorecard fields. Migrations with large candidate volumes (over 50,000 records), per-job stage customization, multiple Dover pipelines, or extensive scorecard data move to five to eight weeks because of CSV normalization, stage reconciliation, and Bullhorn API batch sequencing. Bullhorn's own documentation cites two weeks for small agency go-live and two to six weeks for larger implementations, which aligns with the upper range of our migration timeline.

Adjacent paths

Related migrations to explore

Ready when you are

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