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:- Search info panel at the top — shows the search name, criteria summary, and metadata
- Filter and action bar — provides sorting, filtering, and batch operation controls
- 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:| Column | Description |
|---|---|
| Match Score | A percentage score (30-99%) indicating how well the job matches your search criteria. Higher scores appear first by default. |
| Title | The job title as listed on the company’s career page. |
| Company | The name of the hiring company, often with a favicon and LinkedIn link. |
| Location | Where the job is based (city/region). |
| Date | When the job was posted (or first seen by Recruitier’s scrapers). |
| Experience | The experience level if parsed from the listing (junior, medior, senior, lead). |
| Job Type | Employment type (full-time, part-time, contract, temporary, internship). |
| Flexibility | Workplace arrangement (remote, hybrid, on-site). |
| Tags | Any tags you have applied to this job. |
| Status | Badges indicating the job’s state (e.g., “Expired,” “New,” “Via Agency”). |
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:| Component | Weight | What It Measures |
|---|---|---|
| Title similarity | 35% | How semantically similar the job title is to your search query |
| Skills overlap | 45% | How many of your confirmed skills appear in the job description and requirements |
| Description match | 20% | 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:| Bonus | Maximum | How 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: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 Range | Interpretation | Action |
|---|---|---|
| 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.
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.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.)
Batch Operations
You can perform actions on multiple jobs at once using the batch operations toolbar:- Select jobs — Use the checkbox on each row, or use the “Select All” checkbox in the header to select all visible jobs
- 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
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 thenew_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:| Classification | Keyword Match | Meaning |
|---|---|---|
| Excellent Match | 100% of keywords found | The job matches all your search keywords exactly. Strongest possible alignment with your criteria. |
| Good Match | 80%+ of keywords found | The job matches most of your criteria but may be missing one or two keywords or skills. Still highly relevant. |
| Poor Match | Less than 80% of keywords found | The job has some relevance but diverges on multiple criteria. May match on some keywords but miss the overall intent. |
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:-
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)
-
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. -
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%. - 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.
- 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.
-
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
How the “Source Keywords” Field Works
Each job in your search results stores asource_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
pagesparameter 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
Review in waves
Review in waves
For large result sets (100+ jobs), adopt a wave-based review approach:
- First wave: Review only 85%+ matches. Tag the best as “Shortlist.”
- Second wave: Review 70-84% matches. Tag additional finds as “Maybe.”
- Third wave: Glance at 50-69% only if you need more options.
- Batch-delete all poor matches to clean up the result set.
Sort by date for competitive advantage
Sort by date for competitive advantage
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.
Use tag + filter combinations for pipeline management
Use tag + filter combinations for pipeline management
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.
Related
- Saved Searches — Managing and monitoring your searches
- How Search Technology Works — Deep dive into the scoring engine
- Tagging Jobs — Organizing results with custom tags
- Active Jobs — Filtering for jobs still accepting applications

