HRMS migration

Migrate from Lever to Bullhorn ATS & CRM

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

Lever logo

Lever

Source

Bullhorn ATS & CRM

Destination

Bullhorn ATS & CRM logo

Compatibility

69%

9 of 13

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

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Lever to Bullhorn is a schema translation between two fundamentally different ATS models. Lever is opportunity-centric — a single Contact can hold multiple Opportunities, each with its own stage, interview history, and feedback. Bullhorn uses a relational staffing model with Candidate, JobOrder, ClientCorporation, JobSubmission, and Placement as distinct objects. We split every multi-Opportunity Lever Contact into multiple JobSubmission records in Bullhorn, attach each to the correct JobOrder, and resolve ClientCorporation and ClientContact records for every submission. Scorecard data cannot be created via Lever's API and migrates as structured notes; Bullhorn admins rebuild scorecard templates post-import. Talent pool and nurture campaign associations carry as Contact-level tags. Bullhorn requires every record to have an owner at import time, so we reconcile the Lever user roster against Bullhorn User records before any batch insert begins. Workflows, sequences, and automated nurture campaigns do not migrate; we deliver a written inventory of every automation requiring rebuild in Bullhorn Automation or the destination's workflow builder.

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

Lever logo

Lever

What's pushing teams away

  • Annual contract pricing scales quickly with headcount — companies with under 50 employees report $8K-$12K/year as a barrier, and mid-market push to $15K-$25K.
  • Support responsiveness lags behind competitors; reviewers cite difficulty reaching live support and slow ticket resolution as a recurring pain point.
  • The interface becomes visually crowded and less intuitive as feature volume grows, creating a steep learning curve for new users and hiring managers outside the recruiting team.
  • Reporting dashboards are described as less flexible and user-friendly than other core platform features, requiring exported data for deeper analysis.

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

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

Lever

Contact

maps to

Bullhorn ATS & CRM

Candidate

1:1
Fully supported

Lever Contacts map directly to Bullhorn Candidate records. The Lever Contact ID is preserved in a custom field lever_original_id__c for audit traceability. Multi-select fields on Lever (phone type, social links) map to Bullhorn Candidate's typed multi-value fields. Every Candidate must have an Owner at insert time; we resolve the Lever Owner by email match against Bullhorn User before inserting.

Lever

Opportunity (multi per Contact)

maps to

Bullhorn ATS & CRM

JobSubmission

1:many
Fully supported

This is the highest-risk mapping in the pair. A Lever Contact with three active Opportunities (three separate role applications) must become one Bullhorn Candidate record plus three JobSubmission records — one per Opportunity. We export all Opportunity records per Contact, compute the split during transformation, and insert each JobSubmission linked to the correct JobOrder. The Opportunity stage maps to JobSubmission status; the Opportunity createdAt date maps to JobSubmission dateSubmitted. If Bullhorn does not yet have the target JobOrder created, we hold JobSubmission inserts until JobOrders are loaded.

Lever

Job

maps to

Bullhorn ATS & CRM

JobOrder

1:1
Fully supported

Lever Jobs map to Bullhorn JobOrder. Job title, description, department, location, and employment type transfer directly. The Lever Job opening count maps to JobOrder numOpenings. Job status (Open, Closed, Draft) maps to JobOrder status. We flag any Lever Jobs with no published posting URL and note them for manual re-posting in Bullhorn.

Lever

Opportunity Stage

maps to

Bullhorn ATS & CRM

JobSubmission Status + JobOrder pipeline stages

lossy
Fully supported

Lever's pipeline stages are configurable per Job. We export the full stage configuration (stage name, order, probability) and recreate it in Bullhorn as JobSubmission status values plus the corresponding pipeline stages on JobOrder. Stage probabilities migrate to Bullhorn's expectedCloseDate and stage weight fields where supported.

Lever

Interview

maps to

Bullhorn ATS & CRM

JobSubmission interview events

1:1
Fully supported

Lever interview records (scheduling data, interviewer assignment, interview type, duration) map to Bullhorn JobSubmission interview event entries. Bullhorn captures interview scheduling as part of the submission workflow. We preserve interviewer assignment by resolving Lever user email to Bullhorn User ID. Interview cancellation records carry as a note on the JobSubmission. Full calendar integration re-connection is a post-migration step.

Lever

Scorecard and Feedback

maps to

Bullhorn ATS & CRM

Note (structured)

1:1
Fully supported

Lever scorecards use a structured evaluation format tied to Opportunities. Bullhorn has no direct scorecard creation API — we import scorecard data as Bullhorn Note records with a structured label prefix (e.g., SCORECARD:) so that admins can identify and manually recreate them. The customer receives a scorecard inventory document listing every scorecard, the evaluator, the rating fields, and the recommended Bullhorn form or custom object equivalent. This is not a data loss gap — it is a known API limitation disclosed during scoping.

Lever

Offer

maps to

Bullhorn ATS & CRM

JobSubmission offer data

1:1
Fully supported

Lever Offer records (compensation, start date, offer status) attach to the Opportunity. In Bullhorn, offer data lives on the JobSubmission. We extract the offer fields from Lever and write them into the corresponding JobSubmission's offer fields if Bullhorn's edition supports them, or into a custom object (if Bullhorn's edition allows) or a structured note. Offer history (extended offers, counter-offers) migrates as sequential note entries.

Lever

User

maps to

Bullhorn ATS & CRM

User

1:1
Fully supported

Lever Users map to Bullhorn Users by email address. We export the full Lever user roster including name, email, role, and department. Inactive Lever users flag separately. Bullhorn requires OwnerId on Candidate and JobSubmission at insert time, so any Lever user without a matching Bullhorn User must be provisioned by the Bullhorn admin before we resume the migration batch. We provide a user reconciliation worksheet listing every unmatched owner.

Lever

Client (on Opportunity or Contact)

maps to

Bullhorn ATS & CRM

ClientCorporation + ClientContact

many:1
Fully supported

Lever has no formal ClientCorporation object; client associations on Opportunities are typically stored as text fields or linked Contacts. We extract every distinct client reference from Lever records, deduplicate by client name or domain, and create Bullhorn ClientCorporation records. The corresponding hiring manager or recruiter contact on the Lever record becomes a ClientContact linked to the ClientCorporation. If the Lever data uses a Contact record as the client (rare), we treat it as a ClientCorporation in Bullhorn.

Lever

Custom Fields (Opportunity-level)

maps to

Bullhorn ATS & CRM

Custom Fields on JobSubmission or CustomObject

1:1
Fully supported

Lever custom fields on Opportunities and Contacts vary by tenant configuration. We enumerate all custom field definitions during discovery, map them to equivalent Bullhorn Candidate or JobSubmission custom fields, or to Bullhorn Custom Objects if the field count exceeds standard limits. Bullhorn ATS supports 2 custom objects; Bullhorn Growth and Enterprise support up to 10. We configure Bullhorn custom fields before data import using the Bullhorn Field Mappings admin tool or REST API.

Lever

Attachment and Resume File

maps to

Bullhorn ATS & CRM

Candidate resume and attachment

1:1
Fully supported

Lever stores attachment URLs as session-linked references that expire when Lever credentials are rotated. We download all candidate CVs and attachments during the export window — before the customer rotates any Lever API keys — and re-upload files to Bullhorn Candidate records directly via Bullhorn's REST API. Bullhorn parses uploaded resumes using its built-in resume parsing. This step has a hard dependency on export completion before credential cutover.

Lever

Nurture Campaign and Talent Pool

maps to

Bullhorn ATS & CRM

Tag + custom TalentPool field

lossy
Fully supported

Lever's CRM layer includes talent pool tagging and nurture campaign associations with no direct Bullhorn equivalent. We carry these as Bullhorn Tags on the Candidate record plus a custom multi-select text field candidate_talent_pool__c. Any automated sequences or nurture logic tied to these pools cannot be migrated and must be rebuilt in Bullhorn Automation (formerly Herefish) or a dedicated email cadence tool. We document every unique talent pool and nurture campaign label during discovery.

Lever

Interview Event

maps to

Bullhorn ATS & CRM

JobSubmission event history (supplementary)

1:1
Fully supported

Lever interview event records capture scheduling metadata, cancellation flags, and calendar sync status. Bullhorn does not recreate calendar integrations from imported interview data. We export interview event history as supplementary notes on the JobSubmission (labeled INTERVIEW_EVENT:) and flag that interviewers must reconnect their calendar accounts to Bullhorn post-migration. New interview slots must be scheduled via Bullhorn's scheduling tool or the customer's preferred calendar integration.

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.

Lever logo

Lever gotchas

High

Lever's Opportunity model requires splitting in most destinations

Medium

Scorecards cannot be created via Lever's API

High

Attachment download must happen before credential cutover

Medium

Nurture campaign and talent pool associations do not translate directly

Low

Interview event history is supplementary data only

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

  • Multi-Opportunity Lever Contacts require 1:N split into JobSubmissions

    Lever's opportunity-centric model lets one Contact carry multiple Opportunities, each with its own pipeline stage, interview history, and feedback. Bullhorn separates this into Candidate (person) plus one JobSubmission per role application. A naive flat export drops Opportunity history on candidates who applied to multiple roles. We export every Opportunity per Contact, compute the split, and insert one JobSubmission per Opportunity. The Opportunity stage maps to JobSubmission status; the Opportunity createdAt maps to dateSubmitted. If the target Bullhorn JobOrder does not yet exist, JobSubmission inserts hold until Jobs are loaded.

  • Bullhorn requires OwnerId on all importable entities

    Bullhorn enforces an Owner field on Candidate, JobSubmission, JobOrder, and Placement at insert time. Missing OwnerId blocks the record import and returns an error. We resolve Lever Owner to Bullhorn User by email match. Any Lever user without a matching Bullhorn User goes to a reconciliation worksheet; the Bullhorn admin provisions the missing user before we resume the batch. We do not allow migration to proceed past record insertion without owner resolution because re-processing orphaned records adds significant time.

  • Scorecards cannot be created via Lever's API

    Lever's API provides read access to scorecard data but does not support creating or writing scorecards programmatically. Bullhorn similarly lacks a scorecard creation API. We import Lever scorecards as Bullhorn Note records with a SCORECARD: label prefix so they are identifiable. The customer receives a written scorecard inventory document listing every scorecard, evaluator, rating fields, and recommended Bullhorn form or custom object equivalent. Scorecard templates must be manually recreated in Bullhorn by the admin post-import.

  • Attachment download must complete before credential cutover

    Lever stores candidate CVs and files as session-linked URLs that expire when the customer's Lever account credentials are rotated or deprovisioned. We download all attachment URLs during the export phase before any credential changes occur. Files are re-uploaded to Bullhorn Candidate records via Bullhorn's REST API. Customers must not rotate Lever API keys until FlitStack AI confirms the export phase is complete. Skipping this step results in candidate files that cannot be accessed or re-uploaded.

  • Bullhorn custom object limits vary by edition

    Bullhorn ATS supports 2 custom objects with 55 fields each; Bullhorn Growth and Enterprise support up to 10. We enumerate Lever's custom field count during discovery and map them to Bullhorn standard fields, custom fields on existing objects, or custom objects in that priority order. If the customer's Lever tenant uses more custom fields than Bullhorn's edition supports, we flag the overflow and the customer either upgrades their Bullhorn edition or accepts that some fields migrate as structured notes.

Migration approach

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

  1. Discovery and record volume audit

    We audit the Lever tenant across Contacts, Opportunities (with multi-Opportunity rate per Contact), Jobs, Interviews, Scorecards, Offers, Users, custom fields, and attachment count. We also audit the target Bullhorn instance for existing ClientCorporation records, User count, and edition-level custom object limits. The discovery output is a written migration scope, a record-count estimate, and a Bullhorn edition recommendation if the customer's custom field volume exceeds their current Bullhorn tier's limits.

  2. Opportunity split rule and ClientCorporation mapping design

    We define the Opportunity-to-JobSubmission split rule based on the customer's Lever Opportunity-per-Contact distribution. We also map every distinct client reference in Lever to a Bullhorn ClientCorporation and ClientContact. Bullhorn field mappings (Admin > Field Mappings) are configured for any custom fields. This step produces the transformation logic that every subsequent export batch runs through before Bullhorn insertion.

  3. Schema provisioning in Bullhorn

    We provision Bullhorn custom fields, custom objects, and field mappings before any data insert. Bullhorn's Custom Objects require Bullhorn Support to create initially (via the Custom Object Setup Sheet); we coordinate with the customer's Bullhorn admin to submit the ticket and confirm setup. Standard fields are mapped via Bullhorn's Field Mappings admin panel or REST API meta endpoints. All Bullhorn configuration happens in a staging or Sandbox environment before production migration begins.

  4. Owner reconciliation and User provisioning

    We extract every distinct Lever Owner referenced across Contacts, Opportunities, Interviews, and Offers and match by email against the Bullhorn User table. Owners without a matching Bullhorn User are listed in a reconciliation worksheet. The Bullhorn admin provisions missing Users before record migration resumes. Bullhorn requires OwnerId on every Candidate, JobSubmission, JobOrder, and Placement — migration cannot proceed past insertion without owner resolution.

  5. Production migration in dependency order

    We run production migration in record-dependency order: ClientCorporations (from Lever client references), ClientContacts, Users (manual provisioning confirmed), JobOrders (from Lever Jobs), Candidates (from Lever Contacts with owner resolved), JobSubmissions (split from Lever Opportunities, with JobOrderId and CandidateId resolved), Offer data (as structured fields or notes on JobSubmission), Interview event history (as supplementary notes), Scorecards (as structured notes), Attachments (downloaded from Lever URLs and uploaded to Bullhorn Candidates via REST API), Custom fields and tags, and Nurture campaign / talent pool metadata (as Tags and custom TalentPool field). Each phase emits a row-count reconciliation report before the next phase begins.

  6. Cutover, validation, and automation rebuild handoff

    We freeze Lever 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 scorecard inventory document, the nurture campaign and talent pool metadata list, and the automation rebuild guide covering any Lever workflows and sequences that require reconstruction in Bullhorn Automation or Bullhorn's workflow builder. We support a one-week hypercare window for reconciliation issues. Workflow and sequence rebuild is outside standard migration scope.

Platform deep dives

Context on both ends of the pair

Lever logo

Lever

Source

Strengths

  • Combines ATS and CRM in one platform, eliminating the need for separate talent pooling tools.
  • Highly integrations-dense at 300+ across all plans, covering HRIS, background check, calendar, and communication platforms.
  • Strong candidate sourcing and nurturing features designed for teams actively recruiting passive candidates.
  • Clean candidate profile view accessible to hiring managers without requiring recruiter-only access.
  • Enterprise-grade security certifications make it suitable for regulated industries and larger orgs.

Weaknesses

  • Annual pricing starts at $8K+ and scales with headcount, pricing out small teams and early-stage companies.
  • Support accessibility is a recurring complaint across G2 and Capterra reviews.
  • Interface becomes visually cluttered and less intuitive as feature set expands, creating friction for occasional users.
  • Reporting and analytics features are less flexible than other core functions, often requiring data export for deeper insight work.
  • Onboarding and implementation complexity can delay full team adoption beyond the initial recruiting team.
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 Lever 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

    Lever: Not publicly documented; undocumented limits apply.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Clean Lever-to-Bullhorn migrations under 5,000 Contacts with low multi-Opportunity rates typically complete in three to five weeks. Migrations with high multi-Opportunity branching (candidates who applied to multiple roles), active ClientCorporation remapping, large interview event histories, or custom object provisioning stretch to six to ten weeks. Bullhorn Launch offers a documented two-week go-live for small agencies on their side, which can overlap with our data migration timeline if coordinated.

Adjacent paths

Related migrations to explore

Ready when you are

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