Skip to main content

Agency Migration Guide

Bullhorn to HubSpot Migration


What actually transfers, what quietly does not, and what has to be rebuilt by hand.

We mapped Bullhorn against HubSpot feature by feature: 33 features, 10 synced objects, 7 documented traps and 40 items that have to be rebuilt. The whole map is on this page, ungated.

The PDF is the same reference, formatted to send to a client.

Get The Guide And The Calculator

The full Bullhorn to HubSpot reference as a branded PDF you can send straight to a client, plus the Excel calculator we scope these migrations with: every one of the 33 features as a row, enter your counts, get hours.

Three files: the guide as a PDF, the same guide unbranded in Markdown for your AI tool, and the full Excel effort calculator.

PDF documentPDFMarkdown documentMDExcel workbookXLS
Bullhorn logoHubSpot logo

Bullhorn to HubSpot is a very high migration, typically 8-12 weeks. Of 33 features we mapped, 11 carry across as they are and 17 land with something lost. The work is not moving records: it is the 40 items nothing moves for you.

Migration Scorecard

Complexity: Very High
Migration complexity
Very high
Typical timeline
8-12 weeks
Recommended method
Api
Native sync
Data sync, two way
Smart transfer
Not supported
HubSpot subscription
HubSpot Free (basic sync); Data Hub Starter+ for custom field mappings

Feature parity across 33 capabilities

1133%
1752%
515%
  • Maps directly: 11 (33%)
  • Maps partially: 17 (52%)
  • No equivalent: 5 (15%)

10

Objects synced natively

7

Limitations and traps

40

Manual rebuild items

3

Source editions covered

Where this comes from: Our own research corpus, verified 2026-07-31, behind every number on this page.

The Ten Objects That Sync Natively

What the connector moves for you, and which way each one flows.

Client Contact

Two wayTwo way

Becomes Contact

Bullhorn distinguishes between Client Contacts (business contacts at client companies) and Candidates (job seekers). Rule-based logic determines which HubSpot contacts sync as Client Contacts vs. Candidates, using list memberships, form submissions, or custom properties.

Client Corporation

Two wayTwo way

Becomes Company

Deduplication logic checks for existing records using company domain, email, or phone number identifiers. Bullhorn needs the Company created before deals can be created and associated.

Job Order

Two wayTwo way

Becomes Deal

Deal sync supported. Automated Job Order creation when HubSpot deals reach specified stages. Job Order status (Accepting Submissions, Interviewing, Filled) syncs back to HubSpot.

Appointments

Two wayTwo way

Becomes Meetings

Listed as a shared object on the app's HubSpot marketplace listing (read 2026-07-31). HubSpot publishes 11 default field mappings for it.

Candidates

Two wayTwo way

Becomes Contacts

Listed as a shared object on the app's HubSpot marketplace listing (read 2026-07-31). HubSpot publishes 16 default field mappings for it.

Leads

Two wayTwo way

Becomes Contacts

Listed as a shared object on the app's HubSpot marketplace listing (read 2026-07-31). HubSpot publishes 15 default field mappings for it.

Notes

Into HubSpotInto HubSpot

Becomes Notes

Listed as a shared object on the app's HubSpot marketplace listing (read 2026-07-31). HubSpot publishes 8 default field mappings for it.

Tasks

Two wayTwo way

Becomes Tasks

Listed as a shared object on the app's HubSpot marketplace listing (read 2026-07-31). HubSpot publishes 12 default field mappings for it.

Jobs

Two wayTwo way

Becomes Custom Object

Listed as a shared object on the app's HubSpot marketplace listing (read 2026-07-31). Custom object sync, no default field mappings.

Placements

Two wayTwo way

Becomes Custom Object

Listed as a shared object on the app's HubSpot marketplace listing (read 2026-07-31). Custom object sync, no default field mappings.

Seven Things the Sync Does Not Tell You

Each one is documented, and each one has ended a migration in a bad week.

Placement Data Is Not Available as a Sync Object

Placement records (the core outcome in recruiting: representing a successful candidate placement) are not available as a synced object in the native Bullhorn Data Sync app. Properties like End Date, Original End Date, Assignment Status, Assignment Type, Employee Type, and Shift are not accessible.

Workaround: Use a custom API integration to sync placement data. Some third-party integration providers (IntegrateIQ, MpireSolutions) offer placement-to-deal mapping with revenue and margin details. Store placement data in custom HubSpot properties on deal records.

Candidate Records Require Special Handling

Bullhorn Candidates (job seekers) are a distinct record type from Client Contacts. The native Data Sync treats all HubSpot contacts as potential Client Contacts. Syncing candidates requires rule-based logic to distinguish them from business contacts.

Workaround: Use list memberships, form submissions, or custom properties to differentiate candidates from client contacts. Custom integration solutions can map Candidates to HubSpot contacts with specific lifecycle stages or custom properties.

Notes and Tasks May Not Sync If Other Object Syncs Fail

Activity syncing (notes, tasks, meetings) has dependencies on successful sync of parent objects. If contact or company syncs fail, associated notes and tasks will also fail to sync.

Workaround: Monitor sync health regularly. Resolve parent object sync errors first. Some activity types beyond notes, tasks, and meetings are not supported at all.

Submission/interview Tracking Does Not Sync

Bullhorn's detailed submission workflow (candidate submissions to job orders, interview scheduling, submission statuses) has no equivalent sync mapping in the HubSpot Data Sync.

Workaround: Track submissions in Bullhorn and sync summary status to HubSpot via custom properties. For full migration, build custom pipeline stages in HubSpot that mirror Bullhorn's submission workflow.

Tearsheets (candidate Lists) Do Not Sync

Bullhorn Tearsheets are organized candidate pools (e.g., 'Available Nurses', 'Top Developers') used for quick access to talent. These have no sync mapping.

Workaround: Recreate tearsheets as HubSpot static lists or saved views based on contact properties.

Order of Operations Dependency for Company-Deal Creation

Bullhorn requires the Company (Client Corporation) to exist before a Deal (Job Order) can be created and associated. If the company sync hasn't completed, deal creation will fail.

Workaround: Ensure company sync completes successfully before enabling deal sync. Monitor sync logs for association errors.

Custom Staffing-specific Data Requires Explicit Mapping

Recruiting-specific data like skills, certifications, industries, required experience, and specializations require custom field mapping to HubSpot properties.

Workaround: Create custom HubSpot properties for staffing-specific fields. Use custom field mapping (requires Data Hub Starter+) to map Bullhorn custom fields.

Five Bullhorn Features HubSpot Cannot Replace

Not a workaround away. If a client depends on one of these, it belongs in the conversation before the contract.

Resume/CV Parsing

HubSpot has no resume parsing capability. Would require third-party parsing service integration.

VMS Integration

HubSpot has no VMS integration capabilities. This is a staffing industry-specific requirement.

Background Screening Integration

HubSpot has no background screening integrations. Would require custom integration via API or Zapier.

Onboarding

HubSpot has no employee onboarding capabilities. Requires dedicated onboarding platform (BambooHR, WorkBright, etc.).

Back Office (Payroll & Billing)

HubSpot has no payroll, timesheet, or staffing billing capabilities. Requires dedicated back office system.

The 40 Items That Get Rebuilt by Hand

This is the list that separates a quote that holds from one that does not.

Data And Objects

Placement Records

The record of a candidate placed into a job order, carrying revenue, margin, dates and assignment detail.

HubSpot: A custom object, or deals

This is the revenue record of a staffing business. Custom objects are plan-dependent, so confirm what the client is buying before designing this, and never let placements collapse into notes.

Candidate Records

Candidates with their resumes, skills, certifications and work history.

HubSpot: Contacts, or a custom object

Candidates and client contacts are different populations that both look like contacts in HubSpot. Decide how to keep them apart before the import, because mixing them breaks every list and every send.

Submission Records

A candidate put forward to a job order, with its status trail.

HubSpot: A custom object, or a deal pipeline

Submissions are a many-to-many join between candidates and job orders. HubSpot models this awkwardly, so it needs designing rather than mapping.

Tearsheets

Curated candidate pools recruiters build for a role or client.

HubSpot: Static and active lists

Hand-built tearsheets become static lists. Search-based ones become active lists, and only if the underlying fields imported cleanly.

Interview Schedules and Feedback

Scheduled interviews and the notes recorded afterwards.

HubSpot: Meetings and notes on the timeline

Structured feedback flattens into notes unless it becomes properties. Decide which fields are reported on and keep those structured.

Timesheet and Billing Data

Hours worked on an assignment and what they bill at.

HubSpot: No equivalent, kept in the staffing or payroll system

HubSpot does not do time and billing. This stays where it is, which makes the migration a coexistence project rather than a replacement.

File Attachments

Resumes, contracts and onboarding documents on records.

HubSpot: Attachments on records

Resume volume is large and the files matter, so this is a substantial API pass. Check the storage limits on the plan being bought before promising to move all of them.

Certifications, Licences and Credentials

Candidate credentials and their expiry dates.

HubSpot: Custom properties, or a custom object

One candidate holds many credentials, each with its own expiry, which properties model badly. If compliance depends on this, it needs a custom object or it stays in Bullhorn.

Referral and Recruiter Attribution

Where a candidate came from and which recruiter owns the relationship.

HubSpot: Source and owner properties

This drives commission, so it has to be right. Reconcile against a Bullhorn report after import rather than trusting the row count.

Automation

Hiring Workflow Automations

Automation driving submission status from first contact to placement.

HubSpot: Workflows over the submission pipeline

Depends entirely on how submissions were modelled above. Sequence this after that decision rather than alongside it.

Automated Candidate Status Updates

Rules moving a candidate between statuses.

HubSpot: Workflows

Status must be a real property with a controlled value list, or none of these rules can be rebuilt.

Job Order Distribution and Posting

Automation pushing a job order out to boards and to recruiters.

HubSpot: Workflows, plus a job board integration

The posting half depends on a job board integration existing at all, which is the hardest item in this migration. Confirm before the contract.

Onboarding Workflow Checklists

The steps between offer accepted and first day.

HubSpot: Workflow task sequences

Rebuilt as tasks with delays. Due-date offsets between steps are the detail that gets lost.

Compliance Tracking Automations

Alerts when a credential is about to expire.

HubSpot: Date-based workflow enrolment

Only works if credentials are structured with real expiry dates. If they landed as notes, this cannot be rebuilt, and compliance alerting is not something to discover missing later.

Communication Templates

Email templates for candidate and client contact.

HubSpot: Email templates and snippets

Rebuilt by hand, with token names changing.

Reporting

Recruiter Performance Reports

Placements, submissions and fill rates by recruiter.

HubSpot: Custom reports

Depends on placements and submissions being real objects. If they collapsed into properties, this reporting cannot be rebuilt faithfully.

Job Order Pipeline and Fill Rate Analytics

How job orders progress and how many get filled.

HubSpot: Pipeline reports

Fill rate needs both the order and its submissions, so it follows the data model decisions above.

Revenue and Margin Reports

Revenue and margin by client, recruiter or division.

HubSpot: Custom reports over the placement object

Margin needs both bill rate and pay rate to survive the import. Confirm both landed before promising this reporting.

Time-to-fill and Time-to-submit Metrics

Speed metrics across the recruiting process.

HubSpot: Custom reports using date properties

Needs the milestone dates as real date properties. Without them these cannot be calculated at all.

Candidate Source Attribution

Which channel produced which candidates.

HubSpot: Source reporting

Depends on the attribution mapping above landing cleanly.

Client Engagement and Activity Reports

Reporting on client-side contact and activity.

HubSpot: Activity reports

Owner must resolve to a real HubSpot user or everything attributes to nobody.

Sales And Marketing Config

Job Order Pipeline Stages

The stages a job order moves through and their status definitions.

HubSpot: Deal pipelines and stages

A staffing business usually needs two pipelines, one for winning the client and one for filling the role. Design both before importing anything.

Placement Revenue and Commission Structures

How placement revenue is split and commission calculated.

HubSpot: Properties on the placement object, with calculation elsewhere

HubSpot will hold the numbers but will not calculate commission. Confirm where that calculation lives after the migration.

Client Rate Cards and Billing Rules

Agreed rates per client and the rules around them.

HubSpot: Properties, or products and line items

Rate cards vary per client and per role, which HubSpot's product library models poorly. Often this stays in the staffing system.

Candidate Search and Match Configuration

Bullhorn's search, boolean matching and ranking against a job order.

HubSpot: Lists and search, with no matching engine

HubSpot has no candidate matching. This is the capability recruiters use every day, and losing it should be stated before the contract, not discovered at training.

Custom Fields Across Entities

Custom fields on contacts, candidates, job orders and placements.

HubSpot: Custom properties

Bullhorn has more entity types than HubSpot, so fields have to be sorted by which object they end up on. Map type as well as name.

Recruiting Email Templates

Standard candidate and client communications.

HubSpot: Email templates and snippets

Rebuilt by hand, with token names changing.

Users And Permissions

Recruiter and Sales Accounts

Logins for the recruiting and sales sides of the business.

HubSpot: Users and permission sets

Created before the import so ownership resolves on the way in.

Team, Division and Office Structure

How the business is organised across desks and branches.

HubSpot: Teams, including parent teams

Build as a hierarchy if rollup reporting is expected. Flat teams cannot roll up later without rework.

Desk and Branch Reporting Hierarchies

The reporting structure used for performance rollup.

HubSpot: Parent and child teams

Follows directly from the team structure. Agree it with whoever reads the numbers before building it.

Record Ownership and Visibility Rules

Who owns a record and who else can see it.

HubSpot: Record access settings

Staffing firms often split candidate ownership from client ownership. Confirm both before reproducing old rules.

Candidate Data Access Restrictions

Limits on who can see candidate personal data.

HubSpot: Permission sets and record access settings

This is personal data with a legal basis attached. Confirm the required control exists before promising it rather than after.

Integrations

Job Board Integrations

Posting to and receiving applicants from Indeed, LinkedIn, ZipRecruiter and CareerBuilder.

HubSpot: No direct equivalent, needs middleware or the boards kept separate

The single hardest part of a Bullhorn migration. These integrations are the reason an ATS exists, and HubSpot has nothing comparable. Confirm the plan for every board before the contract.

VMS and MSP Integrations

Fieldglass, Beeline and IQNavigator feeding requisitions from large corporate buyers.

HubSpot: No equivalent

Where a client wins work through a VMS, this cannot move. That usually settles the question of whether Bullhorn is being replaced or supplemented.

Background Check Integrations

Sterling, Checkr and similar screening providers.

HubSpot: No direct equivalent

Screening is triggered from the ATS and returns a compliance result. Keeping it where it is is usually the right answer.

Onboarding Platforms

Essium, Able and Hireology handling the paperwork after an offer.

HubSpot: No direct equivalent, connected separately

These integrate with the ATS rather than the CRM. Leave them in place and connect loosely.

Payroll and Billing Integrations

TempWorks, Avionte and similar handling pay and invoice.

HubSpot: No equivalent

Follows the timesheet decision. Pay and bill stays outside HubSpot.

Phone and VOIP Integrations

RingCentral, CloudCall and similar behind recruiter calling.

HubSpot: HubSpot calling or a marketplace provider

Confirm the provider has a HubSpot integration before the contract. Recruiters live on the phone, so a gap here is felt immediately.

Texting Platforms

SMS tools used for candidate contact.

HubSpot: A marketplace SMS app

Check the app logs texts to the record timeline, or activity reporting on candidate contact disappears.

Career Page Integration

The public jobs site fed from the ATS.

HubSpot: No equivalent, kept with the ATS or rebuilt

A career page is generated from live job orders. If job orders move to HubSpot, the site needs a new feed, which is a web project rather than a migration task.

The Sequence

Sync First, Then Migrate

Order is the content here. These are a dependency chain, and running them out of order is a documented way these migrations fail.

  1. 1

    Audit Bullhorn Data

    inventory client contacts, candidates, client corporations, job orders, placements, submissions, tearsheets, and custom fields

  2. 2

    Define the Migration Scope

    determine if this is a full Bullhorn replacement or if Bullhorn stays for ATS while HubSpot handles marketing/sales (common pattern for staffing agencies)

  3. 3

    Set up HubSpot Data Sync for Contacts, Companies, and Deals as a Foundation

    Set up HubSpot Data Sync for contacts, companies, and deals as a foundation

  4. 4

    Configure Rule-based Logic to Properly Categorize HubSpot Contacts as Client Contacts Vs. Candidates in Bullhorn

    Configure rule-based logic to properly categorize HubSpot contacts as Client Contacts vs. Candidates in Bullhorn

  5. 5

    Map Bullhorn Job Order Statuses to HubSpot Deal Pipeline Stages

    Map Bullhorn Job Order statuses to HubSpot deal pipeline stages

  6. 6

    Build Custom API Integration for Placement Data (revenue, Margin, Dates) to Sync Back to HubSpot Deal Records

    Build custom API integration for placement data (revenue, margin, dates) to sync back to HubSpot deal records

  7. 7

    Export and Import Candidate Data With Skills, Certifications, and Work History as HubSpot Contact Properties

    Export and import candidate data with skills, certifications, and work history as HubSpot contact properties

  8. 8

    Recreate Tearsheets as HubSpot Static Lists or Saved Views

    Recreate tearsheets as HubSpot static lists or saved views

  9. 9

    Rebuild Recruiter Performance Reports and Pipeline Analytics in HubSpot

    Rebuild recruiter performance reports and pipeline analytics in HubSpot

  10. 10

    Migrate File Attachments (resumes, Contracts) to HubSpot or a Connected Document Management System

    Migrate file attachments (resumes, contracts) to HubSpot or a connected document management system

  11. 11

    Set up Replacement Integrations for Job Boards, Background Checks, and Other Staffing Tools

    Set up replacement integrations for job boards, background checks, and other staffing tools

  12. 12

    Rebuild Hiring Workflow Automations in HubSpot

    Rebuild hiring workflow automations in HubSpot

Typically 8-12 weeks end to end, depending on how much of the source configuration is actually in use.

Effort Estimator

How Big Is This Migration?

A handful of questions, no email required. The ranges come from the research above: every feature we mapped carries an effort figure, and this adds up the ones that apply to you.

Custom fields and properties across all records

Everything beyond the out-of-the-box fields, added up across contacts, companies, deals and anything custom.

Automations, workflows and rules

Anything that fires on its own: workflows, sequences, assignment and validation rules, approvals.

Custom reports and dashboards

Only the ones the business actually uses. Reports nobody opens do not need rebuilding.

Marketing assets to rebuild

Email templates, forms, landing pages, lists and segments taken together.

Custom objects or extra pipelines

Record types beyond contacts, companies, deals and tickets.

Third-party integrations wired into the current system

Anything connected by API, webhook or installed package that has to keep working afterwards.

Roughly how many contact records

This affects the sync approach and the reconciliation effort, not the per-record work. The connector moves records; people do not.

Estimated Effort

Answer a couple of questions and an hours range appears here.

Built from our research on 33 Bullhorn features. It is a range, not a quote.

A planning range, not a quote. It is delivery effort only, with no project management line and no agency markup, so add your own. What moves it most in practice is data quality.

What Goes Wrong Most Often

The failures that show up again and again, in roughly the order they bite.

Many Staffing Agencies Keep Bullhorn for ATS/recruiting and Use HubSpot for Marketing and Business Development

full replacement is rare and complex

Placement Data (the Most Important Recruiting Metric) Is NOT Available in the Native Sync

custom API work is mandatory for placement tracking

Bullhorn's Candidate Record Type Has No Direct HubSpot Equivalent

candidates become HubSpot contacts but lose the ATS-specific structure

Submission Tracking Workflow (candidate-to-job Pipeline) Requires Significant HubSpot Deal Pipeline Customization to Replicate

Submission tracking workflow (candidate-to-job pipeline) requires significant HubSpot deal pipeline customization to replicate

Company-to-Deal Association Dependency Means Companies MUST Sync Before Deals

Company-to-Deal association dependency means companies MUST sync before deals

Note/Task Sync Has Cascading Failure Risk

if parent record sync fails, activities fail too

Legacy Bullhorn Instances May Require Custom Integration Rather Than the Standard Data Sync Connector

Legacy Bullhorn instances may require custom integration rather than the standard Data Sync connector

VMS/MSP Integrations Are Deeply Embedded in Staffing Operations and Have No HubSpot Equivalent

VMS/MSP integrations are deeply embedded in staffing operations and have no HubSpot equivalent

Recruiter Performance Metrics and Desk-level Reporting Require Significant HubSpot Report Customization

Recruiter performance metrics and desk-level reporting require significant HubSpot report customization

Questions

Bullhorn To HubSpot, Answered

Ready to get started?

Let's do something great together.

Augment your agency's marketing team's bench with our end-to-end inbound and digital solutions and find out why we're "The HubSpot Agency for HubSpot Agencies."

Fill out this form, and someone from our Solutions team will be in touch with you soon!