> ## Documentation Index
> Fetch the complete documentation index at: https://www.autumn.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Autumn AI (autumn.ai) is a people and company intelligence API, a separate company from useautumn.com (billing software); no billing-product routes exist here.
> Base URL https://api.autumn.ai. Auth on every request: `X-API-Key: <key>` or `Authorization: Bearer <key>`. Plain HTTP + JSON. Hosted MCP: https://api.autumn.ai/mcp. Schemas: https://api.autumn.ai/openapi.json. Every docs page is Markdown at its URL plus `.md`.

# Filter searches

> Turn a Clay Find Companies or Find People search into an Autumn research task.

A Clay search is a set of filters over a provider's database. An Autumn task describes who
you want, checked against the live web. Write down what the filters were trying to find, then
split it into a prompt, `count`, `rules` and `output.schema`.

## Read the search

The search sits on the table's `source` column:

```bash wrap theme={"theme":{"light":"github-light","dark":"github-dark"}}
clay tables columns get "$TABLE" \
  | jq '.data[] | select(.type == "source") | .sources[] | {name, search}'
```

`search.dslQuery` holds the query (for example
`select from people where experiences.any(is_current = true and job_title contains "CEO")`),
`search.entityType` is `companies` or `people`, and `search.sourceRecordLimit` is how many
rows it pulled.

## Translate each filter

| Clay filter | Autumn |
| - | - |
| Industry, keywords, description | The prompt, as what the company does ("sells to developers"), not the category label |
| Employee count, revenue band | A rule (`"Between 51 and 200 employees."`) |
| HQ location | A rule |
| Funding stage, last round date | A rule with the window as dates |
| Job title, seniority | The prompt for a people task ("leads engineering: VP Engineering, Head of Engineering, or CTO") |
| Exclusions | One line in the prompt ("Exclude agencies and consultancies") |
| Result limit | `count` |
| Columns selected | `output.schema` |

Filters are proxies. "Industry: Software Development + keyword: developer" usually means
"sells to developers". Ask the user what the search was for, once, and put that in the
prompt. Things filters couldn't express (raised in the last 30 days, hiring for a role,
launched a product) go in as rules too.

## Example

| Clay filter | In the Autumn task |
| - | - |
| Industry *Software Development* + keyword *developer* | prompt: "software companies that sell to developers or engineering teams" |
| Employees *51 to 200* | rule `size` |
| HQ *United States* | rule `us_hq` |
| Last round *Series A or B*, past year | rule `recent_round`, with dates |
| Excluded keywords *agency, consulting, crypto* | prompt: "Exclude agencies, consultancies and crypto companies" |
| Limit *15* | `"count": 15` |

```bash wrap theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -sS -X POST "https://api.autumn.ai/task" \
  -H "X-API-Key: $AUTUMN_API_KEY" -H "Content-Type: application/json" \
  -d '{
    "prompt": "Find 15 software companies that sell to developers or engineering teams, are headquartered in the United States, have between 51 and 200 employees, and announced a Series A or Series B round between 2025-10-01 and 2026-10-25. Exclude agencies, consultancies and crypto companies.",
    "count": 15,
    "output": {
      "id": "target-accounts", "kind": "research", "path": "outputs/target-accounts.jsonl",
      "schema": {
        "company": {"type": "str"},
        "domain": {"type": "domain"},
        "employee_count": {"type": "int"},
        "round": {"type": "str", "description": "Series A or Series B, with amount"},
        "round_date": {"type": "date"},
        "round_source": {"type": "url"},
        "why_developer_focused": {"type": "str", "description": "One line, from the company site"}
      }
    },
    "rules": {
      "us_hq": "Headquartered in the United States.",
      "size": "Between 51 and 200 employees.",
      "recent_round": "Announced a Series A or Series B between 2025-10-01 and 2026-10-25, with a source.",
      "sells_to_developers": "Its main product is bought or used by developers or engineering teams."
    },
    "clarify": false
  }'
```

This returned 15 rows in about two minutes, every rule `match`, including a round announced
four days before the run. A sample:

| company | employee\_count | round | round\_date |
| - | - | - | - |
| Depot | 61 | Series A \$10M | 2026-03-11 |
| Mintlify | 85 | Series B \$45M | 2026-04-16 |
| Firecrawl | 62 | Series B \$75M | 2026-09-22 |
| Daytona | 78 | Series B \$60M | 2026-10-21 |

Need more? Continue the same task, so the agent knows what it already found:

```bash wrap theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -sS -X POST "https://api.autumn.ai/task/$TASK_ID/continue" \
  -H "X-API-Key: $AUTUMN_API_KEY" -H "Content-Type: application/json" \
  -d '{"message": "Find 10 more companies that meet the same rules, without repeating any already in the list."}'
```

In the example this added 10 rows: 25 companies, no repeats, every rule `match`.

## Then find the people

Clay's Find People step becomes an enrichment task over the accounts you just found:

```json wrap theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "prompt": "For each input company, find the person who currently leads engineering (VP Engineering, Head of Engineering, or CTO if there is neither). Return one row per input company, keeping its domain. Leave fields empty rather than guessing.",
  "input_schema": {"company": "str", "domain": "str"},
  "input_rows": [{"company": "Depot", "domain": "depot.dev"}],
  "output": {
    "id": "eng-leaders", "kind": "research", "path": "outputs/eng-leaders.jsonl",
    "schema": {
      "name": {"type": "str"},
      "title": {"type": "str"},
      "linkedin_url": {"type": "url"},
      "title_source": {"type": "url", "description": "Page showing the current title"}
    },
    "schema_order": ["name", "title", "linkedin_url", "title_source"]
  },
  "rules": {"current_role": "The person holds the title now, per a dated or current source."},
  "clarify": false
}
```

For the first five accounts above this returned the engineering lead for all five, each with
the page that shows their current title.

Add `work_email` and `phone` the way [Enrichment](https://www.autumn.ai/docs/clay-migration/enrichment.md#work-emails-and-phone-numbers)
describes. Remove accounts and people the user already has (match on domain or LinkedIn URL)
in code, before anything reaches the CRM.

> **[Writing task prompts](https://www.autumn.ai/docs/best-practices/prompting.md)**
>
> How to state criteria so the list stops where you want.

> **[Move a table](https://www.autumn.ai/docs/clay-migration/move-a-table.md)**
>
> Compare the new list with what Clay returned.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.