Overview
A candidate is an entity that Find All discovers during the generation phase of a run. Each candidate represents a potential match that is evaluated against your match conditions.Candidate States
Candidates progress through these states during evaluation:- Generated: Discovered from web data, queued for evaluation
- Matched: Successfully satisfied all match conditions
- Unmatched: Failed to satisfy one or more match conditions
Post-Match Events: When using Streaming Events or Webhooks, you may receive
enriched events for matched candidates. These are event types (not match_status values) that indicate when additional data has been extracted via enrichments after a candidate has already matched.Candidate Object Structure
Every candidate in Find All results, SSE events, and webhook payloads follows this structure:| Property | Type | Description |
|---|---|---|
candidate_id | string | Unique identifier for the candidate |
name | string | Name of the entity |
url | string | Primary URL for the entity |
description | string | Brief description of the entity |
match_status | enum | One of generated, matched, and unmatched |
output | object | Key-value pairs showing evaluation results for each match condition and enrichment (see section below for more details) |
basis | array[FieldBasis] | Citations, reasoning, and confidence scores for each field. See FieldBasis for more details. |
Understanding the output Field
The output field contains evaluation results where each key corresponds to a field name. Match conditions include an is_matched boolean, while enrichments do not:
Understanding the basis Field
The basis field provides citations, reasoning, and confidence scores for each field in output.
For complete details on basis structure and usage, see Access Research Basis.
Excluding Candidates
Use case: Excluding candidates is useful when you already know certain entities match your criteria (such as results from previous runs or entities you’ve already identified), allowing you to focus on discovering new matches. By excluding these known entities, you won’t be charged for generating or evaluating them again, making your searches more cost-effective.Find All uses intelligence to deduplicate and disambiguate candidates you provide in the exclude list, which handles aliases and entities with slightly different names or URL variations. However, using the most official and disambiguated name and URL is recommended for best results.
exclude_list to prevent specific entities from being generated or evaluated. Excluded entities won’t incur evaluation costs or appear in results/events.
Exclude list structure: Array of objects with name (string) and url (string) fields.
Retrieving Candidates
Candidates can be accessed through multiple methods:/resultendpoint: Retrieve all candidates (matched and unmatched) after run completion- Streaming Events: Stream candidates in real-time as they’re generated and evaluated
- Webhooks: Receive HTTP callbacks for candidate events
Related Topics
- Find All Quickstart: Get started with Find All API
- Generators and Pricing: Understand how generator selection affects candidate discovery
- Run Lifecycle: Learn about run statuses and metrics
- Enrichments: Extract additional data from matched candidates
- Streaming Events: Monitor candidates in real-time
- Webhooks: Set up notifications for candidate events
- Access Research Basis: Deep dive into citation and reasoning structure