Skip to main content
The Kalent search engine is a live, AI-augmented system. Search results are not guaranteed to be identical across requests, even when you send the exact same filters. This is by design and reflects how the platform continuously improves data quality and relevance.

Why results vary

Three factors contribute to non-deterministic behavior:
Talent profiles are enriched and updated in real time during each search. A profile that did not match a filter moments ago may match now (and vice versa) after a refresh. This means every search benefits from the latest available data.
Result ranking uses AI models whose outputs can vary slightly between calls. The ranking reflects the best possible ordering at the time of the request, but small fluctuations are normal and expected.
New talents are continuously indexed and existing profiles are updated from external sources. The pool of matching candidates grows and evolves constantly.

What this means in practice

  • Same filters, different results: two identical requests sent minutes apart may return different talents or rank them differently.
  • Result counts may shift: the estimationCount value can change between calls as new profiles are indexed or existing ones are updated.
  • No two pages are “frozen”: when paginating with relatedSearchTransactionIds, each page reflects the live state of the database at the time of the request.

What stays consistent

Despite the non-deterministic nature of results, the API provides strong guarantees:

No duplicates in pagination

The relatedSearchTransactionIds mechanism ensures you will never see the same talent twice across paginated requests.

Filter accuracy

Every returned talent genuinely matches your filters at the time of the request. Non-determinism does not affect accuracy — only ordering and pool composition.

Recommendations

1

Don't rely on result ordering

Treat results as a set of matching candidates rather than a strictly ordered list. If you need a stable ranking, apply your own sorting logic after receiving results.
2

Use pagination correctly

Always accumulate searchTransactionId values across pages. This is the only way to guarantee non-overlapping results. See Pagination for details.
3

Expect evolving counts

Use estimationCount as an approximation, not an exact figure. The count reflects a live, constantly updating dataset.