Candidate Matching Filters
Reference and best practices for MatchFilters: skills, languages, country, and city constraints in matching requests.
Filters are hard constraints. If a candidate does not satisfy a filter, they are removed before final ranking. Use filters for non-negotiables, not preferences.
MatchFilters field reference
MatchFilters
| Field | Type | Required | Default | Constraints | Notes |
|---|---|---|---|---|---|
| skills | string[] | No | — | — | Required technical skills. |
| languages | string[] | No | — | — | Required spoken languages. |
| country | string | No | — | — | Country hard constraint. |
| city | string | No | — | — | City hard constraint. |
How to design filters safely
Start broad, then tighten
Begin with role description + top_n only. Add one filter at a time and compare outcome changes.
Use filters for mandatory constraints
Use country if legal/work-permit constraints require it. Do not use location filters for "nice to have" preferences.
Avoid long skill hard-filters
Treat long skill lists as soft guidance in the job description whenever possible. Hard filters with many skills often over-constrain results.
Practical examples
{
"job_description": "Cloud platform engineer",
"filters": {
"country": "Belgium"
}
}{
"job_description": "Data engineer with strong SQL and ETL ownership",
"filters": {
"skills": ["SQL", "ETL"],
"languages": ["English"]
}
}Why expected candidates disappear
- Filters are stricter than intended
- Job description is too narrow and duplicates filter constraints
- Candidate profiles are missing data for filtered fields
Debug pattern