HRMS migration

Migrate from ApplicantStack to Bullhorn ATS & CRM

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

ApplicantStack logo

ApplicantStack

Source

Bullhorn ATS & CRM

Destination

Bullhorn ATS & CRM logo

Compatibility

67%

8 of 12

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

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

ApplicantStack and Bullhorn serve different segments of the recruitment market. ApplicantStack targets small to mid-sized teams with a flat-rate budget ATS; Bullhorn is purpose-built for staffing and recruitment agencies with a combined ATS and CRM, deeper pipeline management, and a marketplace of agency-specific integrations. The migration gap is structural: ApplicantStack has no public API and relies on CSV exports via its built-in Reports builder, while Bullhorn exposes a REST API with per-edition field limits, Custom Object constraints, and Bullhorn Automation workflows that do not carry forward. We extract from ApplicantStack Reports as structured CSVs, parse flat-file candidate records, run deduplication against email and phone, then load into Bullhorn via the REST API with parent-record lookup resolution. Bullhorn editions govern Custom Object limits (10 for Enterprise, 2 for ATS Growth, none for standard ATS), and Bullhorn Automation sequences cannot be migrated—these are documented for rebuild by the customer's admin 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

ApplicantStack logo

ApplicantStack

What's pushing teams away

  • Customer support response times frustrate users; one reviewer noted they wait days for replies and sometimes receive no solution at all.
  • Limited customization blocks teams from tailoring workflows; form builder restrictions prevent capturing all the data some industries require.
  • Navigation nomenclature causes confusion; users report difficulty locating tasks and reports due to non-standard labeling.
  • Duplicate candidate tracking is unreliable, making it hard to identify and merge repeat applicants without manual intervention.
  • Email functionality produces issues including duplicate tracking problems and support tickets that go unaddressed.

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

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

ApplicantStack

Position/Job

maps to

Bullhorn ATS & CRM

JobOrder

1:1
Fully supported

ApplicantStack Positions map to Bullhorn JobOrder records. Job title, description, status (Open/Closed), and opening count transfer directly. Bullhorn JobOrder also capturesClientCorporation (the staffing firm's client account), which ApplicantStack does not model; we create a placeholder ClientCorporation record during migration or map to an existing Bullhorn client if the customer has already onboarded their account structure.

ApplicantStack

Candidate

maps to

Bullhorn ATS & CRM

Candidate

1:1
Fully supported

ApplicantStack Candidate records (name, email, phone, application date, source, status, resume file) map to Bullhorn Candidate. We run deduplication during transformation by email address, normalized phone number, and name string to flag likely duplicates for customer review before final import. Resume files migrate as Candidate document attachments. The applicant's original source field maps to Bullhorn's candidateSource field. Application date migrates as a date field; Bullhorn does not preserve a full application timeline audit in the standard Candidate object, so stage-history records migrate separately.

ApplicantStack

Hiring Pipeline Stage

maps to

Bullhorn ATS & CRM

JobSubmission (with JobOrder pipeline)

1:1
Fully supported

ApplicantStack's configurable pipeline stages (Applied, Screening, Interview, Offer, Hired, Rejected) map to Bullhorn JobSubmission records tied to a JobOrder. Bullhorn's pipeline is controlled by the JobOrder's workflow, not a separate pipeline object. We export the full stage history per candidate and replay it as a sequence of JobSubmission status changes with timestamps, preserving the candidate's progression through the hiring process. Closed dates and disposition reasons map to the JobSubmission record.

ApplicantStack

Custom Questionnaire/Form Responses

maps to

Bullhorn ATS & CRM

Candidate Custom Fields or Custom Object

lossy
Fully supported

ApplicantStack Custom Questionnaires store field-value pairs tied to the candidate record. We map these to Bullhorn Candidate custom fields (up to the Bullhorn edition limit) or to a Bullhorn Custom Object if the questionnaire data is structured (multiple sections, repeated entries). The decision between custom fields and a Custom Object is made during scoping based on data complexity. Bullhorn Custom Objects require pre-provisioning via the Custom Object Setup Sheet; we create these before candidate import. Each field-value pair migrates with its original field label preserved as the Bullhorn field display name.

ApplicantStack

User Accounts (Recruiters/Hiring Managers/Admins)

maps to

Bullhorn ATS & CRM

BullhornUser

1:1
Mapping required

ApplicantStack user roles (Administrator, Recruiter, Hiring Manager) map to Bullhorn User records. We match users by email address. Bullhorn User records require provisioning by the customer's Bullhorn admin before migration; we provide a user reconciliation report listing every ApplicantStack user with their intended Bullhorn role assignment so the admin can provision matching accounts in advance. Any user without a Bullhorn account created before migration holds the corresponding records in a reconciliation queue.

ApplicantStack

Candidate Tags/Labels

maps to

Bullhorn ATS & CRM

Candidate Tags or Custom Multi-Select Field

lossy
Fully supported

ApplicantStack candidate tags migrate as Bullhorn tags on the Candidate record. Bullhorn supports free-text tagging; we preserve all original tags. If the customer requires structured tag-based segmentation (e.g., skill tags, certification tags), we map these to a multi-select custom field on Candidate to enable filtered search and reporting in Bullhorn. Tag consolidation (identical tags under different casing) happens during transformation.

ApplicantStack

Resume and Cover Letter Attachments

maps to

Bullhorn ATS & CRM

Candidate Document Attachments

1:1
Fully supported

Resume files, cover letters, and uploaded documents extract as binary blobs from ApplicantStack candidate records. We preserve original file names and attach them to the corresponding Bullhorn Candidate record via Bullhorn's document attachment API. File type (PDF, DOCX, RTF) is preserved. Bullhorn's attachment limit per record and file size limits are checked during transformation; files exceeding Bullhorn's limit are flagged for the customer's admin to handle manually.

ApplicantStack

New Hire Records (from ApplicantStack Onboard)

maps to

Bullhorn ATS & CRM

Candidate + Onboarding Workflow

1:1
Fully supported

If the customer uses ApplicantStack Onboard separately, I-9 data, tax form records, and onboarding document packets extract as structured records with separate document blobs. These migrate to Bullhorn Candidate records with onboarding documents attached. Bullhorn's Talent Platform (formerly Able) handles onboarding workflows post-migration; we document the onboarding data mapping for the customer's Bullhorn admin to configure Talent Platform packages after migration. I-9 and tax form data migrate as document attachments rather than structured form fields because Bullhorn does not have native I-9 storage in the core ATS.

ApplicantStack

Email Templates (content only)

maps to

Bullhorn ATS & CRM

Bullhorn Email Templates

1:1
Fully supported

ApplicantStack email template content migrates as Bullhorn Email Template records. Bullhorn uses a different variable/tag syntax than ApplicantStack (e.g., {Candidate.FirstName} versus ApplicantStack's equivalent). We map the template content and flag variable placeholders that require updating to Bullhorn's syntax post-migration. Automated send triggers and sequence logic do not migrate; these are documented in the automation inventory delivered to the customer's admin.

ApplicantStack

Job Board Distribution Settings

maps to

Bullhorn ATS & CRM

Not Migrated

1:1
Fully supported

ApplicantStack job board distribution settings (Indeed sponsored jobs, JobTarget, custom branded boards) are platform-specific configuration that do not carry forward to Bullhorn. The job posting content migrates as JobOrder records; the distribution settings are documented as a configuration checklist for the customer's Bullhorn admin to rebuild in Bullhorn's job distribution settings. This is not a data gap—it is a standard rebuild item.

ApplicantStack

Reports/Exports

maps to

Bullhorn ATS & CRM

Bullhorn Report Configuration Documentation

lossy
Mapping required

ApplicantStack's custom Reports exports are the source data for migration; they do not have a Bullhorn equivalent to migrate. We document every ApplicantStack Report the customer has configured (report name, fields, filters, schedule) as a configuration handoff so the Bullhorn admin can rebuild equivalent reports using Bullhorn's reporting module. Bullhorn Analytics (Canvas) is a separate add-on at $40-$60 per user per month.

ApplicantStack

Custom Properties (Employer-Defined Fields)

maps to

Bullhorn ATS & CRM

Custom Fields on Candidate/JobOrder

lossy
Mapping required

ApplicantStack custom properties added to Candidates or Jobs beyond the standard schema migrate as Bullhorn custom fields. We create the destination custom fields during the schema provisioning phase using Bullhorn's Admin Field Mappings tool. Bullhorn has edition-gated limits on custom fields per entity (Candidate, JobOrder, ClientCorporation, etc.); we confirm the Bullhorn edition during scoping to ensure the custom field count fits within the contracted limit.

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.

ApplicantStack logo

ApplicantStack gotchas

High

Trial limits visibility to first 100 candidates

High

Pricing is per-user including all roles

Medium

Export is report-based, not a live database query

Medium

Duplicate detection gaps create record overlap

Low

Onboarding module is a separate product SKU

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 Custom Objects require support-ticket provisioning before migration

    Bullhorn Custom Objects are not self-service. They must be requested via a Bullhorn Custom Object Setup Sheet submitted as a support ticket. Limits vary by edition: Front Office Growth and Enterprise allow 10 Custom Objects with 55 fields each; ATS Growth allows 2; standard ATS has none. If your migration scope includes ApplicantStack custom questionnaires or structured onboarding data, we confirm the Bullhorn edition during scoping, submit the Custom Object Setup Sheet during the schema phase, and wait for Bullhorn support to provision the objects before we begin record import. Lead times for Bullhorn Custom Object provisioning vary and can extend the timeline by one to two weeks.

  • ApplicantStack CSV exports require administrator pre-configuration

    ApplicantStack has no live API. All data extraction relies on the built-in Reports builder, which outputs flat CSV or Excel files. The report builder requires an administrator to select the correct fields and object relationships before export. We work with the customer's ApplicantStack admin to generate all necessary reports in advance, or we guide them through building a custom report template covering all migration objects. If the admin account has limited permissions or the Reports builder is missing required fields, we flag this during discovery and escalate before accepting the scope. This adds a pre-migration preparation step that is not required when migrating from API-first platforms.

  • Bullhorn field character limits vary by field type and require pre-mapping

    Bullhorn standard and custom fields have different character limits. Some fields cap at 100 characters while others allow thousands. ApplicantStack does not enforce equivalent field-length constraints, so migration can produce truncated data if the source field exceeds the Bullhorn destination limit. We analyze ApplicantStack field lengths during the profiling phase, identify fields at risk of truncation, and either map them to longer Bullhorn fields or flag truncation for customer review before migration. Custom field type selection in Bullhorn (text, textarea, drop-down, multi-select) is made during schema provisioning based on the source data profile.

  • Duplicate candidate records from ApplicantStack may require pre-migration cleanup

    ApplicantStack's duplicate candidate detection is documented as unreliable across multiple review platforms. Candidates who applied under different email addresses or slight name variations are not flagged. During migration, we run deduplication logic matching by email address, normalized phone number, and name strings. Candidates identified as likely duplicates are flagged for customer review before the final import. If the customer's ApplicantStack database has a high volume of undocumented duplicates, pre-migration cleanup by the customer's admin may be required to avoid multiplying duplicates in Bullhorn. We provide a duplicate candidate report during discovery.

  • Bullhorn Automation sequences do not migrate as code

    Bullhorn Automation (the add-on formerly known as Herefish) powers candidate nurturing sequences, automated outreach cadences, and trigger-based actions. These sequences do not migrate. We deliver a written inventory of any Bullhorn Automation workflows configured in the destination Bullhorn environment before migration begins, plus a rebuild handoff document that maps ApplicantStack's communication sequences to Bullhorn Automation equivalents if the customer licenses Bullhorn Automation post-migration. Email templates migrate as content but not as triggered sends.

Migration approach

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

  1. Discovery and edition confirmation

    We audit the source ApplicantStack account across modules (Recruit only, Onboard only, or bundled), active job count, total candidate records, custom questionnaire count, user roles, and pipeline stage configuration. We confirm the target Bullhorn edition (ATS Growth, Front Office Growth, or Enterprise) and verify Custom Object limits. We review the customer's Bullhorn quote and confirm add-ons (Bullhorn Automation, Bullhorn Analytics) in scope. The discovery output is a written migration scope, Bullhorn edition recommendation, and a Bullhorn Custom Object Setup Sheet queued for submission to Bullhorn Support if the scope requires custom objects.

  2. ApplicantStack report generation and export

    We work with the customer's ApplicantStack administrator to generate the necessary Reports exports. This includes a candidates report (all fields), a jobs report, a pipeline stages history report, a custom questionnaire responses report, a user accounts report, and an attachments export. If the Reports builder is missing required fields, we guide the admin through adding them. The CSV exports serve as the migration data source. We validate the export row counts against the discovery audit to confirm no records are silently omitted, particularly for accounts that have exceeded the candidate visibility cap noted in ApplicantStack's trial limitations.

  3. Schema provisioning in Bullhorn Sandbox

    We set up Bullhorn field mappings, custom fields, and Custom Objects (if applicable) in a Bullhorn Sandbox using the metadata API. This includes creating custom fields on Candidate and JobOrder, configuring Bullhorn's Candidate custom field settings (required vs. optional, hidden, allow multiple values), provisioning Custom Objects via the Custom Object Setup Sheet, and configuring JobOrder Record Types and pipeline workflows if multiple pipelines are in scope. Schema validation runs in Sandbox before production provisioning.

  4. Data profiling, deduplication, and transformation

    We parse ApplicantStack CSV exports, normalize flat-file structures into object records, and run deduplication logic against email, phone, and normalized name strings. Candidate duplicates are flagged in a report for customer review. We apply the Bullhorn field type mapping (text, textarea, drop-down, multi-select) to every source field, flag character-length risks, and resolve lookups (Candidate to JobOrder, User to Owner) before the API import phase. Custom questionnaire responses are reshaped into either custom fields or Custom Object records depending on the schema design.

  5. Sandbox migration and reconciliation

    We run a full migration into a Bullhorn Sandbox using the confirmed data volume. The customer's Bullhorn admin reconciles record counts (Candidates in, Jobs in, Pipeline history in), spot-checks 25-50 random records against the source exports, and reviews the deduplication report. Any mapping corrections, field-type adjustments, or Bullhorn schema changes happen in Sandbox before production migration begins. Bullhorn Custom Object provisioning is validated at this stage if Bullhorn Support has responded to the setup sheet.

  6. Production migration in dependency order

    We run production migration in record-dependency order: Bullhorn Users (manually provisioned and validated first), JobOrders (with ClientCorporation lookups resolved), Candidates (with dedupe applied, attachments loaded in parallel), JobSubmissions (with status history timestamps replayed), custom field data, Custom Object records (if applicable), and email templates (content only). Each phase emits a row-count reconciliation report. We use Bullhorn's REST API with rate-limit handling and exponential backoff for standard inserts; large-volume activity records use the Bulk API.

  7. Cutover, validation, and automation rebuild handoff

    We freeze ApplicantStack writes during cutover, run a final delta migration of records modified during the migration window, then enable Bullhorn as the system of record. We deliver the automation and sequence inventory document to the customer's Bullhorn admin for rebuild in Bullhorn Automation (if licensed) and the email template variable update guide for Bullhorn syntax. We support a one-week hypercare window for reconciliation issues. Bullhorn Automation rebuilds, Talent Platform onboarding workflow configuration, and Bullhorn Analytics dashboard setup are outside standard migration scope and are separate engagements.

Platform deep dives

Context on both ends of the pair

ApplicantStack logo

ApplicantStack

Source

Strengths

  • Flat-rate pricing from $29.99/month keeps costs predictable for small teams with consistent hiring volumes.
  • Tightly integrated with the SwipeClock timekeeping and workforce management ecosystem.
  • G2-rated best-in-class for onboarding features and candidate management dashboard usability among budget ATS tools.
  • Built-in job board publishing including Indeed sponsored listings directly from the ATS interface.
  • Custom-branded job boards retain company identity rather than redirecting candidates to third-party portals.

Weaknesses

  • Customer support responsiveness is a recurring complaint across multiple review platforms.
  • Form builder customization is limited compared to modern ATS platforms, restricting data capture flexibility.
  • Duplicate candidate detection is unreliable and requires manual cleanup during or after migration.
  • Email functionality has known issues with duplicate tracking and unaddressed support tickets.
  • Reporting requires manual report-building; there is no self-service analytics dashboard for trend analysis.
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 ApplicantStack and Bullhorn ATS & CRM.

B

Overall complexity

Standard migration

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

  • Object compatibility

    A

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

    ApplicantStack: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Migrations under 10,000 candidates, single pipeline, and no Custom Objects land in three to five weeks. Migrations with Bullhorn Custom Object provisioning (requires Bullhorn Support lead time), multi-pipeline structures, large resume attachment volumes, or deduplication requiring customer review extend to seven to eleven weeks. The Bullhorn edition confirmation and Custom Object Setup Sheet submission happen during the discovery phase and can add one to two weeks if Bullhorn Support is slow to respond.

Adjacent paths

Related migrations to explore

Ready when you are

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