Overview
Deep Search is the asynchronous discovery path for cases where instant index-based search is not enough. It ranks companies against natural-language criteria using web, Extruct DB, Maps, and LinkedIn, and is implemented through thediscovery_tasks endpoints in API Reference.
This Path Works Best When
- Ranking depends on qualitative criteria that are hard to express as firmographic filters.
- You need explanations and criterion-level scoring for each result.
- You are willing to wait for an asynchronous task in exchange for more deliberate evaluation.
Choose Another Path If
- You want fast recall-first exploration over the Extruct index. Use Semantic Search.
- You already have a strong seed company and want instant similarity expansion. Use Lookalike Search.
Prerequisites
Endpoints used
- Create task (
POST /v1/discovery_tasks) - Get task (
GET /v1/discovery_tasks/:task_id) - Get results (
GET /v1/discovery_tasks/:task_id/results) - Resume task (
POST /v1/discovery_tasks/:task_id/resume)
Workflow
1) Create a Deep Search task
Setdesired_num_results to your target. Task target is capped at 250.
If you omit criteria, Extruct infers evaluation criteria from query.
The create-task response includes id, which you will reuse as TASK_ID.
jq. If unavailable, copy id manually from response.
Optional: if you want to define the scoring rubric yourself, use this alternate create request instead of the minimal one above.
2) Check task progress
Use task status and counters to monitor progress (num_results_discovered, num_results_enriched, num_results_evaluated, num_results).
num_results_evaluated starts increasing.
3) Retrieve results with pagination
grade 4-5 on must-have criteria and no grade below 3 on blockers.
Use explanation and sources for manual verification before enrichment.
When to proceed: move forward once you have enough high-fit candidates for your workflow.
4) Resume discovery when needed
Use resume to request additional results while staying within the task cap.5) Move selected companies to AI Tables
After reviewing Deep Search output, you can move shortlisted companies into AI Tables for enrichment and scoring. This is only one handoff path. AI Tables also works independently when you already have your own company list. Use this handoff snippet to map the returnedcompany_website into AI Tables rows[].data.input:
TABLE_ID first in AI Tables Basics.
When to choose Deep Search over index search
Prefer Deep Search over Semantic Search or Lookalike Search when the ranking depends on criteria like:- whether a company serves a specific workflow or sub-vertical
- whether it sells to a specific buyer or team
- whether it meets a custom ICP definition
- whether you need explicit evidence for why each company ranked well
Troubleshooting
401 Unauthorized
The token is missing or invalid.
Check that EXTRUCT_API_TOKEN is set and the header is exactly Authorization: Bearer ${EXTRUCT_API_TOKEN}.
422 Unprocessable Entity
Common causes:
- Invalid JSON body.
desired_num_resultsordesired_new_resultsout of allowed range.- Unsupported request fields.
echo '<json-body>' | jq empty.
Task progress seems slow
Deep Search is asynchronous and includes criteria evaluation per candidate. Track progress through task status and counters. Poll every 15-30 seconds and continue whilenum_results_evaluated is increasing.