HRMS migration

Migrate from Folks HR to Bullhorn ATS & CRM

Field-level mapping, validation, and rollback between Folks HR and Bullhorn ATS & CRM. We move data and schema; workflows are rebuilt natively in Bullhorn ATS & CRM.

Folks HR logo

Folks HR

Source

Bullhorn ATS & CRM

Destination

Bullhorn ATS & CRM logo

Compatibility

58%

7 of 12

objects map 1:1 between Folks HR and Bullhorn ATS & CRM.

Complexity

BStandard

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Folks HR to Bullhorn is a platform-type migration: Folks HR is a general Canadian SMB HRIS, and Bullhorn is a recruitment-focused ATS and CRM. The primary migration driver is that staffing and recruitment agencies outgrow Folks HR's recruitment module and consolidate onto Bullhorn for its candidate pipeline, job ordering, client management, and placement tracking. We translate Folks HR Employees into Bullhorn Candidate records, Folks HR Candidates into Bullhorn Candidate records with pipeline status preserved, and Folks HR's org structure and time tracking into Bullhorn custom fields on the appropriate entities. Bullhorn requires every record to have an owner, so we reconcile Folks HR user accounts against Bullhorn users before migration begins. Bullhorn's custom object limits are edition-gated—ATS Growth has no custom objects, ATS and Enterprise allow 10 with 55 fields each—and we surface this constraint during scoping so the customer selects the right Bullhorn tier. Workflows, automation rules, and payroll integration configurations do not migrate; we deliver a written inventory of these for the customer's admin to rebuild in Bullhorn's automation framework.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Folks HR logo

Folks HR

What's pushing teams away

  • No single sign-on support forces users through annoying two-factor email login flows, creating friction in environments already standardized on SSO providers.
  • Clunky and unclear UI makes navigation frustrating—users report routinely failing to find functionality and experiencing save failures that require repeated review cycles.
  • Expense report limitations force users to download receipts one at a time instead of bulk-downloading, creating bottlenecks for finance teams processing high-volume submissions.
  • Vacation balance projections are not shown at time of booking, so employees cannot see future leave entitlements when planning time off, leading to denied requests and HR back-and-forth.
  • Performance and page load reliability issues mean the application routinely fails to load in otherwise stable web-app environments, disrupting regular HR workflows.

Choosing

Bullhorn ATS & CRM logo

Bullhorn ATS & CRM

What's pulling them in

  • Agencies choose Bullhorn because it combines ATS and CRM in one platform, eliminating the need to switch between separate tools for candidate management and client relationship tracking.
  • The resume parser extracts contact details, work history, and skills into structured, searchable candidate profiles automatically without manual data entry, reportedly driving 24% more placements per recruiter.
  • Bullhorn's placement and split-billing model natively supports contract staffing workflows, handling start/end dates, overtime rules, and multi-party pay/charge rates in a single record.
  • The platform offers extensive third-party integrations through its Recruitment Cloud Marketplace, connecting with back-office, onboarding, and payroll systems used by staffing agencies.
  • 72% of Bullhorn customers are teams with fewer than 10 users, and Bullhorn's implementation team handles setup and data migration for small agencies going live within weeks.

Object mapping

How Folks HR objects map to Bullhorn ATS & CRM

Each row shows how a Folks HR 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.

Folks HR

Employee

maps to

Bullhorn ATS & CRM

Candidate (or Contact via Bullhorn CRM)

1:1
Fully supported

Folks HR employee records map to Bullhorn Candidate records with a custom field folks_employee_id__c carrying the original Folks HR employee identifier. Contact information (name, email, phone, address) maps to standard Bullhorn Candidate fields. If the customer also licenses Bullhorn CRM, employee records that represent client contacts map to Bullhorn Contact with a type flag. We preserve the original employment status, start date, and department as custom fields on the Candidate record since Bullhorn's native Candidate object does not have dedicated fields for these HR attributes.

Folks HR

Candidate

maps to

Bullhorn ATS & CRM

Candidate

1:1
Fully supported

Folks HR candidate records map directly to Bullhorn Candidate records with the pipeline stage translated to the corresponding Bullhorn status value (Applied, Phone Screen, Interview, Offer, Placed). Resume files download individually from Folks HR (no bulk endpoint) and upload to Bullhorn as ContentDocument records linked via ContentDocumentLink to the Candidate. We preserve the full application history and interview score entries as notes attached to the Candidate record.

Folks HR

Job Requisition

maps to

Bullhorn ATS & CRM

JobOrder

1:1
Fully supported

Folks HR job requisitions map to Bullhorn JobOrder records. The job title, description, requirements, and employment type (full-time, part-time, contract) migrate to Bullhorn JobOrder standard fields. Salary range from Folks HR becomes custom fields on the JobOrder since Bullhorn does not have a native salary range field. We resolve the owning recruiter by matching the Folks HR user email against Bullhorn user accounts.

Folks HR

Leave Request

maps to

Bullhorn ATS & CRM

TimeOffRequest (via Bullhorn Onboarding) or Custom Object

1:many
Fully supported

Folks HR leave requests map to Bullhorn's time-off records if Bullhorn Onboarding (formerly Able) is in scope. If Bullhorn Onboarding is not licensed, leave requests migrate as a Bullhorn custom object (LeaveRequest__c) with fields for leave type, start date, end date, status, and employee reference. Leave balance snapshots from Folks HR are stored as a custom field on the Candidate or in a separate accrual table. We flag that Bullhorn's accrual engine must be configured post-migration for ongoing balance calculation.

Folks HR

Time Entry

maps to

Bullhorn ATS & CRM

TimeCardEntry (via Bullhorn Time & Expense) or Custom Object

1:1
Fully supported

Folks HR time entries map to Bullhorn TimeCardEntry records if Bullhorn Time & Expense (formerly myPeopleNet) is in scope. If not, they migrate as custom object records (TimeEntry__c) with date, hours, cost code, and employee reference. We export all historical timesheet records and map the cost code association to a Bullhorn custom field or custom object lookup depending on the destination configuration.

Folks HR

Performance Review

maps to

Bullhorn ATS & CRM

Note or Custom Object on Candidate

lossy
Fully supported

Folks HR performance review cycles, review forms, ratings, and reviewer comments are stored as notes or in a custom object (PerformanceReview__c) attached to the corresponding Candidate record in Bullhorn. Bullhorn does not have a native performance review module, so the review data is preserved as structured notes with reviewer name, review date, rating, and comment fields. We discuss the preferred format with the customer during scoping.

Folks HR

Department

maps to

Bullhorn ATS & CRM

BusinessSector (custom text) or Custom Object

lossy
Fully supported

Folks HR departments map to Bullhorn BusinessSector as a custom text field on the Candidate record, or to a Bullhorn custom object (Department__c) if the customer requires department-level reporting in Bullhorn. Bullhorn's standard BusinessSector field is a free-text field with no validation, so we coordinate with the customer on whether to use it directly or create a controlled custom object.

Folks HR

User Account

maps to

Bullhorn ATS & CRM

User

1:1
Fully supported

Folks HR user accounts map to Bullhorn User records by email match. Role-based permissions (admin, manager, employee) translate to Bullhorn role assignments, though Bullhorn's permission model differs from Folks HR's. Owners without a matching Bullhorn User go to a reconciliation queue, and the customer's Bullhorn admin provisions missing users before record import resumes since Bullhorn requires an owner on every record.

Folks HR

Document (Employee File)

maps to

Bullhorn ATS & CRM

ContentDocument

1:1
Fully supported

Folks HR employee documents (contracts, tax forms, certifications) download individually via API (no bulk endpoint) and upload to Bullhorn as ContentDocument records linked via ContentDocumentLink to the corresponding Candidate record. For large document archives (hundreds of files), we sequence downloads across multiple sessions to stay within Folks HR's 60 requests per minute API limit and prioritize high-value documents first. We surface this constraint during scoping so the customer can set document prioritization.

Folks HR

Document (Recruitment Attachment)

maps to

Bullhorn ATS & CRM

ContentDocument on Candidate or JobOrder

1:1
Fully supported

Folks HR candidate resumes, offer letters, and recruitment attachments map to Bullhorn ContentDocument records linked to the Candidate or JobOrder. Resume files download individually from Folks HR and attach to the Bullhorn Candidate record with the Description field set to the original Folks HR attachment type (Resume, Cover Letter, Offer Letter, etc.). We preserve the original file name and any Folks HR file ID as metadata for audit trail purposes.

Folks HR

Custom Field (Employee Profile)

maps to

Bullhorn ATS & CRM

CustomText, CustomDate, or CustomFloat on Candidate

lossy
Fully supported

Folks HR custom fields on employee profiles map to Bullhorn custom fields on the Candidate object. Field type translation is determined during scoping: text fields become CustomText1-50, date fields become CustomDate1-10, numeric fields become CustomFloat1-10. Bullhorn has a 100-character limit on CustomText fields that we check against Folks HR source values, truncating or escalating based on customer preference. Bullhorn's edition limits the number of available custom fields per entity, so we prioritize the customer's most critical custom fields during scoping.

Folks HR

Expense Report

maps to

Bullhorn ATS & CRM

Custom Object or Third-Party Expense Tool

lossy
Fully supported

Folks HR expense reports with line items, receipts, amounts, and approval status are exported as structured data. Bullhorn does not have a native expense management module. We migrate expense report metadata (report ID, date, total amount, approval status, line item descriptions) to a Bullhorn custom object (ExpenseReport__c) if the customer licenses Bullhorn CRM or ATS with custom objects available. Receipts download individually from Folks HR and are attached as ContentDocument records. If Bullhorn Onboarding with expense features is not in scope, we document the expense data structure for migration to a dedicated expense tool.

Gotchas + challenges

What specifically takes care here

Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.

Folks HR logo

Folks HR gotchas

High

API rate limit of 60 requests per minute

Medium

Document attachments require individual retrieval

Medium

No SSO forces email-based two-factor login

Low

Leave balance calculations not exposed via API

Bullhorn ATS & CRM logo

Bullhorn ATS & CRM gotchas

High

ATS Growth edition has no API access

High

Attachments excluded from CSV bulk exports

Medium

Custom Object limits vary sharply by edition

Medium

Opportunity pipeline stages are recruitment-specific

Low

Resume parse quality varies by document format

Pair-specific challenges

  • Folks HR API rate limit of 60 requests per minute

    Folks HR enforces a hard 60 requests per minute limit on API access. Document downloads are particularly impacted because each file requires a separate API call with no bulk retrieval endpoint. For migrations with large document archives, we batch downloads across multiple sessions with sleep intervals between requests to avoid 403 Forbidden responses that would stall the migration. We surface document volume and estimated retrieval time during scoping so the customer can prioritize high-value files first.

  • Bullhorn requires an owner on every record

    Bullhorn enforces that all records (except Companies and JobOrders in some configurations) must have an Owner field set to a valid Bullhorn User. We reconcile Folks HR user accounts against Bullhorn User records by email match before migration begins. Any Folks HR record with an owner that does not have a matching Bullhorn User goes to a reconciliation queue for the customer's Bullhorn admin to provision. Migration cannot complete if orphaned owner references remain unresolved.

  • Bullhorn custom object limits are edition-gated

    Bullhorn custom objects are available only on Front Office Growth and Enterprise (10 custom objects, 55 fields each), ATS Growth and ATS (2 custom objects, 55 fields each), and not available on ATS Growth (none). We determine the customer's Bullhorn edition during scoping and map the Folks HR custom field and custom object count against these limits. If the customer requires more custom objects than their edition allows, we escalate during scoping before any schema work begins.

  • Bullhorn CustomText field character limit of 100 characters

    Bullhorn's CustomText fields have a 100-character limit. Many Folks HR text fields (notes, descriptions, custom property values) exceed this. We check character lengths during the transform phase and either truncate to 100 characters, map to Bullhorn Note records for longer text, or escalate to the customer for a truncation preference. The Bullhorn field mapping documentation provides a character limit reference for each field type that we use during transform validation.

  • Leave balance accrual calculations do not transfer

    Folks HR computes leave accruals server-side and does not expose the raw accrual transaction history via API. We export current balance snapshots and leave request history, but future accrual calculations must be configured in Bullhorn's time-off module or entered manually post-migration. We document the current balance snapshot in a structured format for the customer's Bullhorn admin to configure accrual rules or for manual entry, and we flag this as a known gap in the migration checklist.

Migration approach

Six steps for a successful Folks HR to Bullhorn ATS & CRM data migration

  1. Discovery and Bullhorn edition assessment

    We audit the source Folks HR portal for employee count, candidate volume, job requisitions, leave request history, time entry records, document archives, and custom field definitions. We pair this with a Bullhorn edition assessment: ATS Growth ($negotiated) covers basic recruitment without custom objects; ATS ($negotiated) adds 2 custom objects; Front Office Growth or Enterprise adds 10 custom objects and SSO. The discovery output is a written migration scope with record counts per object, a Bullhorn edition recommendation, and a list of any Folks HR data that exceeds Bullhorn field type limits.

  2. User reconciliation and Bullhorn User provisioning

    We extract every distinct Folks HR user referenced on employee, candidate, and leave request records and match by email against the Bullhorn destination org's User table. Users without a matching Bullhorn User go to a reconciliation queue. The customer's Bullhorn admin provisions missing users and assigns roles (recruiter, sales, hiring manager, admin) before record migration begins. Bullhorn requires an owner on every record, so this step is a hard dependency before any data moves.

  3. Schema design and Bullhorn custom field pre-creation

    We design the destination schema in Bullhorn, creating custom fields on the Candidate object for Folks HR custom employee profile fields, custom objects for leave requests and expense reports if Bullhorn edition permits, and custom fields for org structure (department, location). Bullhorn's custom field API names (CustomText1-50, CustomDate1-10, CustomFloat1-10) are assigned during this phase. If the customer requires more custom fields or custom objects than the Bullhorn edition allows, we escalate to the edition upgrade decision before proceeding.

  4. Sandbox migration and reconciliation

    We run a full migration into a Bullhorn sandbox environment using a representative data sample. The customer's Bullhorn admin reconciles record counts (candidates in, employees in, job orders in), spot-checks 25-50 random records against the Folks HR source, and validates that custom field values populated correctly. Mapping corrections and character limit issues surface here. Sign-off on the sandbox migration is required before production migration begins.

  5. Document archive sequencing

    Folks HR document attachments are retrieved individually via API with no bulk download endpoint. We sequence document downloads across multiple sessions staying within the 60 requests per minute limit, prioritizing employment contracts and offer letters first, then resumes, then supporting documents. We provide the customer with a document priority checklist during scoping and an estimated retrieval timeline based on total document count.

  6. Production migration in dependency order

    We run production migration in record order: Bullhorn Users (validated from step 2), JobOrders (from Folks HR job requisitions), Candidates (from Folks HR candidates and employees), leave requests and time entries (to Bullhorn custom objects or Bullhorn Onboarding if licensed), document attachments (ContentDocument via API sequencing), and custom field data. Each phase emits a row-count reconciliation report before the next phase begins. Leave balance snapshots are delivered as a structured CSV for manual entry or accrual engine configuration in Bullhorn.

  7. Cutover, validation, and automation inventory handoff

    We freeze Folks HR writes during cutover and run a final delta migration of any records modified during the migration window. We deliver a written inventory of Folks HR workflows, automation rules, and payroll integration configurations with Bullhorn equivalents documented for the customer's admin to rebuild post-migration. We support a one-week hypercare window for reconciliation issues. We do not rebuild Folks HR workflows in Bullhorn Flow or Bullhorn Automation (formerly Herefish) within the migration scope; that is a separate engagement.

Platform deep dives

Context on both ends of the pair

Folks HR logo

Folks HR

Source

Strengths

  • All-in-one platform covering 30+ HR modules eliminates the need for multiple point solutions.
  • Bilingual English and French interface designed specifically for Canadian SMB compliance.
  • Competitive pricing starting around $6 per user with a free trial available.
  • Fast onboarding—users report becoming productive within 20 minutes of first use.
  • Performance review and 360-degree feedback tools built into the core platform.

Weaknesses

  • No SSO support creates friction in enterprise environments already standardized on identity providers.
  • Payroll integration is limited, leaving employees without real-time access to leave balances and pay stubs.
  • Reporting and analytics capabilities are basic with no bulk download for expense receipts.
  • Page load reliability issues reported in otherwise stable web environments.
  • Vacation balance forecasting is absent—employees cannot see future entitlement when requesting time off.
Bullhorn ATS & CRM logo

Bullhorn ATS & CRM

Destination

Strengths

  • Unified ATS and CRM on one platform purpose-built for staffing agencies, eliminating separate tools for candidates and clients.
  • Automated resume parsing extracts structured candidate data—contact details, work history, skills—into searchable profiles instantly.
  • Native placement and split-billing model handles contract staffing workflows including start/end dates and overtime rules.
  • Bullhorn Recruitment Cloud Marketplace offers 100+ pre-validated third-party integrations spanning the full recruiting lifecycle.
  • 24/7 global support coverage from 350+ support staff with dedicated account management included at all tiers.

Weaknesses

  • Widely regarded as old and bloated with an unintuitive interface and steep learning curve for new recruiters.
  • Slow page loads and performance lag cited in over 200 verified G2 reviews during high-volume recruiting periods.
  • Pricing is opaque—custom-negotiated per organization with significant upfront implementation fees that vary by deal.
  • ATS Growth edition excludes API access entirely, preventing automated data export without upgrading first.

Complexity grading

How hard is this migration?

Standard HRMS migration. All 7 core objects map 1:1 between Folks HR and Bullhorn ATS & CRM.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Folks HR and Bullhorn ATS & CRM.

  • Object compatibility

    A

    All 7 core objects map 1:1 between Folks HR and Bullhorn ATS & CRM.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    7-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Folks HR: 60 requests per minute per organization.

  • Data volume sensitivity

    B

    Folks HR doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Folks HR to Bullhorn ATS & CRM migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Folks HR to Bullhorn ATS & CRM data migrations

Answers to the questions buyers ask most during Folks HR to Bullhorn ATS & CRM migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Folks HR to Bullhorn ATS & CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations land between two and four weeks for organizations under 500 employees and 2,000 candidate records with no custom objects in scope. Migrations with large document archives (hundreds of files requiring individual retrieval), custom objects exceeding Bullhorn edition limits, or parallel Bullhorn CRM scope move to six to ten weeks because of document download sequencing time and Bullhorn custom object schema pre-creation.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Folks HR.
Land in Bullhorn ATS & CRM, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day