HRMS migration
Field-level mapping, validation, and rollback between Kula and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.
Kula
Source
Bullhorn ATS & CRM
Destination
Compatibility
6 of 14
objects map 1:1 between Kula and Bullhorn ATS & CRM.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Kula to Bullhorn is a migration from a modern, AI-sourcing-focused ATS to the staffing-industry standard ATS/CRM that agencies have run on for over two decades. Kula's Candidate-centric model (unified profile with AI resume scores and sourcing attribution) maps to Bullhorn's dual Lead-and-Contact model with separate placement tracking. We extract Kula's candidate profiles and activity timelines, resolve the sourcing attribution fields to Bullhorn's source tracking, and preserve interview scorecards as Bullhorn's structured feedback fields. Bullhorn's standard hiring workflow (Prescreen through Placement) differs structurally from Kula's customizable per-job pipeline stages, so we document the stage mapping and configure Bullhorn workflow stages before migration. Automated sequences, career site configurations, and Kula's AI notetaker sessions do not migrate via API; we deliver a written inventory of these for the customer's Bullhorn admin to rebuild post-migration.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Kula 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.
Kula
Candidate
Bullhorn ATS & CRM
Lead or Contact (split required)
1:manyKula's unified Candidate record maps to Bullhorn's Lead and Contact based on recruitment stage. Candidates who have been sourced but not submitted to a client map to Bullhorn Lead. Candidates who have been submitted to a client or have an active application map to Bullhorn Contact attached to a Business (client company). We preserve the original Kula candidate ID as a custom field bh_kula_candidate_id__c on both Lead and Contact for audit traceability.
Kula
Job (Requisition)
Bullhorn ATS & CRM
JobOrder
1:1Kula Job records map directly to Bullhorn JobOrder. The job title, description, location, employment type, and salary fields transfer to equivalent Bullhorn JobOrder fields. We extract the Kula job status (Open, Closed, Draft, On Hold) and map to Bullhorn status (Open, Closed, Cancelled). The Kula job owner maps to the Bullhorn JobOwner by email resolution.
Kula
Application
Bullhorn ATS & CRM
Placement (pre-placement) or JobSubmission
1:1Kula Application records link a Candidate to a Job and track stage progression. We map Application records to Bullhorn JobSubmission for candidates in interview or offer stages. For placements that have been made in Kula, we map to Bullhorn Placement with the appropriate employment and billing details. The application submission date, current stage, and rejection or withdrawal outcome transfer as structured fields.
Kula
Interview
Bullhorn ATS & CRM
Interview
1:1Kula Interview records (scheduled rounds, interviewer assignments, and feedback) map directly to Bullhorn Interview records. We transfer interviewer assignments by resolving Kula user email addresses to Bullhorn User records. Interview date, time, type (phone, video, onsite), and outcome (passed, failed, no-show) migrate as structured fields. The sequence of interview rounds is preserved by ordering on the interview start timestamp.
Kula
Scorecard and AI Summary
Bullhorn ATS & CRM
Scorecard (custom fields)
lossyKula generates AI-powered interview summaries and candidate scores stored as structured text fields on the interview record. We migrate these as read-only text fields in Bullhorn. Bullhorn does not have a native AI scoring equivalent, so we preserve the original Kula AI summary as a long-text custom field interview_notes__c on the Interview record and flag for the customer's admin that manual or third-party AI re-scoring is required post-migration. Scorecard templates from Kula are documented for rebuild in Bullhorn's custom form builder.
Kula
Pipeline Stages
Bullhorn ATS & CRM
Workflow Stages (JobOrder status)
lossyKula's customizable per-job pipeline stages (e.g., Applied, Phone Screen, Technical, Final, Offer) map to Bullhorn's six-step standard hiring workflow or to custom workflow stages if the customer's Bullhorn instance has custom workflow configuration enabled. We extract the Kula stage names and ordering from each job's pipeline, then configure matching workflow stages in Bullhorn JobOrder before migration. Stage probabilities from Kula transfer to Bullhorn's custom probability fields if configured.
Kula
Candidate Activity Timeline
Bullhorn ATS & CRM
Note and Task (activity logging)
1:1Kula preserves a full candidate activity timeline (sourcing events, outreach, status changes, interview rounds, feedback). We migrate activity records to Bullhorn Note records attached to the candidate's corresponding Lead or Contact. Activity type, timestamp, and description transfer as structured fields. We preserve the activity sequence by ordering on the original Kula timestamp to maintain the timeline view in Bullhorn.
Kula
Custom Fields (Candidates)
Bullhorn ATS & CRM
Custom Fields on Lead/Contact
lossyKula custom fields on Candidates (beyond the standard profile fields) migrate to Bullhorn custom fields on Lead and Contact. We pre-create the destination schema in Bullhorn with matching field types (text, number, date, picklist, multi-select picklist) before migration. Custom field definitions are extracted from Kula during discovery and mapped one-to-one with type conversion applied where field types differ between platforms.
Kula
Custom Fields (Jobs)
Bullhorn ATS & CRM
Custom Fields on JobOrder
lossyKula custom fields on Job records migrate to Bullhorn JobOrder custom fields. Bullhorn JobOrder supports custom fields for additional job attributes (e.g., department code, hiring manager name, security clearance requirements). We extract the custom field schema from Kula, create matching Bullhorn fields, and migrate values during the JobOrder import phase.
Kula
Tags and Source Attribution
Bullhorn ATS & CRM
Tags (multi-select picklist) and Source field
lossyKula tags (e.g., 'referral', 'sourced-linkedin', 'passive-candidate') carry sourcing and classification context. We preserve tag assignments as Bullhorn multi-select picklist values on the candidate record. The original Kula source attribution (where the candidate was sourced) maps to Bullhorn's CandidateSource field on Lead or Contact. Tag limits in Bullhorn (maximum 500 values per picklist) are checked during discovery.
Kula
User and Team Assignments
Bullhorn ATS & CRM
User
1:1Recruiter owners, hiring managers, and interviewers assigned to Kula Jobs and Applications are mapped by email address to Bullhorn User records. We extract every distinct user email from Kula assignments and match against the Bullhorn destination org's User table. Any Kula user without a matching Bullhorn User is held in a reconciliation queue for the customer's Bullhorn admin to provision before record import resumes.
Kula
Interviewer Pool
Bullhorn ATS & CRM
Candidate Pool or User group
1:1Kula's interviewer pool feature (balancing scheduling load across team members) maps to Bullhorn's Candidate Pool feature for talent pools or User group assignments for interviewer management. We transfer pool membership records with the caveat that Bullhorn's scheduling rules and availability settings are destination-specific and require manual configuration post-migration.
Kula
Email and SMS Templates
Bullhorn ATS & CRM
Email Template or Bullhorn Automation (Herefish)
lossyKula outreach templates used in automated candidate communication can be exported as text and mapped to Bullhorn Email Templates or Bullhorn Automation (Herefish) sequences. Rich formatting and conditional logic from Kula templates may require manual reconstruction in Bullhorn's template editor. We deliver a template mapping document listing each Kula template and its recommended Bullhorn equivalent.
Kula
Sourced Profile Data (LinkedIn, GitHub)
Bullhorn ATS & CRM
Custom fields on Lead/Contact
lossyKula's integrated sourcing from LinkedIn and GitHub stores profile URLs, connection counts, and skill data on the candidate record. We migrate these as custom fields on the Bullhorn Lead or Contact: linkedin_url__c, github_url__c, and skill tags mapped to a multi-select picklist. Bullhorn does not have native LinkedIn or GitHub sourcing integration, so these fields are preserved as reference data rather than live links.
| Kula | Bullhorn ATS & CRM | Compatibility | |
|---|---|---|---|
| Candidate | Lead or Contact (split required)1:many | Fully supported | |
| Job (Requisition) | JobOrder1:1 | Fully supported | |
| Application | Placement (pre-placement) or JobSubmission1:1 | Fully supported | |
| Interview | Interview1:1 | Fully supported | |
| Scorecard and AI Summary | Scorecard (custom fields)lossy | Fully supported | |
| Pipeline Stages | Workflow Stages (JobOrder status)lossy | Mapping required | |
| Candidate Activity Timeline | Note and Task (activity logging)1:1 | Fully supported | |
| Custom Fields (Candidates) | Custom Fields on Lead/Contactlossy | Fully supported | |
| Custom Fields (Jobs) | Custom Fields on JobOrderlossy | Fully supported | |
| Tags and Source Attribution | Tags (multi-select picklist) and Source fieldlossy | Mapping required | |
| User and Team Assignments | User1:1 | Mapping required | |
| Interviewer Pool | Candidate Pool or User group1:1 | Fully supported | |
| Email and SMS Templates | Email Template or Bullhorn Automation (Herefish)lossy | Mapping required | |
| Sourced Profile Data (LinkedIn, GitHub) | Custom fields on Lead/Contactlossy | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
Kula gotchas
AI-generated scores do not carry over as live metrics
Reporting exports require a separate manual step
Frequent platform updates can change field behavior
Bullhorn ATS & CRM gotchas
ATS Growth edition has no API access
Attachments excluded from CSV bulk exports
Custom Object limits vary sharply by edition
Opportunity pipeline stages are recruitment-specific
Resume parse quality varies by document format
Pair-specific challenges
Migration approach
Discovery and schema audit
We audit the Kula instance across candidates (with AI score fields), jobs, applications, interviews, custom fields on each entity, pipeline stage definitions per job, tag taxonomies, user assignments, and activity history volume. We pair this with a Bullhorn destination audit: edition determination (Staffing Edition or CRM Edition), existing custom field schema, workflow stage configuration, user provisioning status, and Bullhorn Analytics configuration. The discovery output is a written migration scope document and a Bullhorn configuration checklist that the customer's Bullhorn admin completes before we begin schema setup.
Bullhorn schema design and workflow configuration
We design the destination schema in Bullhorn. This includes creating custom fields on Lead, Contact, JobOrder, and Placement to accommodate Kula custom fields; configuring workflow stages to match the Kula pipeline stage schema per job; setting up CandidateSource picklist values from Kula's sourcing attribution; and mapping Kula's tag taxonomy to Bullhorn multi-select picklist fields. Bullhorn's custom workflow stages are configured in the admin panel before any record migration begins. We deploy schema changes into the Bullhorn sandbox first for validation.
Sandbox migration and reconciliation
We run a full migration into Bullhorn's sandbox using production-like data volume from Kula. The customer's Bullhorn admin reconciles record counts (Leads in, Contacts in, JobOrders in, Placements in, Interviews in), spot-checks 25-50 random records against the Kula source for field-level accuracy, and validates that workflow stages match the Kula pipeline definitions. The Lead-versus-Contact split is validated by confirming that submitted candidates appear as Contacts with a Business attachment. Any mapping corrections happen in the sandbox before production migration begins.
User provisioning and owner reconciliation
We extract every distinct Kula user (recruiter owners, hiring managers, interviewers) from job and application assignments and match by email against the Bullhorn destination org's User table. Kula users without matching Bullhorn Users are listed in a reconciliation queue. The customer's Bullhorn admin provisions any missing Users (active or inactive based on whether the original Kula user is still active in the business). Migration cannot proceed past this step because User lookups are required on JobOrder, Placement, and Interview records.
Production migration in dependency order
We run production migration in record-dependency order: Users (validated), Business records (client companies from Kula job clients), Leads (Kula candidates without applications), JobOrders (Kula jobs), Contacts (Kula candidates with applications, attached to Business), Placements (Kula applications with placement outcome), Interviews (with interviewer assignments resolved to Bullhorn Users), Scorecards and AI summaries (as custom fields on Interview), Activity history (Notes on Lead/Contact), Custom fields (validated), and Tags (multi-select picklist values). Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and handoff documentation
We freeze Kula writes during cutover, run a final delta migration of any records modified during the migration window, then enable Bullhorn as the system of record. We deliver a written inventory document covering: Kula workflow and sequence equivalents requiring rebuild in Bullhorn Automation (Herefish); career site recreation checklist; Kula AI score fields and their status as read-only reference data; template mapping from Kula email and SMS templates to Bullhorn Email Templates; and the reporting export checklist for any historical analytics the customer captured before migration. We support a one-week hypercare window for reconciliation issues. Workflow rebuild, career site recreation, and Bullhorn Automation setup are outside standard migration scope and are separate engagements.
Platform deep dives
Kula
Source
Strengths
Weaknesses
Bullhorn ATS & CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard HRMS migration. 1 of 7 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Kula and Bullhorn ATS & CRM.
Object compatibility
1 of 7 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
7-object category — typical timelines run 2–7 days end-to-end.
API constraints
Kula: Not publicly documented.
Data volume sensitivity
Kula exposes a bulk API — large-volume migrations stream efficiently.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Kula to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.
Walk through your Kula to Bullhorn ATS & CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Kula
Other ways to arrive at Bullhorn ATS & CRM
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.