find_best_tool
Given a natural-language question about which AI tool or API is best for a task (currently transcription, text-to-speech, web search, scraping & browser and ocr & document extraction), return Syftly's ranked recommendation: a citeable summary, a provider table with prices and trade-offs, dated sources, and a confidence label. Ask in plain English about price, accuracy, language or capability trade-offs — e.g. 'best OCR API for scanned PDFs' or 'best web scraping API for JavaScript-heavy sites'. Optionally pass "category" to disambiguate; otherwise it is detected from the question.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The question in natural language, e.g. 'best transcription API for Dutch'. | |
| category | No | Optional category id to disambiguate the question; omit to let Syftly detect it. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | ||
| query | Yes | The human question (page H1). | |
| routing | Yes | Honest routing outcome: 'matched' = answered from a real category; 'none' = no category matched (out-of-scope/gibberish) — an honest no-match, not a fabricated answer; 'ambiguous' = fit 2+ categories. 'none'/'ambiguous' carry `categories` and no real recommendation/providers. | |
| sources | Yes | ||
| summary | Yes | Citeable summary, 40-80 words, reused verbatim across all views. On a no-match, the plain-language message. | |
| updated | Yes | ISO date. | |
| category | Yes | e.g. 'transcription'; '' on a no-match. | |
| providers | Yes | ||
| categories | No | Present only when routing !== 'matched': the supported categories so the caller can re-ask in scope. | |
| confidence | Yes | Confidence/depth label. | |
| recommendation | Yes |