search_records
Search records by full-text content, title, typed field conditions, or linked relations, returning sorted, paginated previews with match snippets.
Instructions
Search active records. text = full-text search over titles AND every stored data value at any depth (not key names): all words must match, case/accent-insensitive, as prefixes ('interv' finds 'interview'); best match first with a match_snippet. Use text when the user describes something by content rather than exact title. query = case-insensitive literal title substring. AND top-level filters use canonical JSON equality (null differs from missing; nested values compare in full). All three combine with AND, as do: where = [{field, op, value}] typed conditions. field is a LIST of keys (["offer","ctc"]), op is eq ne gt gte lt lte between in contains exists missing. A condition matches only when the stored type matches the operand type: 38 never matches "38" or "38 LPA". Dates compare correctly when stored as ISO 8601 strings (2026-10-03). linked_to = {record_id, relationship_types?, direction?}: only records linked to that record; direction is from the matched record's side (outgoing = it is the source). order_by = {field, type: "number"|"string", direction?}: sort by a field; records lacking the field or holding another type are EXCLUDED, not sorted last. Not combinable with text. Return 1–100 bounded previews with an opaque cursor. Zero matches does not establish nonexistence. Reuse the same search parameters with the next cursor.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | ||
| limit | No | ||
| query | No | ||
| where | No | ||
| cursor | No | ||
| filters | No | ||
| order_by | No | ||
| linked_to | No | ||
| collection_id | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||