Skip to main content

Overview

If a candidate’s CV is not readily available, you can import their profile directly from LinkedIn. Paste a LinkedIn profile URL into Recruitier, and the platform retrieves the candidate’s professional information — including work history, education, skills, and location — and creates a complete candidate profile using the EnrichLayer API. This is particularly useful when you discover candidates through LinkedIn searches, InMail conversations, referrals, or networking events and want to add them to your talent pool quickly without waiting for a CV. The import process builds a synthetic CV from the LinkedIn data, so the candidate is fully ready for AI job matching without needing a separate document upload.

How to Import from LinkedIn

1

Open the Upload Wizard

Go to the Candidates section and click the Upload CV button. In the wizard dialog that opens, switch to the LinkedIn URL tab at the top of the first step.
2

Paste the LinkedIn URL

Enter the candidate’s LinkedIn profile URL. The URL should follow one of these formats:
https://www.linkedin.com/in/candidate-name/
https://linkedin.com/in/candidate-name
https://www.linkedin.com/in/candidate-name
Both www.linkedin.com and linkedin.com URLs are accepted. Trailing slashes are handled automatically. The URL is normalized internally — trailing slashes are stripped and the comparison is case-insensitive — so linkedin.com/in/John-Doe/ and linkedin.com/in/john-doe are treated as the same profile.
You can copy the URL directly from your browser’s address bar when viewing the candidate’s LinkedIn profile. Make sure the URL contains /in/ followed by the candidate’s profile slug — this is the standard format for LinkedIn personal profiles.
3

Profile Data Is Retrieved

Recruitier uses the EnrichLayer API to retrieve the candidate’s publicly available LinkedIn data. This is a professional enrichment service that provides structured data from LinkedIn profiles. The retrieval typically completes within a few seconds.The following data is imported:
Data FieldDescriptionExample
Full NameCombined from first and last name fields. If a full_name field is available, it takes precedence.”Jan de Vries”
HeadlineCurrent role or professional tagline from the LinkedIn headline field”Senior Python Developer at TechCorp”
SummaryThe “About” section text from the LinkedIn profileProfessional summary paragraph
Work ExperienceJob titles, companies, dates, and descriptions (up to 8 most recent positions)Title, company, start/end dates, description
EducationDegrees, institutions, fields of study (up to 4 entries)“MSc Computer Science, TU Delft”
SkillsSkills listed on the LinkedIn profile (if publicly visible)[“Python”, “FastAPI”, “PostgreSQL”]
LocationCity, state, and country from the profile”Amsterdam, North Holland, Netherlands”
The system also automatically calculates years of experience and experience level from the work history dates.
4

Experience Calculation

The system analyzes the imported work history to determine two key fields:Years of Experience: Calculated from the sum of all work experience durations. Each position’s duration is computed from its start and end dates. Overlapping positions (concurrent roles) are counted individually, which may result in total years exceeding calendar time.Experience Level: Derived directly from the calculated years of experience using these thresholds:
Years of ExperienceAssigned Level
0 - 2 yearsJunior
3 - 5 yearsMedior
6 - 10 yearsSenior
11+ yearsLead
The experience level assignment is automatic but fully editable. If you believe a candidate’s seniority does not match their years of experience (for example, a career changer with 15 years in a different field who is junior in tech), you can adjust the experience level during the review step. The experience level influences the matching algorithm, so getting it right matters.
5

Skills Are Extracted

Skills come from two possible sources, with a clear priority order:Primary: LinkedIn Skills Section If the LinkedIn profile includes listed skills, those are imported directly with a confidence score of 0.80. This is a high-confidence score because these are skills the candidate explicitly self-reported on their LinkedIn profile.Fallback: AI Extraction If the profile does not have publicly visible skills (or the skills section is empty), the AI falls back to extracting skills from the candidate’s headline, summary, and work experience descriptions. This uses the same Gemini-powered extraction logic as CV upload, with variable confidence scores based on how explicitly each skill was mentioned.In both cases, skills go through the same normalization pipeline used for CV uploads — the SKILL_ALIASES taxonomy maps over 1,000 variations to canonical forms. “React.js” from LinkedIn becomes the same “react” as “ReactJS” from a CV.
LinkedIn skills with a confidence of 0.80 sit between AI-extracted skills from CVs (typically 0.95+ for explicit mentions) and the legacy default (0.70 for imported skills without clear provenance). The 0.80 score reflects high confidence with a small margin for the fact that LinkedIn skills are self-reported and may include aspirational or outdated technologies.
6

Review Profile

Just like the CV upload flow, you are presented with the candidate’s name and job title for review. Both fields are pre-filled but fully editable. The wizard checks for duplicate names.Pay particular attention to:
  • Title/Headline: LinkedIn headlines are often marketing-oriented (“Passionate about building scalable solutions”). Consider editing to a more standard job title for better matching.
  • Name: Verify the name was correctly combined from the LinkedIn profile data.
7

Review Skills

Review the AI-extracted skills with confidence scores. Toggle skills on or off, remove irrelevant ones, and add any that are missing. You can also skip this step.
8

Set Location and Start Matching

Configure the candidate’s location using the autocomplete field and set the search radius (default 40 km, adjustable from 5 km to 200 km). Once you click Start Matching, the wizard completes and the full 5-stage AI job matching pipeline starts automatically in the background.You are redirected to the candidate detail page where real-time progress updates show each matching stage as it executes.
Additional preferences like salary expectations, job type, and flexibility can be configured later from the candidate’s profile edit dialog.

What Data Is Extracted in Detail

Profile Information

  • Name: Combined from first and last name fields. If the full_name field is available from the API, it takes precedence over the combined first/last name to ensure accuracy with multi-part names.
  • Title/Headline: The LinkedIn headline, which typically describes the candidate’s current role or professional identity (e.g., “Senior Data Engineer | Python | Spark | AWS”). If no headline exists, the title from the most recent work experience is used as a fallback.
  • Location: Built from city, state, and country fields from the LinkedIn profile. This location string is automatically geocoded to latitude/longitude coordinates using the GeocodingService (Dutch city list, then Nominatim API, then AI normalization) for distance-based matching.
  • Summary: The “About” section from the LinkedIn profile. This text provides professional context and is incorporated into the synthetic CV text used for matching.

Experience and Education Details

Work history and education are imported with specific limits to balance completeness with processing efficiency:
Up to 8 most recent positions are imported, each including:
  • Job title
  • Company name
  • Start and end dates (or “Present” for current roles)
  • Description/responsibilities text
These positions are used to:
  1. Calculate total years of experience
  2. Determine experience level (Junior/Medior/Senior/Lead)
  3. Build the synthetic CV text used for AI scoring
  4. Provide context for the Experience vector embedding

Synthetic CV Text

Since LinkedIn imports do not have an actual CV file, Recruitier generates a structured text representation of the candidate’s profile. This “synthetic CV” is assembled from the imported data in a specific format:
[Name]
[Headline]
[Location]

[Summary]

Experience:
- [Title] at [Company] ([Start] - [End])
  [Description]
(up to 8 positions)

Education:
- [Degree] in [Field] at [Institution] ([Dates])
(up to 4 entries)

Skills:
[Comma-separated skill list]
This synthetic CV text is stored on the candidate’s cv_text field and serves the same purpose as extracted CV text from uploaded documents:
  • It is used to generate the Experience vector embedding for semantic search
  • It is sent to the AI during scoring (up to 8,000 characters) for evaluating match quality
  • It provides the professional context needed for accurate role fit and experience fit assessment
The synthetic CV text is stored on the candidate profile and used for all subsequent matching and scoring operations. You do not need to upload a separate CV for LinkedIn-imported candidates. The synthetic text provides sufficient context for the AI to produce quality match scores.

When to Use LinkedIn Import vs. CV Upload

ScenarioRecommended MethodRationale
You have the candidate’s CV fileCV UploadProvides the most detailed extraction. CV text is richer and skills get higher confidence (0.95+).
Candidate was found via LinkedIn searchLinkedIn ImportFastest path to a profile. No need to request a CV first.
Candidate has a sparse LinkedIn profileCV UploadA CV typically contains more detail than a minimal LinkedIn profile.
You want structured work history and education dataLinkedIn ImportEnrichLayer provides cleanly structured employment data with dates.
Candidate’s CV is a scanned imageLinkedIn ImportAvoids OCR issues entirely. LinkedIn data is always text-based.
You need email and phone numberCV UploadLinkedIn does not expose contact details publicly through the API.
Candidate is a career changerCV UploadThe full CV narrative gives the AI more context to understand the transition.
You need to add candidates quickly in bulkLinkedIn ImportFaster per-candidate than the CV upload review process.
If you have both a CV and a LinkedIn URL, uploading the CV is generally the better choice for matching quality. CVs contain more detailed skill descriptions (yielding 0.95+ confidence vs. 0.80 for LinkedIn skills) and often include contact information that LinkedIn does not expose. You can always add the LinkedIn URL to the candidate’s profile later for reference.

Limitations

LinkedIn imports do not include email addresses or phone numbers. This data is not publicly available through the EnrichLayer API. If you need contact details, you will need to add them manually to the candidate profile after import, obtain them through InMail or direct conversation, or use a separate contact enrichment tool.
The import relies on publicly available LinkedIn data accessed through the EnrichLayer API. If a candidate has heavily restricted privacy settings, some information may be unavailable. In such cases, the import will still succeed with whatever data is accessible, but the profile may be less complete — particularly the skills section and detailed work descriptions.
Recruitier checks for duplicate LinkedIn URLs within your account using normalized URL comparison. If you try to import a candidate whose LinkedIn URL has already been used, you receive a conflict error with the existing candidate’s name.The normalization handles common URL variations:
  • Trailing slashes: linkedin.com/in/john-doe/ = linkedin.com/in/john-doe
  • Case differences: linkedin.com/in/John-Doe = linkedin.com/in/john-doe
  • www prefix: www.linkedin.com/in/john-doe = linkedin.com/in/john-doe
This prevents accidental duplicates when the same LinkedIn URL is entered in slightly different formats.
Not all LinkedIn profiles have publicly visible skills. When skills are not available from the API, the AI falls back to extracting them from the candidate’s summary and experience descriptions. This fallback works well but typically produces lower confidence scores (variable, based on extraction context) compared to directly imported LinkedIn skills (0.80 fixed).Profiles with very limited public information may produce a sparse skill set. In these cases, manually adding skills during the review step is especially important.
Only the 8 most recent work experiences are imported. For candidates with extensive careers (15+ positions), older roles are not captured. If older experience is relevant to the candidate’s current job search, you can add key details to the candidate’s summary field.Similarly, only 4 education entries are imported. For candidates with multiple degrees or certifications, you may need to add missing entries manually.
Years of experience is calculated by summing all position durations individually. If a candidate held two positions simultaneously (e.g., a consulting role alongside a permanent position), both durations count toward the total. This can result in calculated years exceeding actual calendar years. The experience level may need manual adjustment in these cases.

After Import

Once a LinkedIn profile is imported, the candidate follows the exact same workflow as a CV-uploaded candidate:
  1. Review and confirm the extracted profile — Pay special attention to the headline/title, as LinkedIn headlines are often marketing-oriented rather than standard job titles
  2. Confirm skills — Especially important when the AI used fallback extraction from experience descriptions rather than importing LinkedIn-listed skills
  3. Set location and search preferences — Configure radius, salary, job types, and flexibility
  4. AI matching runs automatically — The full 5-stage pipeline executes in the background
Always confirm the extracted skills before relying on match results. LinkedIn-listed skills are self-reported and may include outdated technologies, aspirational skills, or tools the candidate used briefly years ago. A quick review ensures the matching engine targets the right opportunities. Remember that skills carry 45% of the vector search weight — inaccurate skills significantly degrade match quality.

Advanced

How the EnrichLayer Integration Works

The LinkedIn import uses the EnrichLayer API, a professional data enrichment service. Here is the technical flow:
  1. URL Validation: The system validates that the provided URL is a properly formatted LinkedIn profile URL (must contain /in/ path segment)
  2. API Request: The normalized URL is sent to the EnrichLayer API endpoint, which returns structured profile data in JSON format
  3. Data Mapping: The API response is mapped to Recruitier’s candidate entity fields:
    • full_name or first_name + last_name maps to candidate name
    • headline maps to candidate title
    • location fields are combined and geocoded
    • experiences array is processed for duration calculation
    • skills array is normalized through SKILL_ALIASES
  4. Synthetic CV Generation: A text representation is assembled from all imported data
  5. Profile Creation: The candidate record is created with all mapped data

Confidence Score Hierarchy

Different data sources produce different confidence levels for skills. Understanding this hierarchy helps you interpret the skill review screen:
SourceConfidence ScoreRationale
AI extraction from CV (explicit mention)0.95+Highest confidence — skill explicitly stated in the document
LinkedIn profile skills section0.80High confidence — candidate self-reported the skill
AI extraction from LinkedIn text (fallback)Variable (0.60-0.90)Depends on how explicitly the skill was mentioned in descriptions
Legacy/unknown source0.70Default score for imported skills without clear provenance
When reviewing skills, use these confidence levels as a guide for where to focus your attention. Skills at 0.80 (LinkedIn-imported) are generally reliable but worth a quick verification. Skills below 0.70 deserve closer scrutiny.

How Synthetic CV Text Affects Matching

The synthetic CV is not just a convenience display — it actively drives matching quality:
  • Experience Vector: The synthetic CV text is used to generate the Experience embedding vector (20% of semantic search weight). A richer synthetic CV produces a better Experience vector, which captures domain knowledge, industry context, and work complexity that skills and titles alone cannot represent.
  • AI Scoring Input: During Stage 5 of matching, the synthetic CV text (up to 8,000 characters) is sent to the AI alongside each job description. The AI uses this to evaluate role fit, experience fit, and secondary fit with specific evidence from the candidate’s background.
  • Query Generation: The synthetic CV text also influences how search queries are generated in Stage 2 of matching. The AI reads the candidate’s background to generate diverse, relevant search strategies.
Enrich the synthetic CV manually if needed. If you know additional details about the candidate — perhaps from a phone screening or interview notes — you can add them to the candidate’s summary field. This summary is incorporated into the AI’s context during matching and scoring, effectively enriching the synthetic CV with insider knowledge.

Duplicate Detection Logic

The duplicate detection system normalizes LinkedIn URLs before comparison to prevent false negatives:
  1. Protocol and www prefix are stripped
  2. Trailing slashes are removed
  3. The entire URL is lowercased
  4. The comparison is performed on the normalized form
This means the following URLs all resolve to the same identity:
  • https://www.linkedin.com/in/Jan-de-Vries/
  • https://linkedin.com/in/jan-de-vries
  • http://www.linkedin.com/in/jan-de-vries/
If a duplicate is detected, you receive a conflict error that includes the existing candidate’s name, helping you decide whether to update the existing profile or investigate the conflict.

Power-User Tips

Import first, refine later. When sourcing candidates from LinkedIn, import profiles as quickly as possible to build your pipeline. You can return later to refine skills, update titles, and set precise preferences. The import captures enough data for initial matching, and you can improve accuracy incrementally.
Edit LinkedIn headlines to standard titles. LinkedIn headlines like “Passionate Full-Stack Engineer | Building the Future of FinTech” are great for personal branding but poor for matching. Edit the title to something like “Senior Full-Stack Engineer” for better Title vector alignment. The Title vector carries 35% of the semantic search weight.
Use LinkedIn import for candidates with scanned CVs. If a candidate only has a scanned PDF that cannot be processed by the CV upload pipeline (image-only, no text), LinkedIn import is the best alternative. The EnrichLayer API always returns structured text data regardless of the candidate’s CV format.