Skip to main content

Overview

Recruitier’s search filters let you narrow down your job search to precisely match what you or your candidates are looking for. Filters are applied during the search wizard (Steps 3 and 4) and work alongside the job title and AI-extracted skills to produce focused, relevant results. Filters are divided into two categories: company preferences (Step 3) and job characteristics (Step 4). Both are optional — you can run a search with just a job title and skills if you prefer a broad set of results.
Filters are applied server-side during the search process. They reduce the number of results returned, which also speeds up processing time. If you are getting too few results, try relaxing one or two filters.
Filters are processed at different stages of the search pipeline for optimal performance. Some filters (like company name, experience level, and flexibility) are applied directly in the vector database for speed. Others (like salary range and company size) are applied as post-filters on the initial results. This is transparent to you as a user — all filters appear equally in the wizard — but it explains why some filter combinations return results faster than others.

Location

The location filter is one of the most impactful filters for Dutch recruitment. How it works:
  • Type a city, town, or region name in the location field
  • An autocomplete dropdown appears with geocoded Dutch locations
  • Select a location from the suggestions
  • Set a radius in kilometers using the slider
Radius-based filtering: The radius creates a circle around your chosen location. Only jobs within that circle are included in results. Recruitier uses geocoded coordinates (latitude and longitude) for both job locations and your search location, so distance calculations are precise.
RadiusTypical Use Case
10 kmDense urban areas (Amsterdam centrum, Rotterdam)
25 kmCity and surrounding suburbs
50 kmStandard commuting range in the Netherlands
75 kmExtended commuting or flexible about location
100+ kmWide regional search
The Netherlands is a compact country. A 50 km radius from Utrecht covers most of the Randstad, including Amsterdam, Rotterdam, The Hague, and surrounding cities. For nationwide searches, you may not need a location filter at all.
Important notes about location filtering:
  • Location filtering requires the job listing to have a recognized, geocoded location. Jobs without a parsed location are excluded from radius-based searches.
  • If your candidate is open to remote work, consider using the flexibility filter set to “Remote” instead of (or alongside) a location filter.
  • Location data is geocoded during the scraping process. Most Dutch cities, towns, and neighborhoods are recognized. Locations with unusual formatting or very specific addresses may occasionally fail to geocode.
When you enable location filtering, jobs without geocoded coordinates are excluded from results entirely. If a job listing does not include a parseable location (e.g., it says “Multiple locations” or “Netherlands-wide”), it will not appear in location-filtered results. Consider running a parallel search without location filters if you suspect relevant jobs might lack location data.

Experience Level

Filter jobs by the seniority level required. You can select multiple experience levels to cast a wider net. Available levels:
LevelDescription
JuniorEntry-level roles, typically 0-2 years of experience. Often include training or mentorship.
MediorMid-level roles, typically 2-5 years of experience. Expected to work independently.
SeniorSenior roles, typically 5+ years of experience. Leadership and mentoring responsibilities.
LeadLeadership roles overseeing teams or technical direction. Often combined with hands-on work.
Experience level is extracted from job descriptions during scraping using AI parsing. Not all job listings explicitly state a level. Jobs without a parsed experience level are not excluded by this filter — they remain in results so you do not miss opportunities where the level was implied but not stated explicitly.
Best practices:
  • Selecting both “medior” and “senior” covers the broadest range for experienced candidates
  • If your candidate is transitioning from one level to another, include both levels
  • Lead-level roles are less common; combine with “senior” for better coverage
  • Junior roles often have different skill expectations; consider adjusting your confirmed skills if you switch from a senior to junior search

Job Type

Filter by the employment arrangement. Multiple selections are supported. Available types:
TypeDescription
Full-timeStandard full-time employment, typically 36-40 hours per week in the Dutch market.
Part-timeReduced hours, common in the Netherlands where part-time work is widely accepted.
ContractFixed-term or project-based engagements. Includes ZZP (freelance) and interim roles.
TemporaryTemporary positions with a defined end date, such as seasonal work or short-term replacements.
InternshipTrainee or internship positions, often associated with students or career changers.
In the Dutch recruitment market, part-time roles are far more common than in many other countries. If your candidate is open to part-time, including this option can significantly expand your results. The Netherlands has one of the highest rates of part-time employment in Europe.

Flexibility

Filter by workplace arrangement. This has become one of the most important filters since the shift to remote and hybrid work models. Available options:
OptionDescription
RemoteFully remote positions. The candidate can work from anywhere (or from home).
HybridA mix of office and remote work, typically 2-3 days in the office per week.
On-siteThe role requires full-time presence at the company’s physical location.
How flexibility interacts with location:
  • Remote roles are relevant regardless of location, so consider widening your radius or removing the location filter entirely when searching for remote positions
  • Hybrid roles still have a physical office, so location matters — the candidate needs to commute on in-office days
  • On-site roles require daily commuting, making the location radius especially important
For maximum flexibility, select all three options (remote, hybrid, on-site) and let the relevance scoring handle the ranking. You can always filter within your results afterward using the in-results filters.

Posted Within (Recency)

Control how far back in time to look for job listings. More recent postings are more likely to still be open and accepting applications. Available ranges:
RangeBest For
Past 24 hoursFinding the freshest listings for a hot candidate ready to apply immediately.
Past weekA good default for active searches — recent enough to be relevant.
Past monthBroader search when you need more options or are in a niche market.
Past 6 monthsComprehensive search, though older listings may have been filled.
AnytimeNo time restriction. Returns all matching jobs regardless of posting date.
Older job listings may no longer be accepting applications. Recruitier detects expired listings and marks them with an “expired” badge, but detection is not instantaneous. Prioritize recent postings for the best response rates.
The posting date shown in results comes from the most reliable source available. Recruitier detects dates from multiple sources in order of reliability: JSON-LD structured data, LLM extraction, HTML metadata, visible text on the page, URL patterns, sitemap data, and finally the date Recruitier first discovered the listing. The source is tracked internally so the most accurate date is always displayed.

Salary Range

Set a minimum and/or maximum salary to filter positions within your candidate’s expected compensation range. How it works:
  • Enter a minimum and/or maximum annual salary value
  • Recruitier filters results to only include jobs where the listed salary falls within your specified range
  • Salary data is in EUR by default
Limitations to be aware of:
  • Not all job listings include salary information. Jobs without salary data are not excluded by this filter — they remain in results because the salary might still be competitive even though it is not published.
  • Salary ranges vary by source and may represent gross annual, gross monthly, or hourly rates depending on how the employer published them.
  • Salary data (salary_min and salary_max) is stored per scraped job when available. Both fields must be present for the filter to match meaningfully.
In the Dutch market, many job listings do not publish salary information. The salary filter is most useful for industries where salary transparency is common (e.g., government, larger corporates). For roles where salary is rarely published, consider leaving this filter empty and evaluating salary fit during the review stage.

Include Companies

Limit search results to jobs from specific companies. How it works:
  • Type a company name in the search field and select from the results
  • Add as many companies as you want — results will only include jobs from the listed companies
  • A status indicator shows whether the filter is active: when no companies are added, all jobs are searched; when companies are added, only jobs from those companies appear
  • Remove a company by clicking the X on its badge
  • Use the Clear All button to reset the include list

Import Clients

The Import Clients button lets you quickly add all your saved client companies from your Clients section to the include list. This is particularly useful when you want to find new job openings at companies you are already working with, saving you the time of searching for and adding each client individually.
Import Clients is a powerful workflow shortcut. If you maintain an active client list in Recruitier, one click brings all those companies into your search scope, ensuring you never miss a new opening at a company you already have a relationship with.

Exclude Companies

Remove specific companies from search results entirely. How it works:
  • Type a company name in the search field and select from the results
  • Jobs from excluded companies will not appear in your search results
  • This is useful for filtering out companies your candidate has already rejected, competitors, or companies with known issues
A company cannot appear in both the include and exclude lists. When you search for a company to add, companies already in either list are hidden from the search results to prevent conflicts.

Company Size

Filter by the number of employees at the hiring company. How it works:
  • Click one of the preset buttons to set a maximum employee count, or enter a custom number in the input field
  • This is particularly useful for candidates who prefer startups, scale-ups, or SMEs over large enterprises
  • Companies without employee count data are included in results (the filter does not exclude them)
  • Click the same preset button again to deselect it
Preset thresholds:
Maximum SizeTarget Organizations
50Startups and micro-companies
200Scale-ups and small companies
500Mid-size companies
1,000Upper mid-market
5,000Large enterprises
CustomEnter any number for a specific threshold
No limitAll companies including large enterprises

Industry

Filter by the industry sector of the hiring company. How it works:
  • Select one or more industries from the dropdown
  • Results are limited to jobs at companies classified in the selected industries
  • Company industries are sourced from LinkedIn and other public data
  • Companies without industry data are still included (the filter only excludes companies with a different specified industry)
Staffing and recruiting agencies are automatically excluded from client search results to prevent showing competitor agencies. This filter is always active in client discovery but does not affect the job search — you may still see agency-posted job listings in your search results. The exclusion list is maintained in the platform’s configuration.

Exclude Terms

In addition to skill exclusions (set in Step 2), you can exclude specific terms from your search results. Jobs containing excluded terms in their title or description will be filtered out or ranked lower. This is useful for avoiding:
  • Specific technologies your candidate does not want to work with
  • Industry jargon that indicates a different type of role
  • Company types or work arrangements that are not suitable

Combining Filters Effectively

The most effective searches use a thoughtful combination of filters rather than applying every available option. Here are some proven combinations: For a specific local candidate:
  • Job title + confirmed skills
  • Location with 30 km radius
  • Experience level matching the candidate
  • Job type: full-time
For a remote-first candidate:
  • Job title + confirmed skills
  • Flexibility: remote
  • No location filter (or very wide radius)
  • Posted within: past month
For a niche specialist:
  • Specific job title
  • Skills: only the most critical 3-4 skills confirmed
  • Company size: depends on preference
  • Posted within: past 6 months or anytime (niche roles are rarer)
For a broad market scan:
  • General job title (e.g., “Developer” rather than “Senior React Developer”)
  • Minimal filters
  • Posted within: past month
  • Sort results by match score and review top 50
Start broad and narrow down. It is easier to add filters to a search that returns too many results than to loosen filters on a search that returns too few. You can also clone a search and adjust filters on the clone to compare different criteria sets.

Advanced

Filter Processing Architecture

Understanding how filters are processed helps explain performance characteristics and edge cases: Qdrant-native filters (fastest): These filters are applied directly within the vector database query, meaning they reduce the candidate set before any scoring happens:
  • company_name — Exact or partial company name match
  • location — Location string matching
  • experience_level — Enum-based filter
  • job_type — Enum-based filter
  • flexibility — Enum-based filter
  • is_active — Boolean filter for active/expired status
  • Industry exclusions (internal, always applied)
PostgreSQL post-filters (applied after vector search): These filters require relational database lookups and are applied after the initial vector search returns candidate results:
  • company_size_max — Maximum employee count at the hiring company
  • skills — Confirmed skills for skills-based pre-filtering
  • exclude_skills — Skills to penalize or exclude
  • exclude_terms — Terms to exclude from results
  • salary_min / salary_max — Salary range thresholds
  • Date range filters (posted within)
  • geo_radius — Latitude/longitude with kilometer radius
  • company_ids — Specific company ID whitelist
  • industries — Industry sector filter
  • technologies — Technology stack filter

Adaptive Search Strategy

The search engine intelligently adapts its strategy based on which filters you have enabled:
Filter ScenarioSearch Strategy
No filters appliedDirect Qdrant vector search (fastest path)
Geo filter onlyPostgreSQL geo-query identifies jobs within radius, then Qdrant searches within those job IDs
Skills filter onlyPostgreSQL skills query identifies relevant jobs, then Qdrant searches within those job IDs
Geo + SkillsPostgreSQL computes the intersection of geo results and skills results, then Qdrant searches within that intersection
Qdrant-native filters onlyFilters applied inline with the vector query (very fast)
Mixed Qdrant + PostgreSQL filtersQdrant-native filters applied first, PostgreSQL post-filters applied to the returned results
This adaptive approach ensures the search is as fast as possible regardless of filter complexity. The most common filter combinations (just experience level and location) benefit from the fastest code paths.

How Filter Interactions Affect Results

When you set both a location filter and a flexibility filter, be aware that remote jobs may list their location as the company headquarters rather than “Remote.” A remote job at a company in Amsterdam will pass a location filter centered on Amsterdam, but a remote job at a company in Groningen will not — even though both are fully remote. For remote searches, consider removing the location filter entirely or setting a very wide radius.
Experience level filtering and skill confirmation interact in important ways. A “Senior” filter combined with skills like “React” and “TypeScript” will rank highly for senior frontend roles. But if you also confirm “Team Leadership” (which the AI might extract for senior roles), you may inadvertently bias results toward management-track roles rather than individual contributor positions. Be intentional about which skills you confirm for each experience level.
Since many Dutch job listings omit salary information, the salary filter is designed to be inclusive: jobs without salary data are kept in results. This means you may see results where the salary is unknown alongside results that meet your minimum. The salary filter is most effective as a floor, not as a precision filter. Use it to eliminate obviously under-budget positions rather than to find exact salary matches.
Each additional filter narrows your result set. The relationship is multiplicative, not additive — combining 4-5 filters can dramatically reduce your results. If you get too few results, remove filters in order of least importance. Typically, location and experience level are the most important to keep; salary and company size can often be relaxed.

Power-User Tips

  • Use clone + filter variation to compare results with different filter sets without losing your original search
  • Leave salary empty for your first search, then use in-results sorting to identify salary ranges in the market before creating a filtered search
  • Select multiple experience levels (e.g., medior + senior) and then filter within results to see how many jobs exist at each level — this gives you market intelligence
  • Combine location filter with flexibility: hybrid for the most accurate commute-based results, since hybrid roles have a meaningful physical location