> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kalent.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Non-deterministic Results

> Understand why search results may vary between identical requests and how to work with this behavior.

The Kalent search engine is a **live, AI-augmented system**. Search results are not guaranteed to be identical across requests, even when you describe the exact same criteria. 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:

<AccordionGroup>
  <Accordion title="Real-time profile refresh" icon="arrows-rotate">
    Talent profiles are enriched and updated **live during each search**. A profile that didn't match before may match now after a refresh (and vice versa). This means every search benefits from the latest available data.
  </Accordion>

  <Accordion title="AI-powered scoring" icon="brain">
    Result ranking uses AI models whose outputs can **differ slightly between calls**. The ranking reflects the best possible ordering at the time of the request, but small fluctuations are normal and expected.
  </Accordion>

  <Accordion title="Continuous indexing" icon="database">
    New talents are added and existing profiles are updated from external sources **on an ongoing basis**. The pool of matching candidates grows and evolves constantly.
  </Accordion>
</AccordionGroup>

## What this means in practice

* **Same prompt, different results**: two identical searches 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 you ask for more results, each new batch reflects the live state of the database at the time of the request.

## What stays consistent

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

<CardGroup cols={2}>
  <Card title="No duplicates in pagination" icon="clone">
    The pagination mechanism ensures you will **never see the same talent twice** within a paginated session.
  </Card>

  <Card title="Filter accuracy" icon="check">
    Every returned talent **genuinely matches your criteria** at the time of the request. Non-determinism does not affect accuracy — only ordering and pool composition.
  </Card>
</CardGroup>

## Recommendations

<Steps>
  <Step title="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, ask the AI to sort results by a specific criterion after receiving them.
  </Step>

  <Step title="Use pagination naturally">
    Simply ask for "more results" — the AI handles pagination automatically using `searchTransactionId` values, ensuring you always get fresh profiles. See [Pagination](/mcp/search-talents#pagination) for details.
  </Step>

  <Step title="Expect evolving counts">
    Use `estimationCount` as an approximation, not an exact figure. The count reflects a live, constantly updating dataset.
  </Step>
</Steps>
