HRMS migration
Field-level mapping, validation, and rollback between Jobylon and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.
Jobylon
Source
Bullhorn ATS & CRM
Destination
Compatibility
9 of 12
objects map 1:1 between Jobylon and Bullhorn ATS & CRM.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Jobylon to Bullhorn crosses from a Stockholm-based mid-market ATS built for European enterprise hiring into a US-centric ATS and CRM platform designed for staffing and recruitment agencies. The structural gap is significant: Jobylon organises hiring around Jobs, Applications, Candidates, and Pipeline Stages with per-company custom field schemas and a webhook-driven alpha-status Partner API; Bullhorn uses a Lead, Candidate, Contact, Client Corporation, Job Order, and Placement model with a REST API, per-edition custom object limits, and a documented stage-pipeline architecture. We build a custom export pipeline to work around Jobylon's lack of a bulk endpoint, resolve owner and candidate deduplication by email, and map free-text pipeline stage names to Bullhorn's configurable Sales Processes and Record Types. We do not migrate Jobylon automations, sequence cadences, or dynamic forms; 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 Jobylon 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.
Jobylon
Job
Bullhorn ATS & CRM
Job Order
1:1Jobylon Job records map to Bullhorn JobOrder. Standard fields (title, department, location, description, employment type) migrate directly. Per-company custom fields defined in /config/companies/{companyId}/job map to Bullhorn custom fields on JobOrder. Bullhorn enforces field character limits (some capped at 100 characters, others unlimited) — we analyse source field lengths during discovery and flag any that require truncation or multi-field splitting. Job status (active, paused, closed) maps to Bullhorn JobOrder status with the original status preserved in a custom field for audit.
Jobylon
Candidate
Bullhorn ATS & CRM
Candidate
1:1Jobylon Candidate records map to Bullhorn Candidate with deduplication by email address. A Candidate with multiple Applications across Jobs retains a single Bullhorn Candidate record with all Application histories linked. GDPR fields (consent granted date, erasure request date) migrate as custom fields on the Bullhorn Candidate because Bullhorn's standard Candidate does not include a native GDPR consent timeline. Phone, email, address, LinkedIn URL, and skills migrate to their Bullhorn equivalents. Resume files migrate as ContentDocument records attached to the Candidate.
Jobylon
Application
Bullhorn ATS & CRM
JobSubmission
1:1Jobylon Application records (linking a Candidate to a Job with a Pipeline Stage assignment) map to Bullhorn JobSubmission. The source Application ID is preserved in a custom field on JobSubmission for traceability. Application date, rejection date, and withdrawal date migrate as submissionTimestamp and statusChangeDate. Lost Reasons (free-text classification labels assigned when an Application moves to an inactive stage) migrate as a tagged custom field on JobSubmission rather than a native Bullhorn object.
Jobylon
Pipeline Stage
Bullhorn ATS & CRM
Sales Process + Record Type (JobOrder)
lossyJobylon pipeline stages are free-text and configurable per-company, with no standardisation across organisations. We map each distinct source stage name to a Bullhorn Sales Process stage value and create a corresponding Record Type on JobOrder. Inactive stages with assigned Lost Reasons are flagged as termination states and mapped to Bullhorn's Lost or Withdrawn stage values. The original stage name is preserved in a custom field for customer review before cutover. Bullhorn limits stage probability to integer percentages — we round source probability values to the nearest integer.
Jobylon
Scorecard
Bullhorn ATS & CRM
Custom Object (customObject1) or Note
1:1Jobylon Scorecards are tied to Pipeline Stages and record evaluations by specific Users with rating values and evaluator comments. We export the scorecard schema, rating values, and evaluator name. Bullhorn does not have a native scorecard object in standard editions, so we create a Bullhorn Custom Object (customObject1 through customObject10 depending on edition tier) with typed fields for rating category, score value, evaluator name, and timestamp. Bullhorn ATS Growth has no custom object support — in that case we map scorecards to Note records attached to the JobSubmission.
Jobylon
User
Bullhorn ATS & CRM
User
1:1Jobylon Users (recruiters, hiring managers, admins with configurable permission levels) map to Bullhorn User records. We resolve by email match. Any Jobylon User without a matching Bullhorn User goes to a reconciliation queue for the customer's admin to provision before record import resumes. Permission levels map from Jobylon role definitions to Bullhorn permission sets or profiles, with the customer admin making the final assignment during Bullhorn setup.
Jobylon
Custom Field (Job)
Bullhorn ATS & CRM
Custom Field (JobOrder)
lossyJobylon custom fields for Jobs are defined per-company via the Partner API, not globally. We query /config/companies/{companyId}/job for each company during discovery to build a complete field map. Bullhorn custom fields on JobOrder are limited per entity — we use standard Bullhorn custom fields first and escalate to custom objects for overflow. Dynamic custom fields (which build secondary forms based on prior submissions) must be confirmed as activated by Jobylon support before schema discovery; if not confirmed, those fields are flagged as a data gap in the discovery report.
Jobylon
Custom Field (Application)
Bullhorn ATS & CRM
Custom Field (JobSubmission)
lossyJobylon Application custom fields follow the same per-company schema pattern as Job custom fields. We map them to Bullhorn JobSubmission custom fields where the Bullhorn edition supports them. Bullhorn ATS Growth limits custom fields per entity — we scope the mapping to the customer's edition during discovery and flag any fields that exceed the per-entity limit, recommending a custom object or a consolidation strategy.
Jobylon
Assessor Feedback
Bullhorn ATS & CRM
Note or Activity
1:1Free-text evaluator notes and assessor feedback export as structured comment records from Jobylon. We preserve the author name, timestamp, and content body and map them to Bullhorn Note records attached to the JobSubmission, with the original author name and date in custom note fields. Bullhorn's native Notes object supports rich text, so formatted feedback content transfers without loss.
Jobylon
Offer Letter
Bullhorn ATS & CRM
ContentDocument (attachment)
1:1Jobylon stores offer letter documents as Application attachments with only filenames and URLs accessible via API — document content is not exported. We migrate the attachment URLs and filenames as Bullhorn ContentDocument records linked to the Placement or JobSubmission. The customer's admin should verify whether the original offer letter files are accessible from the Jobylon hosted environment before the account is closed. We document this gap in the handoff report and recommend a backup step during the pre-migration freeze window.
Jobylon
Client Corporation (Bullhorn native)
Bullhorn ATS & CRM
Client Corporation
1:1Jobylon does not have a native Client Corporation concept — its equivalent is the Employer entity or company record embedded in the Job configuration. Bullhorn uses Client Corporation as a separate entity linked to JobOrder and Candidate. If the migration scope includes moving employer-client data (for staffing agencies that also manage client relationships in Jobylon), we create Client Corporation records from the employer names associated with Job postings, with the original Jobylon employer identifier preserved as a custom field.
Jobylon
Lead
Bullhorn ATS & CRM
Lead
1:1For staffing agencies that use Jobylon's employer-facing pipeline for client outreach (rather than candidate-facing applications), we treat inbound employer inquiries as Bullhorn Leads. The source employer name, contact email, and any associated job requirements map to Bullhorn Lead fields. Conversion rules are defined with the customer admin during scoping so that employer Leads convert to Client Corporation and Contact records post-migration.
| Jobylon | Bullhorn ATS & CRM | Compatibility | |
|---|---|---|---|
| Job | Job Order1:1 | Fully supported | |
| Candidate | Candidate1:1 | Fully supported | |
| Application | JobSubmission1:1 | Fully supported | |
| Pipeline Stage | Sales Process + Record Type (JobOrder)lossy | Fully supported | |
| Scorecard | Custom Object (customObject1) or Note1:1 | Fully supported | |
| User | User1:1 | Fully supported | |
| Custom Field (Job) | Custom Field (JobOrder)lossy | Fully supported | |
| Custom Field (Application) | Custom Field (JobSubmission)lossy | Fully supported | |
| Assessor Feedback | Note or Activity1:1 | Mapping required | |
| Offer Letter | ContentDocument (attachment)1:1 | Fully supported | |
| Client Corporation (Bullhorn native) | Client Corporation1:1 | Fully supported | |
| Lead | Lead1:1 | 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.
Jobylon gotchas
Partner API is alpha with no bulk export endpoint
Rate limit of 100 req/min restricts migration speed
Custom fields are per-company and require pre-migration schema discovery
Dynamic custom fields must be activated by Jobylon support
Pipeline stage names are free-text and not standardised
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 source Jobylon environment via the Partner API, iterating through /config/companies/{companyId}/job to build a complete per-company custom field schema. We catalogue all Jobs, Applications, Candidates, Pipeline Stages, Scorecards, Lost Reasons, and Assessor Feedback records, and query for dynamic field activation status. We identify the Bullhorn edition (ATS Growth, ATS, Enterprise, or Front Office Growth) required to accommodate the migration schema and deliver a written scope document listing every object, field, and stage mapping with a count of records affected.
Export pipeline construction
Because Jobylon has no bulk export endpoint, we build a paginated API client that respects the 100 req/min rate limit using request throttling and exponential backoff. We extract Jobs first (as the parent container), then Candidates (with deduplication by email), then Applications linked to their parent Job and Candidate. For each record type we validate field presence against the OpenAPI schema and flag any dynamic fields that were not confirmed as activated. We output the extracted data as typed JSON batches for downstream transformation.
Bullhorn schema provisioning and sandbox migration
We configure the destination Bullhorn environment: custom fields on JobOrder and JobSubmission, custom objects (customObject1 through customObject10 as required by edition tier), Record Types and Sales Processes for each Jobylon pipeline variant, and stage probability values. Bullhorn ATS Growth migrations are scoped to standard custom fields only. We deploy the schema to a Bullhorn Sandbox first, run a full sandbox migration, and deliver a reconciliation report for the customer's admin to validate record counts and spot-check field mappings before production migration begins.
Owner and user reconciliation
We extract every distinct Jobylon User referenced as an Owner or Assignee on Jobs and Applications and match by email against the Bullhorn User table. Users without a matching Bullhorn User go to a reconciliation queue. The customer's Bullhorn admin provisions any missing Users and assigns permission sets before the production migration run. Migration cannot safely proceed past this step because OwnerId references are required on JobOrder, JobSubmission, and Candidate records.
Production migration in dependency order
We run production migration in record-dependency order: Users (validated by admin), Client Corporations (if in scope), JobOrders (with per-company custom fields applied), Candidates (with email deduplication and GDPR custom fields), JobSubmissions (with parent JobOrder and Candidate lookups resolved, stage mapping applied, Lost Reasons preserved), Scorecards (mapped to custom objects or Notes per edition), Assessor Feedback (mapped to Notes), and Offer Letter attachment filenames (mapped to ContentDocument references). Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and automation inventory handoff
We freeze Jobylon 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 of every Jobylon automation, dynamic form, and pipeline trigger that cannot migrate as code, with a Bullhorn Automation equivalent recommended for each item. We support a five-business-day hypercare window to resolve reconciliation issues raised by the customer's recruiting team. We do not rebuild Jobylon automations as Bullhorn Automation inside the migration scope.
Platform deep dives
Jobylon
Source
Strengths
Weaknesses
Bullhorn ATS & CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard HRMS migration. All 7 core objects map 1:1 between Jobylon and Bullhorn ATS & CRM.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Jobylon and Bullhorn ATS & CRM.
Object compatibility
All 7 core objects map 1:1 between Jobylon and Bullhorn ATS & CRM.
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
Jobylon: 100 requests per minute per organisation.
Data volume sensitivity
Jobylon doesn't expose a bulk API — REST + parallelization used for high-volume runs.
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 Jobylon to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.
Walk through your Jobylon 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 Jobylon
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.