Natural Language Candidate Search: Five Real Queries, and Why Vague Ones Fail
Real searches run against a live staffing database, the results they returned, and the single reason most natural language queries disappoint the person typing them.
Natural language candidate search means describing the person you want in a sentence and getting a ranked result, with no operators and no filter builder. It works. It also fails in one specific and predictable way, and the failure is entirely the fault of the person typing.
Below are five real queries our customers run, the results two of them returned, and the query that disappoints people most often, shown alongside the version that works.
Key takeaways
- Compound constraints are where it earns its keep. Skill, seniority, location, institution and domain in one sentence is trivial to say and painful to write as a Boolean string.
- Vague queries return vague results, in any system. "Backend engineer in Bangalore with four years" is not a specification. It is a category.
- The search runs on your own database, not the open web. That is a deliberate limit, and it changes what the tool is for.
- The sourcer skill shifts from syntax to specification. Describing a good profile precisely is now the scarce skill, and it is far easier to teach than Boolean.
Five natural language candidate search queries recruiters run
These are typed as sentences. No operators, no nesting, no field selection.
Look at the fourth and fifth. Each contains five separate conditions, two of which are not keywords at all. "Top law firms in Mumbai" requires knowing which firms those are. "Good experience of litigation" is a judgement about depth, not a term that appears in a document.
Writing that as a Boolean string means enumerating the firms by hand, guessing at the phrasing lawyers use to describe litigation work, and accepting that anyone who phrased it differently is invisible to you. The fifth query has the same problem with "voice AI", which is a field rather than a keyword, and which people on the ground describe as speech, ASR, TTS, or by naming the specific models they worked on.

What each query is actually asking for
| Query | The hard part | Why Boolean struggles |
|---|---|---|
| Engineer, tier one college | "Tier one" | Requires a list of institutions that nobody maintains and everyone disagrees on |
| BD executive, B2B SaaS | Two sales motions at once | Inside sales and B2B SaaS rarely both appear as stated terms |
| Recruiter, fintech | Hiring for fintech | The domain is in who they placed, not in their own job title |
| Criminal lawyer, Mumbai | "Top law firms" | An entity judgement, not a string match |
| Voice AI researcher | ASR, TTS, LLM together | The field has four vocabularies and candidates use different ones |
The candidate search query that disappoints people
Here is the one that comes up constantly.
Three conditions, all reasonable, and the results are underwhelming. Not because the search failed, but because the query described a category rather than a person. There are a great many backend engineers in Bangalore with four years of experience, and nothing in that sentence says which of them you want.
Now the same intent, specified properly:
Same role. Completely different result set, because now the system has something to rank against. The second query has seven conditions and three of them are the ones you would actually reject someone for.
This is the single most useful thing to teach a new sourcer, and it takes one session rather than a quarter. It is also the reason the scorecard matters: a recruiter who has already defined the criteria has, in effect, already written the query.
Four elements every candidate search query needs
Every query that works contains these. Every query that disappoints is missing at least two.
| Element | Weak version | Version that works |
|---|---|---|
| Capability | backend engineer | MEAN stack, AI stack, AWS, databases |
| Level | four years | four to five years |
| Constraint | in Bangalore | Bangalore, from NITs, IITs or IIITs |
| Context | — | fintech company experience |
The fourth row is the one people leave out, and it is usually the one that decides the shortlist. A backend engineer from a fintech and one from a services company are different hires for most roles, and the query has to say so.
Level is worth a note too. A range beats a number. "Four years" excludes the person with three years and eleven months who is exactly right, and includes nobody you were not already going to see.
Where natural language search does not help
Stating this plainly is what makes the rest of the post credible.
- Exact-match requirements. A specific certification number or a named employer is a filter, not a description. Use the filter.
- Hard numeric cutoffs. "Exactly 5 to 7 years" is a range filter. "Experienced" is a description. Do not use the second when you mean the first.
- Negation. "Not from a services background" is interpreted inconsistently. State the positive instead.
- Very long queries. Past a certain length, extra clauses dilute rather than sharpen. Two precise sentences beat one paragraph.

Searching your own database, not the open web
Worth being explicit, because it sets expectations correctly.
This search runs across your own records. Candidates you have sourced, screened, submitted, placed or rejected over the years. It does not search the open web and it is not a substitute for a sourcing licence when you genuinely need someone your firm has never encountered.
That constraint is a feature more often than it is a limitation. Searching your own database costs nothing per search, the people in it have usually dealt with you before, and every search makes the pool more current. External sourcing carries a per-seat licence cost and starts cold every time.
The right sequence is to exhaust the first before paying for the second. In one firm's data, that shift took job portal spend from roughly $100 per role to $60, which we cover in the talent pool audit.
What changes for the sourcer
The scarce skill moves.
A sourcer who could write a five-level nested Boolean string had something genuinely rare. A sourcer who can describe exactly what a good profile looks like, including the things that never appear on a CV, now has the rare skill. The second is more useful, transfers across tools, and can be taught to a new joiner in a session rather than a quarter.
The practical training is one sentence: name the capability, the level, the constraint and the context, every time. Everything else is refinement.
Semantic search versus Boolean, side by side
Worth understanding the difference in mechanism, because it explains both the strengths and the failure cases above.
Boolean search matches strings. You give it terms and logic, it returns documents containing those terms in that arrangement. It is exact, it is predictable, and it is blind to anything phrased differently from how you phrased it.
Semantic search matches meaning. It represents both the query and each profile as positions in a space where related concepts sit near each other, then ranks by proximity. "Voice AI" lands near "speech recognition" and "ASR" without anyone maintaining a synonym list, which is why the fifth query above works at all.
| Dimension | Boolean | Semantic |
|---|---|---|
| Matches on | Exact strings and logic | Meaning and proximity |
| Synonyms | You maintain the list | Handled without a list |
| Judgement conditions | Cannot express them | "Tier one", "top firms", "early-stage" |
| Predictability | Total. Same string, same result | Ranked, so the cut-off is a judgement |
| Exact requirements | Precise | Use a filter instead |
| Learning curve | Weeks to months | One session |
The practical answer for most desks is both, used for different jobs. Describe the person in a sentence, then apply hard filters for the things that are genuinely binary: notice period, location, work authorisation, rate band.
Common natural language search mistakes
Five patterns that account for most of the disappointment we see.
Writing the job title instead of the person
"Senior software engineer" is what the requisition says. It is not what you are looking for, and it is the single most common weak query.
Stacking too many clauses
Past roughly twenty-five words, additional conditions dilute the ranking rather than sharpening it. If the requirement genuinely has ten conditions, split it into two searches and compare the overlap.
Using a number where a range belongs
"Six years" excludes the person with five years and ten months. Ranges are almost always what you actually mean.
Describing the company instead of the candidate
"Someone for a Series B fintech" tells the search nothing about the person. Convert it: what does someone who succeeds at a Series B fintech look like on paper?
Forgetting availability entirely
A perfect profile on a six-month notice is not a candidate for a role closing in four weeks. Availability belongs in the query, not in the disappointment afterwards.
Frequently asked questions
What is natural language candidate search?
Search that takes a plain-language description of the person you want and returns ranked matches, without Boolean operators or manually built filters. It interprets meaning rather than matching keywords, which lets it handle conditions like company stage or institution tier that never appear as literal terms on a CV.
Is natural language search better than Boolean search for recruiting?
For compound queries and conditions that are judgements rather than keywords, yes. For exact-match requirements such as a specific certification number or a named employer, a filter remains more precise. Most real recruiting searches are the first kind.
Why is my natural language candidate search returning poor results?
Almost always because the query describes a category rather than a person. A query like 'backend engineer in Bangalore with four years of experience' has three conditions and thousands of matches. Add the specific stack, the institution tier and the domain context, and the result set changes completely.
Does natural language search cover LinkedIn and job boards?
In our case it searches your own database only. External sourcing is a separate motion with a separate licence cost, and the sensible order is to exhaust what you already own before paying to search elsewhere.
Do recruiters still need to learn Boolean search?
It remains useful on platforms that only support it, so it has not disappeared. It is no longer a sensible criterion for hiring a sourcer, because describing a profile precisely is now the scarce skill and it is far quicker to teach.
How do you write a good candidate search query?
Include four elements every time: the capability in detail, the level as a range, the hard constraints such as location and institution, and the context you would actually reject someone over, such as industry or company stage. Queries missing two of these are the ones that disappoint.
How to test this on your own data
Take your last ten filled roles. For each, write one sentence describing the person you actually placed, using all four elements. Run it.
Then check whether the person you placed appears near the top. It is the only benchmark worth anything, because you already know the right answer, and it takes an afternoon rather than a pilot.
Run five of your own queries
Bring five roles you are working now. We will run them as sentences against your own database and show you what comes back.
Book a demoFounder of Sortinghat, an AI-native ATS and CRM for staffing, search and RPO firms. Writes about recruiter capacity, sourcing economics and what actually changes when AI reaches a delivery desk. More about the author
Related reading
Talent Pool Software: How to Rank Your Own Database Before You Pay a Job Portal
OpinionWhy Most Staffing Firms Will Not Survive the Next Five Years
Talent PoolDuplicate Candidate Records: Why They Happen, What They Cost, and How to Prevent Them
Product Comparison 101Sortinghat vs Loxo: The 2026 Comparison for Search and Staffing Firms