HRMS migration

Migrate from OpenCATS to Crelate

Field-level mapping, validation, and rollback between OpenCATS and Crelate. We move data and schema; workflows are rebuilt natively in Crelate.

OpenCATS logo

OpenCATS

Source

Crelate

Destination

Crelate logo

Compatibility

75%

9 of 12

objects map 1:1 between OpenCATS and Crelate.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from OpenCATS to Crelate is a shift from a self-hosted, zero-cost ATS to a cloud-native recruiting platform with a REST API, built-in CRM, and AI-powered sourcing. OpenCATS has no REST API, so we connect directly to the MariaDB database the customer hosts, extract Candidates, Job Orders, Companies, Contacts, Activities, and Saved Lists as structured query results, then map and load through Crelate's API. Resume files are stored as filesystem paths on the OpenCATS server rather than database BLOBs; we flag every path for separate SFTP transfer and re-link them post-migration. OpenCATS Reports do not migrate as exportable artifacts. Crelate's Business tier ($99/user/month) and above support custom fields and multiple data stages, but Crelate enforces limits on these by subscription tier, which we surface during scoping. Saved Lists, user-defined workflows, and calendar configurations do not migrate as code; we deliver a written inventory of these for the customer's admin to rebuild in Crelate.

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

OpenCATS logo

OpenCATS

What's pushing teams away

  • Missing modern ATS essentials — no built-in interview scheduling, candidate assessments, or background-check integrations.
  • Security concerns: MD5 password hashing is a documented vulnerability that fails modern security audits.
  • Steep installation and admin learning curve — non-technical teams struggle to stand it up without IT or DevOps help.
  • No bulk-recruiting features — high-volume teams find the per-record workflow prohibitive at scale.
  • No native calendar integration — OpenCATS cannot sync with Google Calendar, Outlook, or any external calendar system, forcing manual coordination outside the tool.

Choosing

Crelate logo

Crelate

What's pulling them in

  • Affordable per-seat pricing with transparent tiers makes Crelate accessible for small-to-mid staffing firms evaluating ATS platforms for the first time.
  • Fast implementation reported by customers—some describe getting live in a matter of minutes with support team assistance.
  • Unified ATS + CRM in a single product eliminates the need to buy and synchronize separate recruiting and sales tools.
  • Flexible custom fields across Contacts, Companies, and Opportunities allow recruiting teams to capture firm-specific data without developer involvement.
  • Positive reviews highlight the product's intuitive interface and functional breadth for teams that need recruiting workflows without enterprise overhead.

Object mapping

How OpenCATS objects map to Crelate

Each row shows how a OpenCATS object lands in Crelate, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

OpenCATS

Candidate

maps to

Crelate

Person

1:1
Fully supported

OpenCATS Candidate records map to Crelate Person. We extract first_name, last_name, email, phone, skills (stored as comma-separated tags in OpenCATS), and the candidate's status field, mapping to Crelate's Person Status values. The original skill tags from OpenCATS migrate to Crelate's Tags on the Person record. Candidate resume file paths are extracted as a separate list and flagged for SFTP transfer to Crelate's document storage, then re-linked by filename match post-migration.

OpenCATS

Job Order

maps to

Crelate

Job

1:1
Fully supported

OpenCATS Job Orders map directly to Crelate Jobs. The OpenCATS fields title, description, status, public_description, and assigned_recruiter map to Crelate's Job title, description, status, jobDescription, and assigned recruiter respectively. OpenCATS job type (full-time, part-time, contract) maps to Crelate's employmentType. We preserve the original open_date and close_date as custom fields if the customer requires historical job timing data.

OpenCATS

Company

maps to

Crelate

Organization

1:1
Fully supported

OpenCATS Companies map to Crelate Organizations. Company name, address fields, phone, website, and industry map directly. OpenCATS supports multiple departments and locations per company stored as separate rows; we map these to Crelate Organization location records. The company name is the dedupe key during import, and we resolve Organization IDs before inserting any related Person or Job records.

OpenCATS

Contact

maps to

Crelate

Contact

1:1
Fully supported

OpenCATS Contact records (hiring managers and client contacts distinct from Candidates) map directly to Crelate Contacts. We extract name, title, company (linked to the Organization mapping), email, phone, and notes. Cold Call List entries from OpenCATS migrate as Crelate Contacts with a Cold Call List tag applied during import.

OpenCATS

Activity

maps to

Crelate

Activity

1:1
Fully supported

OpenCATS Activity records (calls, emails, meetings, notes tied to Candidates and Job Orders) map to Crelate Activities. The activity type maps to Crelate's activityType, date maps to activityDate, and notes content maps to Crelate's notes field. We resolve the parent Person and Job references at migration time using the record IDs extracted from the OpenCATS database. Activity ordering is preserved by timestamp.

OpenCATS

Saved List

maps to

Crelate

Tag or List

lossy
Fully supported

OpenCATS Saved Lists are user-curated candidate groupings stored as list membership records in the database. We extract every Saved List name and its member Candidate IDs, then recreate the list associations in Crelate as either Tags on Person records or as a Crelate List (Group). The customer chooses the target structure during scoping. List order and ranking do not transfer; we document the original ordering for manual reconstruction if needed.

OpenCATS

Attachment

maps to

Crelate

Document

1:1
Fully supported

OpenCATS stores candidate resume files as filesystem paths on the server, not as database BLOBs. We extract every candidate_attachment record (file path, filename, file type) and produce a separate file-transfer manifest listing all resume paths and their associated Candidate IDs. The customer transfers files via SFTP to Crelate's document storage. We then re-link each file to the corresponding Crelate Person record by filename match. This is a two-step process requiring coordination between data migration and file transfer timelines.

OpenCATS

Calendar Event

maps to

Crelate

Event

1:1
Fully supported

OpenCATS Calendar Events map to Crelate Events with event title, start time, end time, and description. Recurrence patterns and reminder settings do not transfer; OpenCATS stores these in a format that has no direct Crelate equivalent. We flag recurrence configurations for manual rebuild in Crelate's calendar settings.

OpenCATS

User / Recruiter

maps to

Crelate

User

1:1
Fully supported

OpenCATS User accounts map to Crelate Users. We extract user_id, first_name, last_name, email, and role, matching by email against the destination Crelate User table. If the Crelate org is provisioned before migration, we validate that all OpenCATS users have matching Crelate accounts. Users without a Crelate match enter a reconciliation queue for the admin to provision. OpenCATS role-permission structures (admin, limited-access recruiter) map to Crelate permission roles, but the mapping is reviewed against Crelate's role model during scoping because permission structures differ between platforms.

OpenCATS

Report

maps to

Crelate

None

1:1
Fully supported

OpenCATS Reports are not exportable artifacts. OpenCATS generates reports from live database queries at the moment of display; report definitions are not stored as separate objects. We do not migrate report definitions. We deliver a written list of every OpenCATS report the customer has accessed in the last 90 days with the query parameters and filter logic, so the customer's admin can recreate them in Crelate's reporting module post-migration.

OpenCATS

Custom Field

maps to

Crelate

Custom Field

lossy
Fully supported

OpenCATS custom fields added by the customer to any core object (Candidate, Job Order, Company, Contact) are stored as columns in the MariaDB schema. We audit the full OpenCATS database schema before migration, identify every custom column, map it to the equivalent Crelate custom field, and configure the destination field before importing the related records. Crelate enforces limits on custom field counts by tier, which we surface during scoping. If the customer's custom field count exceeds the Business tier limit, we recommend Business Plus or Enterprise.

OpenCATS

Pipeline / Status Configuration

maps to

Crelate

Pipeline / Status Configuration

lossy
Fully supported

OpenCATS Job Order status values (New, Open, On Hold, Cancelled, Filled) and custom status definitions map to Crelate Job Pipeline stages and status values. We extract the full status list from the OpenCATS database and recreate it as Crelate Pipelines and Stages during the schema setup phase before any record import begins. Stage probability values (if configured in OpenCATS) migrate as Crelate stage weights.

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.

OpenCATS logo

OpenCATS gotchas

High

No REST API forces database-direct migration

Medium

Resume files are filesystem references, not embedded blobs

Low

One-week import review delay in OpenCATS native imports

Medium

MySQL is unsupported — MariaDB is required

Crelate logo

Crelate gotchas

High

120 req/min API rate limit throttles bulk migrations

High

20 custom field per-entity cap forces data model decisions

Medium

15,000-record export ceiling on single operations

Medium

Sequences and automation workflows do not migrate

Low

API key is a querystring parameter, not a header

Pair-specific challenges

  • OpenCATS has no REST API — migration requires direct MariaDB access

    OpenCATS exposes no documented REST or GraphQL API. All data lives in a MariaDB database on the self-hosted server. We connect directly to that database using credentials the customer provides, confirm port 3306 (or the configured port) is accessible from our migration environment, and run SELECT queries against the live schema. If the OpenCATS server is on a private network or behind a VPN, the customer must either open port access or provide a VPN configuration before migration scoping begins. MySQL is explicitly unsupported by OpenCATS; we verify the database engine is MariaDB 10.6+ before running queries and flag any MySQL-only SQL dialect present in the customer's custom fields.

  • Resume files are filesystem paths, not database BLOBs — they require a separate transfer step

    Candidate resume files (PDF, DOC, RTF) in OpenCATS are stored as file paths on the server disk, not as binary blobs in the database. We extract all text fields cleanly during the database query phase, but the actual resume files must be transferred separately. We produce a manifest of every file path paired with its associated Candidate ID and the original filename, and the customer transfers files via SFTP to Crelate's document storage. We then re-link each file to the migrated Crelate Person record by filename matching. If the OpenCATS server filesystem has a complex directory structure, path preservation during the SFTP transfer is the customer's responsibility.

  • Crelate enforces custom field and stage limits by subscription tier

    Crelate's Business tier ($99/user/month) imposes limits on the number of custom fields and data stages a customer can configure. If the OpenCATS migration contains a large number of custom fields (common in staffing firms with highly tailored schemas), the combined custom field count across Candidates, Jobs, Organizations, and Contacts may exceed the Business tier limit. We audit the OpenCATS database schema during discovery, count all custom columns, and report whether Business Plus or Enterprise is required before migration begins. Upgrading the Crelate tier after migration requires re-importing records that reference fields beyond the tier limit.

  • OpenCATS Saved Lists require manual reconstruction in Crelate

    OpenCATS Saved Lists are membership records linking Candidates to user-created list names, stored as rows in the database with no ordering metadata. We extract the full list membership and recreate the groupings in Crelate as Tags or Lists, but Crelate's tag model differs structurally. OpenCATS list order and ranking do not transfer because the source does not store ordinal position. We deliver a written list of every OpenCATS Saved List with its member count and the most-recently-added candidates, so the customer's admin can decide whether to rebuild each list with the correct ordering in Crelate or use Tags as the equivalent.

  • OpenCATS Reports are not migratable — report definitions require manual rebuild

    OpenCATS generates reports by executing live SQL queries against the database at the moment of display; report definitions are not stored as separate exportable objects. We do not migrate OpenCATS report definitions. During discovery we query the MySQL report_history table to identify the reports the customer has accessed and the query parameters used, then deliver a written report inventory document listing every report name, its underlying filters and date ranges, and the recommended rebuild steps in Crelate's reporting module.

Migration approach

Six steps for a successful OpenCATS to Crelate data migration

  1. Discovery and database access setup

    We audit the source OpenCATS MariaDB database by querying information_schema for all custom fields, then run record-count queries across Candidates, Job Orders, Companies, Contacts, Activities, Saved Lists, Calendar Events, and Attachments. We also query the opencandidates.settings table for any custom status configurations and the report_history table for recent report access. The customer provides MariaDB credentials and confirms port accessibility from our migration environment. We verify the database engine is MariaDB 10.6+ and flag any MySQL-only SQL dialect in custom field definitions. The discovery output is a written migration scope, record-count estimate, and a Crelate tier recommendation based on the custom field count.

  2. Schema extraction and mapping design

    We extract the full OpenCATS schema including all core tables and custom columns, then design the Crelate destination schema. This includes creating any custom fields on Person, Job, Organization, and Contact that do not exist in the Crelate default schema, configuring Job Pipelines and Stages to match the OpenCATS status list, and mapping the Saved List structure to either Tags or Lists in Crelate. We validate the schema design against Crelate's API field types before any data moves.

  3. Resume file manifest and SFTP coordination

    We extract every candidate_attachment record from the OpenCATS database, producing a manifest listing each file path, filename, file type, and the associated Candidate ID. The customer reviews the manifest and initiates the SFTP transfer of resume files to Crelate's document storage. We do not transfer the files ourselves; the customer manages the file-transfer step. Once the transfer is confirmed complete, we re-link each file to the migrated Crelate Person record by matching filename against the manifest.

  4. Test migration and reconciliation

    We run a full migration into a Crelate test environment using production-like data volume. The customer's recruiting lead spot-checks 25-50 randomly selected records across Candidates, Jobs, Organizations, and Contacts, comparing field values against the OpenCATS source. Any mapping corrections — wrong status values, missing custom fields, incorrectly resolved parent lookups — are documented and applied before the production migration begins. Owner matching (OpenCATS recruiter to Crelate User by email) is validated in the test environment.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Organizations first (from Companies), then Jobs (from Job Orders), then Persons (from Candidates with Organization lookups resolved), then Contacts, then Activities. Each phase emits a row-count reconciliation report before the next phase begins. Saved Lists are processed after Candidates using the Tag or List mapping agreed during scoping. Resume files are re-linked after the Person import is complete and file transfer is confirmed. User mapping is validated during the Person import because assigned_recruiter is a required field on Job records.

  6. Cutover, validation, and Saved List rebuild handoff

    We freeze new OpenCATS writes during the cutover window, run a final delta migration of any records modified during the migration window, then enable Crelate as the system of record. We deliver the Saved List inventory document (list names, member counts, most-recent candidates) and the Report rebuild document (report names, query parameters, recommended Crelate rebuild steps) to the customer's admin. We support a one-week post-migration window to resolve any data quality issues. We do not rebuild Saved Lists or Reports inside the migration scope; these are delivered as written inventories for the admin to reconstruct.

Platform deep dives

Context on both ends of the pair

OpenCATS logo

OpenCATS

Source

Strengths

  • Zero-cost, zero-vendor-commitment ATS for teams validating recruiting workflows
  • Full database schema is self-hosted — you own all data with no extraction fees
  • Customizable branding, modules, and company logo for client-facing job boards
  • Skill tagging and list-building replace the deprecated resume parser for candidate categorization
  • Community forum and GitHub repository for self-service troubleshooting and code customization

Weaknesses

  • No official API — migrations require direct MariaDB access or CSV list exports, not real-time sync
  • MySQL is explicitly unsupported; MariaDB is required, which complicates some hosting environments
  • Resume parsing was removed from the core product; users rely on manual skill tagging instead
  • Self-administered hosting means you own security patching, backups, and server maintenance
  • Community-supported only — no SLA, no dedicated support tier, no guaranteed response times
Crelate logo

Crelate

Destination

Strengths

  • Unified ATS and CRM in a single platform reduces data synchronization overhead for recruiting teams.
  • Fast setup with guided implementation reported as a significant time saver for small teams.
  • Transparent per-seat pricing without surprise fees at the base tier.
  • Flexible custom field configuration across core objects without developer dependency.
  • Export capability supports up to 15,000 records per operation for Contacts, Companies, and Opportunities.

Weaknesses

  • API rate limit of 120 requests per minute restricts bulk migration throughput.
  • Custom field cap of 20 per entity requires field consolidation for complex recruiting schemas.
  • All advanced features (Activities, Activity Forms, Core Record Field customization) are tier-gated add-ons.
  • Customer service responsiveness receives consistent negative feedback in reviews.
  • Resume parsing quality trails competitors and generates support requests.

Complexity grading

How hard is this migration?

Standard HRMS migration. 1 of 7 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across OpenCATS and Crelate.

  • Object compatibility

    B

    1 of 7 objects need a mapping; the rest are 1:1.

  • 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

    OpenCATS: Not applicable — no public API.

  • Data volume sensitivity

    B

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

Estimator

Estimate your OpenCATS to Crelate 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 OpenCATS to Crelate data migrations

Answers to the questions buyers ask most during OpenCATS to Crelate migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your OpenCATS to Crelate migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations land between three and five weeks for accounts under 10,000 Candidates, 2,000 Job Orders, and 500 Companies. Migrations with large engagement histories (over 200,000 activity records), complex Saved List structures, or extensive custom field schemas requiring Business Plus tier configuration move to seven to twelve weeks. The Crelate team cites a typical one-to-three-week migration window for their own Standard migration tier, and FlitStack AI scoping adds two to four weeks of discovery, schema mapping, test migration, and reconciliation before the production migration window begins.

Adjacent paths

Related migrations to explore

Ready when you are

Move from OpenCATS.
Land in Crelate, 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