HRMS migration
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
Source
Bullhorn ATS & CRM
Destination
Compatibility
7 of 12
objects map 1:1 between Dover and Bullhorn ATS & CRM.
Complexity
BStandard
Timeline
2-4 weeks
Overview
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.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
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
Bullhorn ATS & CRM
Candidate
1:1Dover 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
Bullhorn ATS & CRM
Contact
1:manyDover 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
Bullhorn ATS & CRM
JobOrder
1:1Dover 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
Bullhorn ATS & CRM
User-Defined Field on Candidate
lossyDover 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
Bullhorn ATS & CRM
Opportunity Status + Record Type
lossyDover'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
Bullhorn ATS & CRM
CorporateUser
1:1Dover 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
Bullhorn ATS & CRM
Evaluation
1:1If 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)
Bullhorn ATS & CRM
Lead
1:1Dover 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
Bullhorn ATS & CRM
Bullhorn Job Board Credential Re-configuration
lossyDover 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
Bullhorn ATS & CRM
Not Migrated
1:1The 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
Bullhorn ATS & CRM
Not Migrated
1:1Dover'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)
Bullhorn ATS & CRM
Candidate Custom Fields
lossyDover 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.
| Dover | Bullhorn ATS & CRM | Compatibility | |
|---|---|---|---|
| Candidate | Candidate1:1 | Fully supported | |
| Candidate | Contact1:many | Fully supported | |
| Job | JobOrder1:1 | Fully supported | |
| Scorecard | User-Defined Field on Candidatelossy | Fully supported | |
| Pipeline Stage | Opportunity Status + Record Typelossy | Fully supported | |
| User | CorporateUser1:1 | Fully supported | |
| Scorecard | Evaluation1:1 | Fully supported | |
| Candidate (source tracking) | Lead1:1 | Fully supported | |
| Job Board Credentials | Bullhorn Job Board Credential Re-configurationlossy | Fully supported | |
| Recruiting Marketplace | Not Migrated1:1 | Not supported | |
| Calendar Integration | Not Migrated1:1 | Fully supported | |
| Custom Scorecard Fields (Premium AI) | Candidate Custom Fieldslossy | Fully supported |
Gotchas + challenges
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 gotchas
No public API requires CSV-only export for migration
AI features gated behind Premium tier
Calendar and email threads not portable
Bullhorn ATS & CRM gotchas
ATS Growth edition has no API access
Attachments excluded from CSV bulk exports
Custom Object limits vary sharply by edition
Opportunity pipeline stages are recruitment-specific
Resume parse quality varies by document format
Pair-specific challenges
Migration approach
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.
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.
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.
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.
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.
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
Dover
Source
Strengths
Weaknesses
Bullhorn ATS & CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard HRMS migration. All 7 core objects map 1:1 between Dover and Bullhorn ATS & CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Dover and Bullhorn ATS & CRM.
Object compatibility
All 7 core objects map 1:1 between Dover and Bullhorn ATS & CRM.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
7-object category — typical timelines run 2–7 days end-to-end.
API constraints
Dover: Not publicly documented.
Data volume sensitivity
Dover doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Dover to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.
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 consultationAdjacent paths
Other ways to leave Dover
Other ways to arrive at Bullhorn ATS & CRM
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.