Skip to main content

Overview

Once a candidate is added to Recruitier — whether through CV upload or LinkedIn import — their profile becomes the foundation for everything that follows: skill confirmation, job matching, pipeline tracking, and outreach. The candidate profile contains over 40 fields covering identity, contact information, skills with confidence scores, location data, preferences, embedding state, and scoring configuration. Keeping profiles accurate and up-to-date directly impacts the quality of AI-generated matches. A candidate’s title influences 35% of the semantic search weight, their skills influence 45%, and their location determines whether jobs are included, penalized, or excluded entirely. This guide covers how to view, edit, search, and manage your candidate profiles.

The Candidate List

The candidate list is your primary view for managing all candidates in your account. Access it by navigating to the Candidates section from the main sidebar.

What You See

Each candidate in the list displays:
  • Name — The candidate’s full name (unique per account), with email shown below if available
  • Title — Their current or target job title
  • Skills — A preview of their top 3 skills as badges, with a “+N” indicator if they have more
  • Experience — Experience level (Junior, Medior, Senior, Lead) with years of experience
  • Added — The date the candidate was created
  • Actions — Download CV button (if a CV file was uploaded) and delete button

Pagination

The candidate list is paginated to keep the interface responsive, even with large candidate pools. You can navigate between pages and control how many candidates are displayed per page. The default page size provides a balance between overview and performance.
Active candidates with confirmed skills (skills_confirmed = true) are the ones that receive the best quality job matches. Candidates without confirmed skills can still receive matches, but the results will be less precise. Look for the status indicator to quickly identify candidates that need skill confirmation.

Searching and Filtering Candidates

As your candidate pool grows, finding specific candidates quickly becomes essential. Recruitier provides several search and filter mechanisms. Use the search bar at the top of the candidate list to search by:
  • Name — Find candidates by first or last name (partial matching supported)
  • Title — Search by job title or role description
  • Skills — Filter by specific technical or professional skills
The search is performed across multiple fields simultaneously, so a query like “Python Amsterdam” would match candidates who have Python as a skill and Amsterdam as a location.

Sorting

Sort the candidate list by clicking the column headers:
  • Name (alphabetical) — Click the Name column header to sort alphabetically
  • Date added (newest/oldest first) — Click the Added column header to sort by creation date
Sort by date added (newest first) to quickly find candidates you recently imported who may still need skill confirmation or preference setup. These are the candidates most likely to need your attention.

The Candidate Detail Page

Click on any candidate to open their full profile. The detail page is organized into several sections that give you a complete view of the candidate and their matching activity.

Profile Header

The top section displays the candidate’s core identity:
  • Full name — The candidate’s name (editable, must be unique within your account)
  • Current title — Job title or professional headline
  • Location — Geocoded location with normalized city/region display
  • Contact information — Email and phone number (if available)
  • LinkedIn URL — Link to their LinkedIn profile (if imported from LinkedIn or manually added)
  • Experience level — Junior, Medior, Senior, or Lead
  • Years of experience — Total professional experience calculated from work history
The experience level and years of experience are calculated during the initial import (either from CV analysis or LinkedIn work history). They are not automatically recalculated when you edit the profile. If you change a candidate’s experience level manually, this change is preserved and used for all subsequent matching.

Skills Section

Displays the candidate’s skills with their management state:
  • Skill name — The normalized skill (displayed with proper capitalization)
  • Confidence score — How certain the AI was about this skill (0.60-0.95+ for CV extraction, 0.80 for LinkedIn import)
  • Confirmation status — Whether the skill has been confirmed by a recruiter
The skills_confirmed flag on the profile indicates whether the recruiter has completed the skill review process. This flag is the gate for production-quality matching. See Skills & Expertise for the complete guide to skill management.

Matches Section

The matches section is the main area of the candidate detail page. It includes several features: Stats Bar: When matches exist, a compact stats bar shows aggregate counts: total matches, favorited, applied, and rejected. View Modes: Toggle between two views using the list/kanban buttons:
  • List view — A scrollable list of matches sorted by score, with full details visible on each card
  • Pipeline view — A 4-column Kanban board (New Matches, Favorited, In Progress, Placed) for drag-and-drop workflow management
Filters (list view only):
  • New — Show only unreviewed new matches
  • Recently Added — Show only matches from the most recent matching run
Match Cards (in list view): Each match card displays:
  • Job title with link to the job detail page, plus an external link to the original job posting
  • Company name (clickable to view company details), location, experience level, and salary (when available)
  • Match score with a color-coded progress bar: green (80%+), yellow (60-79%), red (below 60%)
  • AI explanation — Natural language summary of why this match is a good fit
  • Key matching points — Green badges highlighting the strongest reasons for the match
  • Potential concerns — Orange badges highlighting possible issues to consider
  • Action buttons — Favorite/unfavorite, status dropdown (move to any stage), Find Contacts (discover hiring contacts at the company), and reject
AI Searches Section: A collapsible card shows the history of AI search runs for this candidate, including the search name, keywords used, and state (done or in progress). Find Contacts: On each match card, a “Find Contacts” button lets you discover hiring contacts at the matched company. Once contacts are found, the button changes to show a green checkmark with “Contacts” to indicate available contact information.

CV Download

If the candidate was added via CV upload, you can download the original CV file at any time from the profile page. The file is stored in the database as a LargeBinary field in its original format (PDF, DOCX, or TXT). For LinkedIn-imported candidates, the synthetic CV text is available but there is no downloadable file.

Editing a Candidate Profile

Editing Basic Information

You can edit any field on the candidate profile at any time:
1

Open the Candidate Profile

Click on the candidate from the candidate list to open their detail page.
2

Click Edit

Click the edit button or icon on the section you want to modify. Different sections (identity, location, preferences, skills) have their own edit controls.
3

Make Your Changes

Update the fields as needed. Common edits include:
  • Name — Correct spelling or formatting (must remain unique within your account)
  • Title — Update to reflect the candidate’s current target role (this affects the Title vector, 35% of search weight)
  • Location — Change if the candidate has relocated or prefers a different area (triggers geocoding and can trigger re-matching)
  • Contact details — Add or update email and phone number
  • Summary — Add recruiter notes or refine the professional summary
  • Experience level — Adjust if the auto-calculated level does not match the candidate’s actual seniority
4

Save

Save your changes. The profile is updated immediately. Depending on which fields changed, the system may automatically trigger additional processing (geocoding for location changes, re-matching for location or skill changes).

Editing Location

When you update a candidate’s location, Recruitier automatically geocodes the new address to latitude/longitude coordinates through the GeocodingService pipeline:
  1. Dutch city database — First checks against a comprehensive list of Dutch cities
  2. Nominatim API — Falls back to the Nominatim geocoding API for locations not in the Dutch database
  3. AI normalization — Uses AI-based normalization for ambiguous or non-standard location strings
If you provide a location string without explicit coordinates, the system geocodes it automatically. If coordinates are already set (for example, from the Google Maps autocomplete picker), those take precedence.
Changing a candidate’s location, latitude, longitude, or preferred search radius triggers an automatic re-match. The system recognizes that these changes affect which jobs are geographically relevant and runs the matching pipeline with the updated parameters. Protected matches (favorited, applied, contacted, interviewing, offer stage, placed) are preserved during re-matching.

Editing Skills

Skills can be added, removed, or modified from the candidate’s profile at any time. The system uses intelligent change detection:
  • Skills are compared case-insensitively and order-independently
  • “Python” and “python” are considered the same skill
  • Reordering skills without adding or removing any does not count as a change
  • Only actual additions or removals are detected as changes
When a genuine skill change is detected, the system can trigger a re-match to find new opportunities that align with the updated skill set. The new matching run adds new jobs and passes exclude_job_ids for protected matches, ensuring your pipeline progress is preserved. See Skills & Expertise for the complete guide to skill management.

Editing Scoring Weights

Each candidate has four configurable scoring weights that control how the AI scoring dimensions are combined:
WeightDefaultPurpose
weight_skills0.35How much skills fit matters in the final score
weight_role0.30How much role fit matters
weight_experience0.20How much experience fit matters
weight_secondary0.15How much secondary factors matter
These weights must always sum to 1.0. Adjusting them allows you to customize matching priorities for different types of candidates and roles.
For a career changer, decrease weight_role (their previous roles do not match their target) and increase weight_skills (they may have acquired relevant skills through bootcamps or self-study). For a leadership position, increase weight_experience and decrease weight_skills.

Deleting a Candidate

If you need to remove a candidate from your account:
  1. Open the candidate’s profile
  2. Click the Delete option
  3. Confirm the deletion
Deleting a candidate is a soft delete — the record is marked as inactive rather than permanently removed from the database. This preserves data integrity for any existing matches, searches, pipeline records, and activity logs associated with the candidate. The candidate will no longer appear in your active candidate list, and matching will stop, but the data remains for audit and recovery purposes.

Duplicate Name Detection

Recruitier prevents you from having two candidates with the exact same name within your account. If you try to create or rename a candidate to a name that already exists, you receive a conflict error. This is a safeguard to prevent confusion in your candidate pool. The duplicate check is case-sensitive, so “Jan de Vries” and “jan de vries” are technically different, but we recommend keeping names consistently formatted.
If you legitimately have two candidates with the same name, add a distinguishing detail to one of the names. For example: “Jan de Vries (Amsterdam)” vs. “Jan de Vries (Rotterdam)”, or “Jan de Vries (Senior)” vs. “Jan de Vries (Junior)”. This keeps your candidate list clear and prevents confusion.

Candidate Limits by Plan

The number of active candidates you can maintain depends on your subscription plan:
PlanCandidate LimitNotes
Free3 candidatesBest for trying the platform before upgrading
ProUnlimitedFull access, even during trial period
AgencyUnlimitedFull access with additional agency features
Pro and Agency users have unlimited candidates even during a trial period. Only the Free plan enforces candidate limits. If you reach the Free tier limit of 3 candidates, you need to upgrade or deactivate existing candidates before adding new ones.

Best Practices

Keep Profiles Current

When a candidate updates their CV, gains a new certification, changes their job preferences, or relocates, update their Recruitier profile. Outdated information leads to irrelevant matches. A profile update can trigger re-matching that surfaces new opportunities.

Use Consistent Naming

Adopt a naming convention for your candidates (e.g., always “First Last” without titles like “Mr.” or “Ir.”). This makes searching and sorting more reliable across your entire candidate pool.

Add Context in the Summary

The summary field is not just for the candidate’s own words. Use it to add recruiter notes: availability dates, preferred company sizes, deal-breakers, interview notes, or special considerations. This context helps you remember details that the AI cannot infer from the CV.

Verify High-Impact Fields First

When reviewing a profile, prioritize verifying the title (35% of search weight), skills (45% of search weight), and experience level before spending time on cosmetic edits. These three fields have the biggest impact on match quality.

Advanced

How Profile Changes Trigger Re-Matching

Not all profile changes are equal. The system tracks specific fields and uses change detection logic to determine when re-matching is warranted:
The following changes are detected as re-match triggers:
  • Skills — Adding, removing, or changing confirmed skills (case-insensitive, order-independent comparison)
  • Location — Changing the location string
  • Latitude/Longitude — Changing the geocoded coordinates
  • Preferred radius — Changing the search radius in km
When any of these fields change, the matching pipeline runs again with updated parameters. Protected matches (favorited, applied, contacted, interviewing, offer stage, placed) are never removed during re-matching. The system passes exclude_job_ids for protected matches to avoid creating duplicates.
Changes to these fields update the profile but do not trigger automatic re-matching:
  • Name, email, phone number
  • Summary text
  • LinkedIn URL
  • Scoring weights (these affect how scores are calculated, but require a manual re-match to apply)
  • Salary expectations
  • Job type preferences
  • Flexibility preferences
If you update scoring weights or preferences and want new matches, you can manually trigger a re-match from the candidate profile.
When re-matching is triggered:
  1. The system loads all existing matches for the candidate
  2. Protected matches (any status except “pending”) are identified
  3. The job IDs of protected matches are collected into an exclude list
  4. The full 5-stage matching pipeline runs with the updated profile
  5. New matches are added alongside existing protected matches
  6. Old pending matches that are no longer relevant may be replaced

The Candidate Entity Data Model

Each candidate profile contains a rich set of fields organized by purpose: Identity fields: name (required, unique per account), email, phone, linkedin_url Professional fields: title, summary, experience_level (junior/medior/senior/lead), years_of_experience, education_level Skills fields: skills (JSONB array of skill names), skills_with_confidence (JSONB array of {"name": "Python", "confidence": 0.95, "confirmed": false}), skills_confirmed (boolean gate for matching quality) Location fields: location (display string), latitude, longitude, normalized_location Preferences fields: preferred_job_types (JSONB), preferred_flexibility (JSONB), preferred_locations (JSONB), preferred_radius, salary_expectation_min, salary_expectation_max CV data: cv_text (up to 50,000 characters), cv_file (LargeBinary, original uploaded file) Scoring configuration: weight_skills (0.35), weight_role (0.30), weight_experience (0.20), weight_secondary (0.15) Embedding state: is_embedded (boolean), embedded_at (timestamp)

How Candidate Data Flows Through the Platform

Understanding the data flow helps you make better decisions about what to prioritize when managing profiles:
  1. Title flows to the Title vector embedding (35% of semantic search weight) and influences role fit scoring
  2. Skills flow to the Skills vector embedding (45% of search weight) and drive skills fit scoring. Only confirmed skills are used for scoring.
  3. CV text flows to the Experience vector embedding (20% of search weight) and is sent to AI scoring (up to 8,000 chars)
  4. Location + radius controls geographic filtering (within radius = full score, 1x-2x = penalty, beyond 2x = excluded)
  5. Scoring weights control how the four AI dimensions are combined into the final score
  6. Preferences (job type, flexibility) are applied as filters during the vector search stage

Power-User Tips

Use the summary field as a CRM notes area. Store key information from your conversations with the candidate: availability date, minimum salary they mentioned verbally (which may differ from the profile setting), preferred company culture, interview feedback, or reasons they left their last role. This information is invaluable when discussing matches with the candidate.
Batch your profile reviews. Instead of perfecting each profile at upload time, do a quick initial setup (name, title, skills confirmation, basic location) and then schedule a dedicated time to refine all profiles. This lets matching start immediately while you optimize later.
Watch the embedding state. If a candidate shows is_embedded = false or has not been embedded recently, their vector search results may be outdated. Triggering a manual re-match ensures fresh embeddings and up-to-date search results.
Candidate deletion is a soft delete by design. If you accidentally delete a candidate, the data is still in the database and can be recovered. Contact support if you need to restore a deleted candidate profile.