HRMS migration

Migrate from Jobtoolz to Bullhorn ATS & CRM

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

Jobtoolz logo

Jobtoolz

Source

Bullhorn ATS & CRM

Destination

Bullhorn ATS & CRM logo

Compatibility

67%

8 of 12

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

Complexity

BStandard

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Jobtoolz does not expose its core ATS objects (Candidates, Applications, Vacancies) through a public REST API — only employer branding content is API-accessible. This fundamentally shapes the migration approach: we work from the built-in CSV export function on the candidate list view, coordinate chunked exports by date range or pipeline stage for large candidate pools, and cross-reference record counts against the in-app dashboard before mapping begins. Vacancy-to-JobOrder and Application-to-JobSubmission relationships resolve at import time in Bullhorn. Custom pipeline stages from Jobtoolz are tenant-specific and require an explicit stage mapping table approved by the customer before data lands. We do not migrate Bullhorn automations, saved searches, or employer branding templates as code — these are documented for the customer's admin to rebuild. Bullhorn's Custom Import tool supports English characters only, which we enforce on all transformed CSV payloads.

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

Jobtoolz logo

Jobtoolz

What's pushing teams away

  • The platform is described by at least one reviewer as not yet fully up to speed with feature depth available in competing ATS platforms.
  • Role templates and customization options are limited compared to enterprise ATS solutions, restricting teams with highly specialized workflows.
  • With only around 3,000 users across 5 countries, the partner and integration ecosystem is narrower than global ATS players.
  • Some customers report the ATS portion of the platform lags behind the employer branding tools in feature maturity.
  • As a Belgian-founded product, documentation and support are stronger during European business hours, creating response delays for US and APAC teams.

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

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

Jobtoolz

Candidate

maps to

Bullhorn ATS & CRM

Candidate

1:1
Fully supported

Jobtoolz Candidate records export to CSV via the built-in list view export function. We map standard fields (name, email, phone, location, current_title, current_company) to Bullhorn Candidate entity fields. Custom candidate fields in Jobtoolz map to Bullhorn custom fields on the Candidate entity, with type mapping applied (text to text, date to date, picklist to picklist). Bullhorn requires the migration user to have Candidate-level access; any field that exceeds Bullhorn's character limits is truncated and flagged in the reconciliation report.

Jobtoolz

Candidate (for sourcing/leads)

maps to

Bullhorn ATS & CRM

Lead

1:1
Fully supported

Candidates that originated from job board applications or cold sourcing in Jobtoolz may be better represented as Bullhorn Leads rather than Candidates if the organization uses Bullhorn's Lead-to-Candidate conversion workflow. We preserve the original source (job_board, referral, linkedin, direct) in Bullhorn's LeadSource field and recommend the split during scoping based on the customer's intake process. If all candidates are sourced applicants, Lead mapping is skipped and all records land as Bullhorn Candidates.

Jobtoolz

Application

maps to

Bullhorn ATS & CRM

JobSubmission

1:1
Fully supported

Jobtoolz Application records link a Candidate to a Vacancy and store stage history and submission date. We map Application status to the Bullhorn JobSubmission status (New, Forwarded, Interview, Offer, Placement, Rejected), with the original Jobtoolz stage name preserved in a custom field jtz_original_stage__c. JobSubmission requires a parent JobOrder (from the Vacancy mapping) and a parent Candidate, so Vacancy records must import before Applications to satisfy the foreign key.

Jobtoolz

Vacancy

maps to

Bullhorn ATS & CRM

JobOrder

1:1
Fully supported

Jobtoolz Vacancy objects map to Bullhorn JobOrder. Standard fields (title, department, location, employment_type, description, salary_min, salary_max) map to Bullhorn JobOrder equivalents. The Vacancy status (active, paused, closed, draft) maps to JobOrder status with Bullhorn's published status values (Active, On Hold, Cancelled, Closed). Custom vacancy fields in Jobtoolz map to Bullhorn custom fields on JobOrder, configured during the Bullhorn schema setup phase.

Jobtoolz

Pipeline Stage

maps to

Bullhorn ATS & CRM

Custom Field or Stage Configuration

lossy
Fully supported

Jobtoolz allows fully custom stage names and counts per vacancy or globally, with no enforced schema. We capture the complete stage sequence during scoping, document it in a stage mapping table, and reconstruct it in Bullhorn as either a custom Candidate status picklist (for global stages) or as stage values on the JobSubmission workflow (for vacancy-specific stages). Bullhorn's standard JobSubmission workflow has fixed status values; custom stages that exceed Bullhorn's allowed count are collapsed into the nearest equivalent and flagged in the mapping documentation for customer approval.

Jobtoolz

Custom Candidate Field

maps to

Bullhorn ATS & CRM

Custom Field

lossy
Fully supported

Jobtoolz supports custom fields on candidate records. We export the full custom field schema (field name, type, values) during discovery and recreate equivalent custom fields on Bullhorn Candidate using Admin > Field Mappings. Bullhorn imposes a finite limit on standard custom fields per entity; if the customer's custom field count approaches this limit, we recommend migrating to Bullhorn Custom Objects (2 on ATS Growth, 10 on Front Office/Enterprise) before field-heavy migrations proceed.

Jobtoolz

Document and Attachment

maps to

Bullhorn ATS & CRM

ContentDocument

1:1
Fully supported

Resume files, cover letters, and attachments exported from Jobtoolz via the authenticated session are re-attached to the corresponding Bullhorn Candidate record via ContentDocument and ContentDocumentLink. We preserve the original file name and MIME type. Bullhorn's inline resume display renders common formats (PDF, DOC, DOCX) directly in the candidate slideout. Attachments are linked at the Candidate level; if a document is associated with both a Candidate and a Vacancy in Jobtoolz, it is attached to the Candidate record with the JobSubmission relationship noted in the file description field.

Jobtoolz

User / Team Member

maps to

Bullhorn ATS & CRM

User

1:1
Fully supported

Jobtoolz team member accounts map to Bullhorn User records. We match by email address. Any Jobtoolz user without a corresponding Bullhorn User goes into a reconciliation queue for the customer's Bullhorn admin to provision. Role and permission structures differ significantly — Jobtoolz's role model maps to Bullhorn's permission set and profile model, and we assign default recruiter permissions with a documented list of any accounts requiring elevated Bullhorn access (admin, billing, reporting) for manual review.

Jobtoolz

Employer Branding Content

maps to

Bullhorn ATS & CRM

JobOrder Description and Career Portal

lossy
Fully supported

Jobtoolz's careers site content and employer branding assets are accessed via the Jobtoolz Content API (the only fully authenticated API endpoint available). We export careers page text, job ad templates, and company branding as structured content. Bullhorn's career portal and JobOrder description fields are the destination for this content. Full careers site migration (URL redirects, branded templates) is out of scope for the ATS migration; we deliver the content package and a separate careers site migration handoff document.

Jobtoolz

Vacancy Department

maps to

Bullhorn ATS & CRM

JobOrder Business Sector

1:1
Fully supported

Jobtoolz department assignments on Vacancies map to Bullhorn JobOrder BusinessSector field or a custom picklist field depending on the department count. Departments that do not map to Bullhorn standard values become custom picklist entries created during the schema setup phase.

Jobtoolz

Application Source

maps to

Bullhorn ATS & CRM

LeadSource or Custom Source Field

1:1
Fully supported

Jobtoolz tracks how each Application entered the system (job board, careers site, referral, direct). We map the source to Bullhorn's standard LeadSource picklist values where a direct equivalent exists. Non-standard source values in Jobtoolz migrate to a custom text or picklist field on JobSubmission for reporting continuity.

Jobtoolz

Vacancy Location

maps to

Bullhorn ATS & CRM

JobOrder City / State / Country

lossy
Fully supported

Jobtoolz stores vacancy location as free text or structured fields depending on configuration. We parse the location into Bullhorn's JobOrder address components (address city, address state, address country) for each JobOrder. Locations that cannot be cleanly parsed become free-text JobOrder City entries with a flag for manual review. Bullhorn's geo-mapping and map-based search features rely on structured address fields, so accurate parsing directly affects these feature functions.

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.

Jobtoolz logo

Jobtoolz gotchas

High

No bulk ATS data API forces manual CSV exports for migration scoping

Medium

Custom pipeline stages lack a standard schema for destination mapping

Low

HireHive acquisition may introduce schema divergence in future

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 bulk ATS API forces reliance on manual CSV exports

    Jobtoolz exposes only employer branding content via its public REST API. Candidates, Applications, and Vacancies — the core migration objects — must be exported manually from the Jobtoolz UI using the built-in CSV export function on the candidate list view. For candidate pools exceeding 2,000 records, we coordinate chunked exports by date range or pipeline stage with the customer, and verify export completeness by cross-referencing record counts against the in-app dashboard before mapping begins. This adds a manual step that is not required in migrations from platforms with accessible bulk APIs, and the customer's team must be available to perform or authorize the exports.

  • Bullhorn Custom Import supports English characters only

    Bullhorn's Custom Import tool (the primary CSV ingestion path for Candidate, Contact, and Lead records) explicitly supports only English characters. All CSV payloads generated from Jobtoolz exports must be ASCII-cleaned before import. This is particularly relevant for Jobtoolz customers with European hiring operations where candidate names, company names, or notes may contain accented characters (é, ü, ñ, etc.) or non-Latin scripts. We apply a character normalization step during the transform phase that preserves the original data in a separate field while populating the Bullhorn-compatible version.

  • Custom Objects have tier-based limits that may constrain migration scope

    Bullhorn ATS Growth edition does not support Custom Objects. Bullhorn ATS Growth supports 2 Custom Objects per entity; Bullhorn Front Office Growth and Enterprise support up to 10. Jobtoolz customers with multiple custom candidate fields, multiple vacancy field sets, or specialized application data models may exceed Bullhorn's default field limits per entity. We audit the Jobtoolz custom field count during discovery and confirm the customer's Bullhorn edition provides sufficient capacity before migration scope is finalized. If the customer's Bullhorn edition is lower than required, we flag this as an edition upgrade recommendation rather than a data-loss risk.

  • Vacancy-to-JobOrder parent resolution blocks application import

    Bullhorn JobSubmission records require a valid JobOrder (Job) reference and a Candidate reference at insert time. The Jobtoolz Application-to-Vacancy relationship must resolve to a Bullhorn JobSubmission-to-JobOrder relationship during the import phase. If a Jobtoolz Vacancy cannot be mapped (e.g., closed vacancies that are not migrated), any Applications attached to that Vacancy are orphaned. We flag orphaned applications in the pre-import report and recommend either migrating the parent Vacancy as a closed JobOrder or excluding the orphaned applications from the migration scope with a record of what was excluded.

  • Jobtoolz acquisition of HireHive may affect future schema stability

    Jobtoolz acquired HireHive in mid-2024. If the two platforms are merged or if customer data is migrated between them as part of the acquisition, the data schema may change without advance notice. We monitor the Jobtoolz changelog and documentation for schema updates after significant product announcements and re-validate field coverage before any active migration begins. Customers with long migration timelines (6+ weeks from scoping to cutover) should re-confirm schema consistency at the start of the production migration phase.

Migration approach

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

  1. Discovery and CSV export coordination

    We audit the Jobtoolz portal with the customer present to capture candidate record counts by date range and pipeline stage, identify all active Vacancies and their custom field sets, enumerate custom candidate fields, and confirm the number of team member accounts. Because Jobtoolz has no bulk ATS API, we coordinate the first CSV export with the customer's Jobtoolz admin on a discovery call, verify the export matches the in-app candidate count, and agree on a chunking strategy (by date range or stage) for large candidate pools before the full export plan is finalized. We also confirm the customer's Bullhorn edition, available API access, and existing custom field capacity.

  2. Schema design and stage mapping documentation

    We design the Bullhorn destination schema based on the discovered Jobtoolz field inventory. This includes creating custom fields on Bullhorn Candidate, JobOrder, and JobSubmission entities (within the edition's limits), building the pipeline stage mapping table for customer approval, and documenting any Vacancy fields that exceed Bullhorn's allowed field count per entity. The stage mapping table is the critical deliverable before the migration runs: it explicitly documents which Jobtoolz stages collapse into which Bullhorn stages and why, so the customer can approve or adjust before data lands.

  3. Sandbox migration and reconciliation

    We run a full migration into a Bullhorn Sandbox (Full Copy or Partial Copy) using the actual exported data volume. The customer's staffing operations lead reconciles record counts (Candidates in, JobOrders in, JobSubmissions in), spot-checks 25-50 records against the Jobtoolz source, and reviews the stage mapping output. Any field mismatches, missing values, or stage collapses identified in sandbox are corrected in the transformation scripts before production migration begins. No production data moves until sandbox sign-off is received.

  4. Full CSV export and transform

    We coordinate the complete CSV export from Jobtoolz in production, applying the chunking strategy agreed in discovery. Each export file is validated for record count, character encoding (ASCII cleaning for Bullhorn compatibility), and required field presence. We transform the data in the staging environment: Vacancy fields map to JobOrder, Application records attach to their parent Vacancy by Jobtoolz vacancy ID, and Candidate records link to JobSubmissions via the Application mapping. Custom field values are type-checked against Bullhorn field types and any format mismatches are flagged in a pre-import report.

  5. Production migration in dependency order

    Production migration runs in record-dependency order: JobOrders (from Vacancies) import first because JobSubmissions require a parent Job reference; Candidates import second; JobSubmissions import third with Candidate ID and JobOrder ID resolved; Documents and attachments import last and are linked via ContentDocumentLink to the parent Candidate record. Each phase emits a row-count reconciliation report showing records inserted, updated, skipped, and rejected. Bullhorn's import job throttling is respected with batch sizes that avoid timeout errors on large record sets.

  6. Cutover, validation, and automation handoff

    We freeze Jobtoolz writes during cutover, run a final delta migration of any records added or modified during the migration window, then enable Bullhorn as the system of record. We deliver the stage mapping documentation, the automation and workflow inventory (for the customer's Bullhorn admin to rebuild in Bullhorn Automation), and a CSV of any records that were excluded with reasons. We support a five-business-day hypercare window to resolve reconciliation issues raised by the customer's recruiting team. We do not rebuild Jobtoolz workflows or automations inside the migration scope; those are documented separately for the customer's Bullhorn admin.

Platform deep dives

Context on both ends of the pair

Jobtoolz logo

Jobtoolz

Source

Strengths

  • Single flat-rate pricing model means no feature gating between tiers — all users get the full platform.
  • Built-in careers site builder and employer branding tools reduce the need for a separate CMS or job board integration.
  • CSV export of candidate lists is available at any time without requiring API access or developer involvement.
  • Positive customer reviews cite ease of use, intuitive interface, and smooth candidate processing for government and SME customers.
  • 14-day free trial with no credit card required lowers the evaluation barrier for new teams.

Weaknesses

  • The public API exposes only employer-branding content endpoints, not core ATS objects like Candidates or Vacancies — limiting automated data extraction.
  • Limited enterprise feature depth compared to ATS platforms like Workable, Manatal, or BambooHR that serve larger or more complex hiring orgs.
  • No published bulk API or documented rate limits for the ATS data layer, forcing reliance on manual CSV exports for migration scoping.
  • Relatively small user base (3,000 users) and geographic concentration in Europe means fewer community resources, third-party integrations, and support availability outside EU business hours.
  • Single pricing tier means no lower-cost entry point for very small teams; the full platform cost may be disproportionate for organizations with minimal hiring volume.
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 Jobtoolz and Bullhorn ATS & CRM.

B

Overall complexity

Standard migration

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

  • Object compatibility

    A

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

    Jobtoolz: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Jobtoolz to Bullhorn migrations land between two and four weeks for small operations with under 5,000 candidates and a straightforward pipeline stage structure. Migrations with large candidate pools (10,000+ records), multiple custom fields, or a complex Vacancy-to-JobSubmission relationship structure move to six to ten weeks because of the multi-phase CSV export coordination, parent-record resolution on applications, and Bullhorn schema configuration. The manual CSV export step from Jobtoolz (required due to the lack of a bulk ATS API) adds time that would not be present in migrations from platforms with accessible REST endpoints.

Adjacent paths

Related migrations to explore

Ready when you are

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