Skip to main content
People search, enrichment, and outreach. Get started with the clodo API
Search API

Agentic Search

The canonical agentic people search endpoint. Describe the people you want to find in as much detail as you like—their role, background, expertise, company, or specific experiences. clodo searches and researches potential matches, returning people with evidence explaining why they fit your criteria.

#Use case

Use Agentic Search to find people whose fit depends on a specific combination of experience, expertise, and accomplishments. Describe your ideal persona in detail, including what matters most and who to exclude. The agent researches potential matches and returns evidence explaining why each person fits.

  • Find B2B leads for a specific customer profile. Look for engineering leaders at robotics companies who have taken autonomous warehouse systems into production, or finance executives with experience expanding a business internationally. Explain the experience that makes someone relevant to your product.
  • Source candidates for hard-to-fill roles. Search for founding engineers who have built developer tools, operations leaders who have scaled manufacturing, or researchers with both academic and industry experience. Spell out the background your hiring team needs beyond a job title.
  • Find experts for interviews, advisory work, and research. Identify practitioners who have implemented a particular technology or solved a specific operational problem. Use the returned fit summaries, proof points, and source evidence to assess whom to contact.

For complete workflows, see Recruiting & Candidate Sourcing, Expert Discovery, and GTM Lead Generation.

#Endpoint

POST https://api-public.clodo.ai/api/public/v1/agentic-search/

Send your API key in the x-api-key header. See Authentication.

This endpoint returns 202 Accepted. Create a webhook signing secret and supply a public HTTPS webhook_url before making your first request. See Async Polling for retrieving results.

#Pricing

See Credits & Pricing for credit costs and charging behavior.

#Errors

For error responses and retry guidance, see Handling Errors.

clodo's canonical agentic people search endpoint. Describe your target persona in plain language and get as specific as you want: their current role, past experience, technical expertise, location, the kind of company they work at, or something particular they have done. Combine criteria, explain what matters most, and include exclusions or examples to clarify who you are looking for.

For example: “Find engineering leaders at US robotics companies who have personally worked on autonomous warehouse systems. Prioritize people who previously took a robotics product from prototype to production, and exclude consultants and recruiting firms.” clodo searches people data and the open web, researches potential matches against your criteria, and returns people with fit summaries, proof points, and source evidence. The query field supports up to 2,000 characters.

#Availability

Agentic Search is enabled per account. Once enrolled, all your API keys can use it, including newly created keys. Accounts that are not enrolled receive 404. Contact support to request access.

#Credit budget

Set max_credits to control the maximum charge for a job: 300–2,000 credits, with a default of 500. The cap is reserved when the job is accepted. At completion, only the final charge is retained; the unused reservation is released or refunded.

The final charge depends on the research performed and leads delivered, and never exceeds your cap. A completed search that performs work but finds no qualifying leads costs 100 credits. Internal failures and cancellation before paid work starts are not charged. Partial deliveries remain billable within the same cap. A webhook delivery failure does not undo the charge; retrieve the result by polling.

#Request body

Field Type Required Description
query string Yes Describe the people you want to find in plain language, up to 2,000 characters. Be as specific as you like about their role, background, expertise, company, location, or experiences. Include priorities, exclusions, and any evidence you want checked. Must not be empty.
target_results integer No Desired number of leads, from 1 to 50. Default: 50. This is a target, not a guaranteed result count.
max_credits integer No Maximum charge, from 300 to 2,000 credits. Default: 500.
webhook_url string Yes Public HTTPS receiver URL, up to 2,048 characters. Must resolve to a public IP address.

Create an active webhook signing secret before submitting a request. Without one, the endpoint returns 409.

#Request examples

curl --request POST 'https://api-public.clodo.ai/api/public/v1/agentic-search/' \
  --header "x-api-key: $CLODO_API_KEY" \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: agentic-search-example-001' \
  --data '{
    "query": "Find engineering leaders at US robotics companies with evidence of deploying autonomous warehouse systems.",
    "target_results": 25,
    "max_credits": 500,
    "webhook_url": "https://your-app.example/webhooks/clodo"
  }'

Run these examples on your server to keep your API key private. Replace the example webhook URL with your receiver and use a new idempotency key for each new search.

#Accepted response

HTTP 202 Accepted:

{
  "id": "dj_a1b2c3d4e5f6478890abcdef123456789",
  "status": "pending",
  "created_at": "2026-09-07T12:00:00Z"
}

#Results and webhook events

The agentic_search.completed event contains the final result, including successful searches with zero leads:

{
  "id": "dj_a1b2c3d4e5f6478890abcdef123456789",
  "event_type": "agentic_search.completed",
  "partial": false,
  "completion_reason": "",
  "total_returned": 1,
  "results": [
    {
      "full_name": "Alex Morgan",
      "current_job_title": "VP of Engineering",
      "headline": "Building warehouse robotics",
      "location": "Boston, Massachusetts, United States",
      "professional_url": "https://www.linkedin.com/in/example-alex-morgan",
      "company": {
        "name": "Example Robotics",
        "domain": "robotics.example",
        "industry": "Robotics",
        "employee_count_range": "51-200"
      },
      "experience": [
        {"company": "Example Robotics", "title": "VP of Engineering", "date_range": "2022-present"}
      ],
      "fit_summary": "Leads engineering for a US company deploying autonomous warehouse systems.",
      "proof_points": ["Company team page identifies Alex as VP of Engineering."],
      "evidence": [
        {"headline": "Leadership team", "url": "https://robotics.example/team"}
      ],
      "tier": "perfect"
    }
  ]
}

The response above is illustrative. Individual person fields may be empty or omitted when unavailable. Evidence entries can include headline, description, and url. Source URLs are only included after retrieval during the job.

Field Meaning
results Delivered people, with professional details, company, experience, fit summary, proof points, evidence, and a fit tier when available.
total_returned Number of people delivered. A zero-result search returns 0 and an empty results array.
partial true when the job stopped early and returned the results saved so far.
completion_reason Empty on normal completion; budget_exhausted, deadline_exceeded, or user_cancelled when stopped early.

An internal failure emits agentic_search.failed:

{
  "id": "dj_a1b2c3d4e5f6478890abcdef123456789",
  "event_type": "agentic_search.failed",
  "error": {"code": "error", "message": "Internal error — you were not charged."}
}

Verify webhook signatures before processing results. See Webhook Events for additional failure codes.

#Polling

Use GET /api/public/v1/agentic-search/{job_id}/ with your API key. Poll every 30–60 seconds until the status is completed, failed, or cancelled.

The polling envelope includes status, timestamps, tier: "agentic_search", leads_returned, result, and error. On completion, result contains the same result fields as the webhook, without id or event_type. Polling consumes no credits.

#Cancellation

Send POST /api/public/v1/agentic-search/{job_id}/cancel/ with your API key. No request body is required. It returns 202 with the job's current id, status, and created_at.

  • A pending job cancels immediately and releases its entire credit reservation.
  • A running job stops at the next safe point and completes with partial: true, completion_reason: "user_cancelled", and any saved results. Work already performed remains billable within your cap.
  • Cancelling an already terminal job returns its current state. It does not restart the job or refund completed work.

Poll after requesting cancellation to confirm the terminal state. The cancellation request is idempotent.

#Idempotency

The optional Idempotency-Key header is scoped to your API key. Repeating the same key and validated request body returns the existing job, without another dispatch or reservation. Changing the body—including webhook_url—while reusing the key returns 409. Use a fresh key for every new logical request, including requests to other endpoints.

#Rate limits

Operation Sustained requests per minute Burst
Create search 2 2
Poll search 3,600 100
Cancel search 60 10

At most 2 Agentic Search jobs per API key and 3 per account can be pending or running. New requests beyond these concurrency limits return 429. Replays of existing idempotent requests do not create a new job.

#Status codes

HTTP Meaning
202 Search accepted, existing job replayed, or cancellation acknowledged.
400 Invalid query, target, cap, or webhook URL.
402 Billing cannot authorize the requested credit reservation.
403 API key is missing, invalid, revoked, or the account is ineligible for API access.
404 Account is not enrolled for Agentic Search, or the requested job is unavailable to your account.
409 No active webhook signing secret, or an idempotency key was reused with a different body.
429 Request rate or in-flight job limit exceeded.
500 Internal admission or dispatch failure; the reservation is released or refunded.

For other platform errors and response formats, see Handling Errors.

clodo Docs