HRMS migration
Field-level mapping, validation, and rollback between JobScore and BambooHR. We move data and schema; workflows are rebuilt natively in BambooHR.
JobScore
Source
BambooHR
Destination
Compatibility
7 of 10
objects map 1:1 between JobScore and BambooHR.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from JobScore to BambooHR is a transition from a recruiting-centric ATS to a full HRIS that includes hiring and onboarding. The core schema shift is from JobScore's candidate-centric model (Candidates, Applications, Jobs, Interviews, Scorecards) to BambooHR's employee-centric model (Employees, Job History, Onboarding Packets, Documents). We export the full candidate and application set from JobScore's v2 REST API, resolve the stage mapping (JobScore's five-stage model collapses into BambooHR's Hiring pipeline statuses), and reattach resume and cover letter blobs as BambooHR Employee Documents. Custom application form fields from JobScore become BambooHR custom employee fields. Interview records and scorecards migrate as notes and file attachments. We do not migrate JobScore workflows, email templates, or job board posting configurations; these are documented in a rebuild inventory for your BambooHR admin.
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 JobScore object lands in BambooHR, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
JobScore
Candidate
BambooHR
Employee
1:1JobScore Candidate records map to BambooHR Employee records. Core fields (firstName, lastName, email, phone, address) migrate directly. Date fields (dateOfBirth, hireDate) map from JobScore's candidate birth date and accepted offer date. Ethnicity and gender migrate to BambooHR EEO fields if the destination account has EEO enabled. We reattach the candidate's resume and cover letter as Employee Document records under a 'Documents from JobScore' folder, matching the folder naming convention used by the native integration.
JobScore
Application
BambooHR
Hiring Candidate
lossyJobScore Applications (the join table between Candidate and Job) map to BambooHR's Hiring module. The application date becomes the candidate submission date in BambooHR's hiring pipeline. JobScore stage history (New, Active, Declined, Withdrawn, Hired) maps to BambooHR Hiring Status values. Custom application form field responses stored at the Application level migrate as BambooHR custom employee fields with types preserved (text, date, dropdown, checkbox).
JobScore
Job
BambooHR
Job Opening
1:1JobScore published Jobs map to BambooHR Job Openings. Only published jobs appear in JobScore's API and job feeds — we scope the export to the published set and flag any Draft or Unpublished jobs for manual capture. Job title, location, and department migrate to BambooHR's Job Opening fields. Active vs filled vs closed status maps to BambooHR's open/closed Hiring status.
JobScore
Interview
BambooHR
Note (on Employee record)
1:1JobScore Interview records (date, interviewer assignment, interview type, outcome) have no direct BambooHR object equivalent. We migrate interviews as structured notes on the Employee record, preserving the date, interviewer name, interview type, and outcome text. This keeps interview history accessible on the employee profile in BambooHR after migration.
JobScore
Scorecard
BambooHR
Note or Document (on Employee record)
1:1JobScore Scorecards (interviewer ratings, comments, and evaluation forms) have no direct BambooHR object equivalent. We export scorecard data as structured notes or as PDF file attachments on the Employee record, depending on whether the scorecard contains rich formatting. The parent Interview reference is embedded in the note body so the evaluation chain is reconstructable.
JobScore
Custom Application Form
BambooHR
Custom Employee Field
lossyJobScore custom application form fields (created per job) store responses at the Application level. We extract the full custom field schema from the source account, map field types to their nearest BambooHR custom employee field equivalents (text, date, dropdown, checkbox, number), and pre-create the custom fields in BambooHR before application data loads. Dropdown values migrate as list options.
JobScore
Tag
BambooHR
Custom Employee Field (text)
lossyJobScore Tags are freeform labels applied to Candidates with unlimited tagging. We extract all tag associations and store them as a comma-separated text field on the Employee record in BambooHR. For customers with fewer than 50 distinct tags, we evaluate whether a multi-select picklist is feasible based on BambooHR's field type support.
JobScore
Location
BambooHR
Location
1:1JobScore Location records (address, city, state, country) map directly to BambooHR Locations. Location is assigned at the Job level in JobScore and at the Employee level (via Job Info) in BambooHR. We map JobScore Locations to their BambooHR equivalents during job migration and attach the correct location to the corresponding Employee record post-hire.
JobScore
User (Interviewer)
BambooHR
Employee (BambooHR user)
1:1JobScore Users assigned as interviewers, owners, or recruiters are mapped by email to BambooHR Employee records. BambooHR uses email as the user identifier. Any JobScore user without a matching BambooHR Employee goes into a reconciliation queue for the customer's admin to provision before record import. We preserve the interviewer assignment on Interview notes migrated to the destination.
JobScore
Document (Resume/Cover Letter)
BambooHR
Employee Document
1:1JobScore document blobs (resumes, cover letters) are exported as binary files and reattached to the corresponding BambooHR Employee record. File type (PDF, DOCX, RTF) is preserved. The native integration creates a 'Documents from JobScore' folder — we use the same folder convention to avoid creating duplicate structures. Documents without a matched Employee record are held in a document queue for manual resolution.
| JobScore | BambooHR | Compatibility | |
|---|---|---|---|
| Candidate | Employee1:1 | Fully supported | |
| Application | Hiring Candidatelossy | Fully supported | |
| Job | Job Opening1:1 | Fully supported | |
| Interview | Note (on Employee record)1:1 | Fully supported | |
| Scorecard | Note or Document (on Employee record)1:1 | Fully supported | |
| Custom Application Form | Custom Employee Fieldlossy | Fully supported | |
| Tag | Custom Employee Field (text)lossy | Fully supported | |
| Location | Location1:1 | Fully supported | |
| User (Interviewer) | Employee (BambooHR user)1:1 | Fully supported | |
| Document (Resume/Cover Letter) | Employee Document1: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.
JobScore gotchas
Phone-number deduplication silently overwrites candidate records on import
Only published jobs surface in the API and job feeds
Job-count pricing model creates billing risk during high-volume hiring periods
v2 API rate limits are not publicly documented
Custom workflow stages live only in the Active branch — standard stages are locked
BambooHR gotchas
Undocumented API rate limits can trigger 503 errors
Per-employee pricing model requires active record count verification
API credentials must be sent on every request to avoid extra round trips
Custom field schema varies per account and requires manual inventory
Document and attachment exports are not covered by standard report exports
Pair-specific challenges
Migration approach
Discovery and publish-requirement audit
We audit the source JobScore account: plan tier, candidate count, job count (published vs unpublished), application count, interview and scorecard volume, custom form field schemas, tag taxonomy, and document attachment count. We flag every unpublished job that must be published before migration begins and set a publish deadline. We also review the destination BambooHR account: current employee count, existing custom fields, Hiring module configuration, and location structure. The discovery output is a written migration scope with record counts, a publish checklist, and a custom field schema map.
Schema preparation in BambooHR
We create the custom employee field schema in BambooHR to receive JobScore custom application form responses. Each JobScore custom field is mapped to a typed BambooHR custom field (text, date, dropdown, checkbox, or number). We also configure the Hiring pipeline statuses to map from JobScore's stage model (New, Active, Declined, Withdrawn, Hired). If the customer uses BambooHR EEO fields, we enable those in the destination account. Location records are pre-created in BambooHR to match JobScore Locations so that Job Opening assignment resolves at migration time.
Candidate and document extraction
We export JobScore Candidates via paginated v2 REST calls, applying conservative rate-limit pacing. Phone-number collision detection runs against the full candidate set and the collision report is delivered to the customer before data load. Resume and cover letter blobs are exported as binary files, matched to their parent Candidate records by file_id, and staged for reattachment. Interview records and scorecards are extracted as structured JSON and converted to note text or PDF format for destination attachment.
Sandbox migration and reconciliation
We run a full migration into the customer's BambooHR environment (using a test employee record set if a dedicated sandbox is not available) to validate field mapping, custom field creation, document reattachment, and interview note placement. The customer's HR lead spot-checks 25-50 candidate records against the JobScore source and confirms the custom field values, document filenames, and interview notes are accurate. Any mapping corrections are documented and applied before production migration begins.
Production migration in dependency order
We run production migration in record-dependency order: Locations (first, as a dependency for Job Openings), Job Openings (published jobs only), Employees (candidate records with hire date and EEO data), Custom Employee Field values (application form responses), Hiring module candidates (application history linked to employees), Interview notes (linked to employees), Scorecard documents (linked to employees), and finally Employee Documents (resumes and cover letters). Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and workflow rebuild handoff
We freeze JobScore candidate writes during cutover, run a final delta migration of any records modified during the migration window, then mark BambooHR as the system of record. Resume and cover letter document counts are reconciled against the staged file list. We deliver the Workflow and Email Template inventory document to the customer's BambooHR admin team. We support a one-week hypercare window for reconciliation issues. We do not rebuild JobScore workflows or email templates as BambooHR task templates or email templates inside the migration scope; that is documented separately as a rebuild task list.
Platform deep dives
JobScore
Source
Strengths
Weaknesses
BambooHR
Destination
Strengths
Weaknesses
Complexity grading
Standard HRMS migration. All 7 core objects map 1:1 between JobScore and BambooHR.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across JobScore and BambooHR.
Object compatibility
All 7 core objects map 1:1 between JobScore and BambooHR.
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
JobScore: Not publicly documented in v2 docs; v1 showed 3600 req/hr.
Data volume sensitivity
JobScore 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 JobScore to BambooHR migration scoping. Not seeing yours? Book a call.
Walk through your JobScore to BambooHR migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave JobScore
Other ways to arrive at BambooHR
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.