HRMS migration
Field-level mapping, validation, and rollback between Longlist and Crelate. We move data and schema; workflows are rebuilt natively in Crelate.
Longlist
Source
Crelate
Destination
Compatibility
6 of 12
objects map 1:1 between Longlist and Crelate.
Complexity
CModerate
Timeline
1-2 weeks
Overview
Moving from Longlist to Crelate is a migration from a Chrome-extension data-enrichment layer to a full ATS and CRM platform. Longlist exports candidate profiles as browser-captured contact records with attached email addresses, phone numbers, LinkedIn URLs, and sourcer-applied tags and list memberships. Crelate organizes candidates inside a Contact object (with an optional Candidate sub-record), linked to Companies, Jobs, and Activities. We map Longlist's enrichment fields to Crelate's custom field model, preserve list and tag source attribution as tags on the Contact, and run a duplicate-prevention pass against any existing Crelate records before final insert. Crelate's native data migration tooling (discovery, development, testing, verification, launch) is built for ATS-to-ATS moves, but Longlist's non-standard export format requires pre-processing before Crelate's import tools can consume the payload. We handle that pre-processing and the Crelate API insert using batch chunking and rate-limit handling. Workflows, tags-as-automations, and sourcing pipelines built inside Longlist do not migrate as code.
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 Longlist 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.
Longlist
Candidate Profile
Crelate
Contact
1:1Longlist candidate profiles (the primary record surfaced by the Chrome extension) map to Crelate Contact. We pre-process the Longlist export to split the composite candidate record into named fields: firstname, lastname, email, phone, linkedin_url, and source_url. Crelate's Contact record requires at minimum a Last Name; records with no name but an email are imported as Contact with the name field populated from the email local-part and a custom notes field flagging the name gap for manual enrichment.
Longlist
Candidate Profile
Crelate
Candidate (sub-record)
lossyCrelate supports an optional Candidate sub-record attached to Contact for ATS-specific candidate tracking (application status, source, rating, availability). We create a Crelate Candidate record linked to each migrated Contact when the Longlist record includes application-stage data, source attribution, or sourcer rating fields. This is a configurable mapping; the customer chooses during scoping whether Candidate sub-records are created for all migrated records or only those with explicit application data.
Longlist
Contact Details (email, phone, LinkedIn)
Crelate
Contact (standard fields)
1:1Longlist's enriched email, phone, and LinkedIn URL fields map directly to Crelate's standard Contact fields: email, phone, linkedin_url. We preserve the enrichment source (the website or database Longlist used to surface the contact) as a custom field called original_enrichment_source__c for audit and compliance.
Longlist
Tag / List Membership
Crelate
Contact Tag
lossyLonglist's tag and list membership data (applied by the sourcer during research) maps to Crelate's Contact Tag system. We create a tag record for each distinct Longlist list or tag and attach it to the corresponding Contact. Tags are non-hierarchical in Crelate; if Longlist had nested list structures, we flatten them to a single tag string and note the hierarchy path in a custom field list_path__c.
Longlist
Enrichment Fields (custom metadata)
Crelate
Custom Fields
lossyLonglist enrichment fields that do not map to a Crelate standard Contact field (for example, company_headcount, seniority_level, tech_stack, or any proprietary sourcer-added field) are routed to Crelate custom fields created before migration. We map Longlist's field data types to Crelate's custom field types (Short Answer for text, Picklist for controlled values, Date for timestamps, Numeric for numbers). Crelate's Business tier supports up to 10 advanced custom fields; Crelate's Business Plus tier increases this limit. We flag any migration that requires more than 10 custom fields for the customer's admin to confirm the tier before import.
Longlist
Source URL / Page of Enrichment
Crelate
Custom Field (text)
1:1Longlist captures the source page or URL from which a contact was enriched (for example, a LinkedIn profile URL or a company directory page). We store this in a custom text field source_url__c on the Crelate Contact for compliance and audit. This field is distinct from linkedin_url and captures the full context of where the contact data was found.
Longlist
Date of Enrichment / Capture Date
Crelate
Contact Created Date or Custom Date Field
1:1Longlist records carry a capture or enrichment timestamp. We map this to Crelate's Contact CreatedDate when it represents the original record creation in Longlist, and to a custom date field enrichment_date__c when it represents the specific enrichment event rather than the record creation date. We flag this distinction during scoping based on the customer's data retention requirements.
Longlist
Longlist List / Group
Crelate
Tag or Custom Field (picklist)
lossyLonglist organizes candidates into named lists or groups that represent a sourcing campaign or talent pool. We map each distinct Longlist list name to either a Crelate Tag (recommended for fewer than 50 distinct lists) or a custom picklist field talent_pool__c with each list name as a picklist value. The customer chooses the strategy during scoping. Multi-list memberships on a single candidate are handled as multiple tag attachments or a multi-select picklist depending on the chosen approach.
Longlist
Company Name (from enrichment)
Crelate
Company
1:1Longlist candidate records often include an employer or current company name from the enrichment data. We create a Crelate Company record for each distinct company name found in the Longlist export, then link the Contact to the Company via a lookup. This requires a two-phase import: Companies first, then Contacts with the CompanyId resolved. Companies with no additional data (no address, no industry) are created with name only and flagged for the customer to enrich post-migration.
Longlist
Longlist Notes / Sourcer Comments
Crelate
Contact Notes
1:1Any notes or comments the sourcer added inside Longlist to a candidate record migrate as Crelate Contact Notes. Notes are attached to the Contact via ContentDocumentLink. We preserve the original note body, the sourcer's name (mapped to a custom field added_by__c if the sourcer is not a Crelate User), and the original creation timestamp.
Longlist
Candidate Status / Availability
Crelate
Candidate Custom Field or Contact Custom Field
lossyIf the Longlist export includes a candidate status field (active, passive, contacted, not_interested), we map it to a Crelate custom picklist field candidate_status__c on the Contact or Candidate object. Crelate's standard Contact object does not have a native availability field; the customer selects which object carries this field during scoping.
Longlist
Deduplication Key (email)
Crelate
Duplicate Detection
lossyCrelate enforces email-based duplicate detection by default. We run a pre-migration duplicate check against any existing Crelate Contacts using the email address as the dedupe key. Longlist records matching an existing Crelate Contact are flagged for the customer's review: options include skipping the record, merging into the existing Contact, or overwriting with Longlist data. This step is required before any insert to prevent duplicate Contact records in Crelate.
| Longlist | Crelate | Compatibility | |
|---|---|---|---|
| Candidate Profile | Contact1:1 | Fully supported | |
| Candidate Profile | Candidate (sub-record)lossy | Fully supported | |
| Contact Details (email, phone, LinkedIn) | Contact (standard fields)1:1 | Fully supported | |
| Tag / List Membership | Contact Taglossy | Fully supported | |
| Enrichment Fields (custom metadata) | Custom Fieldslossy | Mapping required | |
| Source URL / Page of Enrichment | Custom Field (text)1:1 | Fully supported | |
| Date of Enrichment / Capture Date | Contact Created Date or Custom Date Field1:1 | Fully supported | |
| Longlist List / Group | Tag or Custom Field (picklist)lossy | Fully supported | |
| Company Name (from enrichment) | Company1:1 | Fully supported | |
| Longlist Notes / Sourcer Comments | Contact Notes1:1 | Fully supported | |
| Candidate Status / Availability | Candidate Custom Field or Contact Custom Fieldlossy | Fully supported | |
| Deduplication Key (email) | Duplicate Detectionlossy | 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.
Longlist gotchas
Outreach history (email sequences, SMS, WhatsApp) must be extracted to preserve candidate context
Resume parsing data is a separate artifact from the original file
Chrome extension scope vs CRM scope creates data lineage questions
Integrated phone / SMS depends on telephony provider configuration
Crelate gotchas
120 req/min API rate limit throttles bulk migrations
20 custom field per-entity cap forces data model decisions
15,000-record export ceiling on single operations
Sequences and automation workflows do not migrate
API key is a querystring parameter, not a header
Pair-specific challenges
Migration approach
Discovery and export extraction
We audit the Longlist workspace for all candidate records, list memberships, tag structures, and enrichment field columns. The customer triggers a manual export from the Longlist browser interface and delivers the CSV or JSON file to us. We count distinct records, enumerate all field columns, assess list and tag diversity, and identify any composite fields requiring pre-processing. We also review the destination Crelate org for existing Contacts and assess the custom field limit against the enrichment column count. The discovery output is a written data map and a pre-processing specification that the customer approves before development begins.
Schema preparation in Crelate
We create any custom fields required for Longlist enrichment data that has no Crelate standard field equivalent. This includes naming each custom field, assigning its data type (text, picklist, date, numeric), and configuring picklist values for any controlled-vocabulary fields (seniority levels, technology stacks, candidate status). Custom fields are created in the customer's Crelate environment using admin credentials we request at kickoff. We also configure the duplicate detection settings and confirm the dedupe key is set to email for the migration window.
Pre-processing and field normalization
We transform the Longlist export into a Crelate-compatible import format. This includes splitting combined name fields into firstname and lastname, routing non-standard column names to their Crelate equivalents, mapping Longlist list and tag memberships to Crelate Tags, enriching company names with a Company record lookup, and applying the duplicate-resolution decisions from the pre-migration scan. Any records flagged during discovery as unresolvable (no email, no name, corrupted data) are documented in a separate row in the output file and excluded from the primary migration pass.
Company import (phase one)
We import distinct Company records into Crelate before any Contact import. This satisfies the Crelate Contact's CompanyId lookup requirement. Companies are imported from the normalized Longlist export by extracting the employer name from each candidate record, deduplicating the company list, and inserting the unique set into Crelate. Each Company record is created with the name field populated; additional fields (address, industry, website) are added where available in the Longlist enrichment data.
Contact and Candidate import (phase two)
We import all resolved Longlist candidate records into Crelate as Contacts, attaching each to its corresponding Company record via the CompanyId lookup. Tags are created and attached in the same pass. We then create Candidate sub-records for any Longlist records that carry application-stage, source, or rating data, linking each Candidate to its parent Contact. We use batch chunking with Crelate's API rate limits to prevent throttling. Each phase emits a row-count reconciliation report showing records inserted versus records skipped or held.
Cutover, validation, and handoff
We perform a final delta pass to capture any Longlist records modified or added during the migration window. The customer validates a random sample of migrated records against the source export, confirms tag coverage, and signs off on go-live. We deliver a written migration report with record counts by object, any records not migrated with their reason, and a tag coverage summary. We do not rebuild Longlist sourcing workflows or tag-based automation as Crelate workflows; we document the existing automation logic in plain language for the customer's admin to rebuild in Crelate's workflow builder post-migration.
Platform deep dives
Longlist
Source
Strengths
Weaknesses
Crelate
Destination
Strengths
Weaknesses
Complexity grading
Moderate HRMS migration. 1 of 7 objects need a manual workaround.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Longlist and Crelate.
Object compatibility
1 of 7 objects need a manual workaround.
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
Longlist: Not publicly documented — no published rate limits..
Data volume sensitivity
Longlist 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 Longlist to Crelate migration scoping. Not seeing yours? Book a call.
Walk through your Longlist to Crelate migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Longlist
Other ways to arrive at Crelate
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.