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.
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
- 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
- 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 wayBecomes 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 wayBecomes 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 wayBecomes 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 wayBecomes 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 wayBecomes 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 wayBecomes 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 HubSpotBecomes 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 wayBecomes 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 wayBecomes 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 wayBecomes 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
Audit Bullhorn Data
inventory client contacts, candidates, client corporations, job orders, placements, submissions, tearsheets, and custom fields
- 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
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
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
Map Bullhorn Job Order Statuses to HubSpot Deal Pipeline Stages
Map Bullhorn Job Order statuses to HubSpot deal pipeline stages
- 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
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
Recreate Tearsheets as HubSpot Static Lists or Saved Views
Recreate tearsheets as HubSpot static lists or saved views
- 9
Rebuild Recruiter Performance Reports and Pipeline Analytics in HubSpot
Rebuild recruiter performance reports and pipeline analytics in HubSpot
- 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
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
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.
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
Yes. Data sync, two way, covering 10 objects. What it does not do is rebuild configuration: that is the 40 items below.
Typically 8-12 weeks. Complexity is driven by automation and reporting depth, not by record count: the connector moves records, so a large database is not by itself a long project.
Of 33 features we mapped, 11 (33%) carry across directly and 17 (52%) map partially, meaning something is lost or reshaped. 5 have no HubSpot equivalent at any tier.
40 items have to be rebuilt by hand, and 7 documented limitations are not surfaced by the connector at all. The full list of both is on this page.
HubSpot Free (basic sync); Data Hub Starter+ for custom field mappings
5: Resume/CV Parsing, VMS Integration, Background Screening Integration, Onboarding, Back Office (Payroll & Billing). If a client depends on one, it belongs in the conversation before the contract.
Only in one direction. The sync is not bidirectional here, so a parallel period means picking a system of record and accepting drift in the other.
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!