Skip to main content

The Results Page

After a search completes, you are taken to the search detail page where all matching jobs are displayed in a structured table. This page is your primary workspace for evaluating and acting on search results. The results page has three main areas:
  1. Search info panel at the top — shows the search name, criteria summary, and metadata
  2. Filter and action bar — provides sorting, filtering, and batch operation controls
  3. Results table — the main list of matching jobs with key details in each row

Results Table Layout

Each row in the results table represents a single job listing and displays the following columns:
ColumnDescription
Match ScoreA percentage score (30-99%) indicating how well the job matches your search criteria. Higher scores appear first by default.
TitleThe job title as listed on the company’s career page.
CompanyThe name of the hiring company, often with a favicon and LinkedIn link.
LocationWhere the job is based (city/region).
DateWhen the job was posted (or first seen by Recruitier’s scrapers).
ExperienceThe experience level if parsed from the listing (junior, medior, senior, lead).
Job TypeEmployment type (full-time, part-time, contract, temporary, internship).
FlexibilityWorkplace arrangement (remote, hybrid, on-site).
TagsAny tags you have applied to this job.
StatusBadges indicating the job’s state (e.g., “Expired,” “New,” “Via Agency”).
Click on any row to expand it and see additional details without leaving the results page. For the full job detail view, click the job title link or the expand icon.

Understanding Match Scores

The match score is a percentage that represents how well a job listing aligns with your search criteria. It is calculated by combining multiple signals from the hybrid search engine.

Score Components

The base score comes from the vector similarity search, which combines three vector types:
ComponentWeightWhat It Measures
Title similarity35%How semantically similar the job title is to your search query
Skills overlap45%How many of your confirmed skills appear in the job description and requirements
Description match20%How semantically similar the full job description is to your search context

Scoring Bonuses

Additional bonuses are added on top of the base score. These bonuses are additive — they can only increase a score, never decrease it:
BonusMaximumHow It Works
BM25 keyword bonus+10%When your exact search terms appear in the listing text. BM25 scores are normalized: Display% = min(score / 8.0 * 100, 99%)
Recency bonus+5%For recently posted jobs. Decays linearly over 180 days — a job posted today gets the full 5%, a job posted 90 days ago gets ~2.5%.
Title keyword boost+4%When your query keywords appear directly in the job title.
Skills keyword boost+2%When your query keywords appear in the job’s listed skills.

Score Normalization

Raw scores from the search engine are normalized to a display range of 30% to 99% using the formula:
Display% = 30 + (score / max_score) * (99 - 30)
The top-scoring result in any search typically shows around 90-99%, with all other results scaled proportionally relative to the top score.
Because scores are normalized relative to the top result in each search, a 75% score in one search is not directly comparable to a 75% score in a different search. Scores are meaningful for ranking within a single search but should not be compared across searches.

Score Interpretation Guide

Score RangeInterpretationAction
85-99%Excellent match. The job closely aligns with all your search criteria.Review immediately — these are your top opportunities.
70-84%Strong match. The job aligns with most criteria but may diverge on one dimension.Worth reviewing — often just as relevant as top matches.
50-69%Moderate match. The job has significant overlap but misses some criteria.Review selectively if higher-scoring options are limited.
30-49%Weak match. Some relevance but likely a different type of role or focus area.Generally skip unless the specific job catches your eye.

Sorting Options

By default, results are sorted by match score (highest first). You can change the sort order by clicking on any column header:
  • Match Score — Default sort. Shows the most relevant jobs first.
  • Date — Sort by posting date. Useful when you want the freshest listings at the top.
  • Company Name — Alphabetical sort by company. Helpful for seeing all jobs from the same company grouped together.
  • Title — Alphabetical sort by job title.
  • Location — Sort by location name.
Click a column header once to sort ascending, click again to sort descending. The active sort column is indicated by an arrow icon.
Sorting by Date after your initial review is a good way to identify recently posted jobs that may not have scored highest but represent fresh opportunities with less competition from other recruiters.

Filtering Within Results

Beyond the filters you set during search creation, the results page offers additional ways to narrow down what you see. These in-results filters operate on your existing result set without re-running the search.

Attribute Filters

Use the filter dropdowns above the results table to filter by specific attributes:
  • Experience level — Show only jobs at a specific level
  • Job type — Show only full-time, part-time, etc.
  • Flexibility — Show only remote, hybrid, or on-site
  • Match type — Filter by AI classification using the match quality dropdown. Options include: All Jobs, Excellent Only, Good + Excellent, or individual match types (Excellent, Good, Poor). Each option shows a count of matching jobs.
  • Active only — Toggle to show only jobs that have not expired

Tag Filters

If you have tagged any jobs in the search, you can filter by tag. This is particularly useful after an initial review pass where you tagged promising jobs:
  • Click the tag filter dropdown
  • Select one or more tags to filter by
  • Only jobs with the selected tags are shown

Search Within Results

Use the search-within-results text field to find specific terms within the displayed results. This performs a client-side text filter across job titles, company names, and locations. It does not re-run the search — it simply hides non-matching rows.
Combining search-within-results with attribute filters is a powerful way to drill down into large result sets. For example, filter by “senior” experience level and then search for “Amsterdam” to find senior roles specifically in Amsterdam.

The Search Info Panel

At the top of the results page, an expandable panel shows the full details of your search criteria:
  • Search name (the job title you entered)
  • Skills that were included in the search (confirmed, excluded, and custom)
  • Filters that were applied (location, experience, job type, flexibility, etc.)
  • Creation date and time
  • Total results count
  • Search state (searching, classifying, done)
  • Source of the search (recommendation engine, LinkedIn, etc.)
Click the panel header to expand or collapse this information. It is especially useful when returning to a saved search and needing to remember what criteria produced these results.

Batch Operations

You can perform actions on multiple jobs at once using the batch operations toolbar:
  1. Select jobs — Use the checkbox on each row, or use the “Select All” checkbox in the header to select all visible jobs
  2. Choose an action from the batch toolbar that appears:
    • Tag — Apply a tag to all selected jobs
    • Delete — Remove selected jobs from this search
    • Export — Export selected job details
Deleting jobs from a search is a soft delete. The jobs are removed from this search’s results but the underlying job data remains in the system. This action cannot be undone from the UI. Be particularly careful when using “Select All” — make sure your filters are set correctly so you do not accidentally delete jobs you want to keep.

New Job Indicators

When a monitored search finds new jobs that match your criteria, those jobs appear with a “New” badge in the results. This makes it easy to spot freshly matched listings without reviewing the entire result set. The new jobs count is also shown on the search card in the saved searches list. When you open the search detail page, the new job indicators are automatically cleared (marked as seen), and the new_jobs_count on the search entity resets to zero.
New job notifications are delivered in real time via Server-Sent Events (SSE). If you have the Recruitier interface open, you will see a notification badge update without needing to refresh the page.

Expired Job Indicators

Jobs that are no longer available on the company’s career page are marked with an “Expired” badge and a timestamp showing when the listing was detected as expired. Expired jobs are still visible in your results for reference, but they should not be prioritized for outreach. You can use the “Active only” filter to hide expired jobs and focus on positions that are still accepting applications.

Job Classifications

Recruitier’s AI classifies each result into one of three match types based on keyword coverage:
ClassificationKeyword MatchMeaning
Excellent Match100% of keywords foundThe job matches all your search keywords exactly. Strongest possible alignment with your criteria.
Good Match80%+ of keywords foundThe job matches most of your criteria but may be missing one or two keywords or skills. Still highly relevant.
Poor MatchLess than 80% of keywords foundThe job has some relevance but diverges on multiple criteria. May match on some keywords but miss the overall intent.
You can filter by match type to focus your review on the highest-quality matches first, then work your way down if needed. The match type filter dropdown provides convenient presets: “Excellent Only” shows just the best matches, while “Good + Excellent” filters out poor matches and shows only the results worth reviewing.
Poor matches can be automatically removed in bulk. If you find that a search has many poor matches, they can be cleaned up, leaving only excellent and good matches for your review. This keeps your result set focused and actionable.

Advanced

How Scores Are Calculated Step by Step

The scoring pipeline processes each candidate job through the following steps:
  1. Multi-vector similarity — The search query embedding is compared against three vector types stored per job in Qdrant:
    • title_vector (384 dimensions, 35% weight)
    • description_vector (384 dimensions, 20% weight)
    • skills_vector (384 dimensions, 45% weight)
  2. Reciprocal Rank Fusion — Results from the three vector comparisons are combined using RRF: score = 1/(k + rank) summed across all vector sources. This produces a single ranking that balances all three signal types.
  3. BM25 overlay — The BM25 keyword search runs in parallel. Its results are normalized (Display% = min(score / 8.0 * 100, 99%)) and added as a bonus to the vector score. Maximum contribution: 10%.
  4. Keyword boosts — If your query keywords appear in the job title, a 4% boost is added. If they appear in the job’s skills, a 2% boost is added. These are checked via string matching against the structured fields.
  5. Recency bonus — Jobs posted within the last 180 days receive a linearly decaying bonus up to 5%. A job posted today gets the full bonus; a job posted 90 days ago gets half.
  6. Score normalization — The final raw score is mapped to the 30-99% display range using the formula Display% = 30 + (score/max_score) * (99-30). The highest-scoring result anchors the scale at approximately 99%.

Match Classification Logic

After scoring, each result is classified based on keyword coverage analysis:
  • The system checks which of your search keywords (job title terms + confirmed skills) appear in the job’s title, description, and skills fields
  • EXCELLENT_MATCH: Every keyword is found somewhere in the job listing
  • GOOD_MATCH: 80% or more of keywords are found
  • POOR_MATCH: Less than 80% of keywords are found
This classification is separate from the numerical score. A job can have a high vector similarity score (meaning it is semantically relevant) but be classified as a poor match if it uses different terminology. Conversely, a job can be an excellent keyword match but score lower if its overall description diverges from your search intent.

How the “Source Keywords” Field Works

Each job in your search results stores a source_keywords field that records which specific keywords from your search led to this job being matched. This is particularly useful for boolean OR searches where multiple keyword combinations generate results. The source keywords tell you which combination produced each specific result, helping you understand why a particular job appeared.

Performance Characteristics

  • Result delivery: Results are delivered incrementally via SSE as the pipeline completes each stage. You may see partial results before the search finishes.
  • Typical processing time: 10-60 seconds depending on filter complexity and result count. Searches with geo + skills filters take longest due to the PostgreSQL pre-filtering step.
  • Result limits: The pages parameter on the search entity controls how many pages of results are fetched from the recommendation engine. More pages = more results but longer processing.

Power-User Tips

For large result sets (100+ jobs), adopt a wave-based review approach:
  1. First wave: Review only 85%+ matches. Tag the best as “Shortlist.”
  2. Second wave: Review 70-84% matches. Tag additional finds as “Maybe.”
  3. Third wave: Glance at 50-69% only if you need more options.
  4. Batch-delete all poor matches to clean up the result set.
After reviewing top matches, re-sort by date (newest first). Recently posted jobs with moderate match scores may represent fresh opportunities where you can be among the first recruiters to reach out. The recency bonus already gives these a slight edge, but sorting by date surfaces them more prominently.
Create a tagging system that mirrors your recruitment pipeline: “Shortlist” > “Contacted”
“Waiting” > “Interview” > “Placed”. Then use the tag filter to view each stage independently. Combined with the active-only filter, this gives you a real-time view of your active pipeline.