
Back
Healthcare & Clinical
A Natural-Language Candidate Search Platform That Replaces Boolean Query Building
How Pfactorial Technologies built TalentGPT, a recruiting search platform that turns plain-English candidate descriptions into precise, ranked Elasticsearch results - with caching and zero-result analytics built in from day one.
August 21, 2026
Share
ENGAGEMENT SNAPSHOT

Figure 1 - Key figures from this engagement, at a glance.
EXECUTIVE SUMMARY
Our client's recruiters were building Boolean search strings by hand to find candidates - a skill barrier that slows down search and makes query quality dependent on individual recruiter expertise rather than the underlying candidate data.
Replacing Boolean syntax with plain English isn't just a UI change - it means reliably extracting structured filters, inferring AND/OR/complex logic from phrasing, resolving experience requirements, and turning all of that into a precise Elasticsearch query, without the LLM parsing step becoming a bottleneck at scale.
Pfactorial built TalentGPT: recruiters type a plain-English description, an LLM extracts structured filters while a dedicated NER model resolves experience ranges, the combination becomes a tuned Elasticsearch query, and a write-through cache means repeated searches skip the expensive parsing step entirely.
Why this engagement is representative This engagement demonstrates Pfactorial's approach to applying LLMs precisely where they add value - structured extraction from ambiguous language - while keeping the actual search execution in a purpose-built search engine, with caching and analytics engineered around the LLM's real cost.
THE CHALLENGE
Replacing Boolean search with natural language required solving accuracy, cost and diagnosability problems a naive LLM-wrapper wouldn't address.
1. Boolean search is a real skill barrier
Query-string syntax gates search quality behind individual recruiter expertise rather than making the underlying candidate data equally accessible to everyone.
2. Free text hides real structured intent
A phrase like “Python and Django” or “Testing and (Selenium or Cypress)” encodes precise Boolean logic that has to be extracted correctly, not just passed through as a fuzzy text match.
3. LLM parsing on every query doesn't scale economically
Each structured-query parse costs an LLM API call; without caching, popular or repeated searches would pay that cost every single time.
4. A silent zero-result query is a diagnostic dead end
When a search returns nothing, that's either a coverage gap in the candidate database or a query-comprehension miss - and without logging the full parsed structure, there's no way to tell which.
The real brief Not “add an AI search bar” but “extract precise structured filters from natural language reliably, cache the expensive part, and make every zero-result search diagnosable.”
THE SOLUTION
Pfactorial built the platform around a single-prompt LLM extraction step, a dedicated NER model for experience-range parsing, a two-layer write-through cache, and comprehensive zero-result logging for ongoing coverage diagnosis.

Figure 2 - From plain English to ranked, faceted candidate results.
Architectural principles
- LLM extracts structure, not the search itself - GPT-4o-mini converts free-text queries into a structured JSON filter object via a single-prompt call; the actual search execution happens in Elasticsearch, not the model.
- Dedicated NER for what general language models generalize poorly - GLiNER2, a zero-shot NER model loaded once at startup, is used specifically for experience-range extraction - a narrow, high-precision task suited to a specialized model rather than the general-purpose LLM.
- Cache aggressively, normalize before comparing - A write-through cache - in-memory dict backed by an Elasticsearch index - stores every parsed query keyed by its normalized text, so identical or near-identical queries skip LLM parsing entirely.
- Every zero-result query is a diagnostic event - The original query, the full structured filter object, and the executed Elasticsearch DSL query are all logged whenever a search returns nothing, turning zero-result events into an ongoing coverage-gap signal rather than a dead end.
CAPABILITIES DELIVERED
Each capability moves the platform beyond literal keyword or Boolean-string search.
CAPABILITY | WHAT IT DOES |
|---|---|
Natural language search | Plain-English queries parsed into structured filters - skills, locations, roles, experience. |
Boolean logic inference | AND/OR/complex nested logic inferred from query phrasing and applied as Elasticsearch bool queries. |
Negative filters | Prefix-based exclusion (e.g. "-location") for filtering out unwanted values. |
Contact-availability filtering | Restrict results to candidates with verified phone, email, or both. |
Aggregated facets | Location, company and city aggregations returned alongside results for refinement. |
CSV bulk export & feedback | Streaming export of up to 1,000 records, plus thumbs-up/down feedback tracked per query. |

Figure 3 - Raw candidate profiles to a searchable, deduplicated index, tuned for ingestion throughput.
Design note The cache key is the normalized query text, not the raw string - two queries differing only in whitespace or capitalization hit the same cache entry. That single normalization decision is most of what makes the cache actually effective at scale.
ENGINEERING FOR SCALE AND RELIABILITY
Five decisions keep extraction accurate and ingestion fast as the candidate database and query volume grow.
Engineered semantic query mapping prompt
A carefully constructed system prompt instructs the LLM to distinguish required from optional skills, infer negative filters from exclusion phrasing, and explicitly reject non-recruitment queries with a structured error rather than a malformed filter object.
Startup-loaded NER model
GLiNER2 is loaded once at application startup - a blocking operation accepted upfront so every subsequent request reuses the loaded model without re-initialization cost.
Thread-safe, write-through caching
The in-memory cache is protected by a lock and written through to Elasticsearch simultaneously on every new parse, with access counts and last-accessed timestamps tracked per entry.
Throughput-tuned bulk ingestion
Elasticsearch's refresh_interval and replica count are relaxed during ingestion to maximize write throughput, then restored to production defaults once the batch completes.
Deduplication via stable document IDs
Each candidate document's ID is the SHA hash of their LinkedIn URL, with upsert mode and conflict retries, so re-running the ingestion pipeline updates existing records rather than creating duplicates or failing on conflicts.
DELIVERY APPROACH
The engagement built the data ingestion pipeline first, then the query-parsing and search layer on top of a clean, indexed dataset.
1. Data cleaning pipeline - location standardization, contact extraction, and LinkedIn-URL-based deduplication.
2. Elasticsearch ingestion pipeline - experience-duration calculation and throughput-tuned parallel bulk indexing.
3. Semantic query mapper - the engineered LLM prompt for structured filter and Boolean-logic extraction.
4. NER integration - GLiNER2-based experience-range extraction feeding Elasticsearch range queries.
5. Query caching layer - the two-layer write-through cache eliminating repeat LLM parsing cost.
6. Zero-results analytics & API - comprehensive logging plus the full REST API surface for search, export, and feedback.
RESULTS AND IMPACT

Figure 4 - Key outcomes from this engagement.
Recruiters search using plain English instead of Boolean query strings, with the platform reliably inferring the underlying filter logic from natural phrasing.
The write-through cache eliminates repeat LLM parsing cost for popular or repeated searches, while zero-result logging gives the client an ongoing, queryable signal on candidate-database coverage gaps.
What it enabled commercially
The client's recruiters search candidate data at the speed of typing a plain-English description, removing the Boolean-syntax skill barrier that previously gated effective search to a subset of experienced users.
WHY PFACTORIAL
This engagement reflects Pfactorial's applied AI product engineering service line: using an LLM precisely for structured extraction, a specialized NER model for a narrow high-precision task, and a purpose-built search engine for the actual retrieval - each component doing what it's genuinely best at.

Figure 5 - Service lines this engagement draws on.
Engagement enquiries Pfactorial Technologies works with HR technology and talent acquisition teams that need natural-language search over structured candidate data. If you're evaluating an AI-powered search or retrieval platform, we're happy to give you an honest read on scope and risk before anyone commits to anything. · pfactorial.ai
APPENDIX A - TECHNOLOGY STACK
The technology stack underpinning the system, grouped by the layer it serves.

© 2026 Pfactorial Technologies. Client identity and product-specific implementation detail are withheld or generalized; no client data, credentials, source code, or infrastructure detail is included in this document.
Result and Analysis
ENGAGEMENT SNAPSHOT
How Pfactorial Technologies built TalentGPT, a recruiting search platform that turns plain-English candidate descriptions into precise, ranked Elasticsearch results - with caching and zero-result analytics built in from day one.
CASE STUDIES
You might also like...

Multi-Agent & Agentic SystemsRAG & Semantic Search
Aug 21, 20267 min readRead

RAG & Semantic Search
Improving Clinical Trial Matching Accuracy with a Blended Retrieval Pipeline
Aug 21, 20266 min readRead

Recruiting & HR Tech
Mapping Genetic Risk Factors for Renal Cell Carcinoma from a 1,600-Patient Cohort
Aug 21, 20267 min readRead

RAG & Semantic SearchAutomotive & Vehicle
A Botpress-Built AI Sales & Service Assistant That Qualifies Automotive Leads 24/7
Aug 21, 20267 min readRead

Computer VisionML Infra, Classifiers & RL
A Deep Learning Classifier That Separates True-Negative Mammograms from Genuine BIRADS 0 Cases
Aug 21, 20266 min readRead

Legal & Contract Analysis
A HIPAA-Compliant De-Identification Pipeline for Multi-Format Clinical Data
Aug 21, 20266 min readRead





