Documentation
Watches
A watch is a standing query Vaaya keeps running for you. You describe what to look for in plain language, Vaaya polls on a schedule, and only genuinely new findings surface. Creating, listing, pausing and deleting a watch are free; the scheduled runs spend from your balance under a daily budget you control.
The model
Every watch is a *worker*: a saved query plus a kind, a cadence, and a findings list. The kind names what it does and picks the machinery behind it.
| Kind | What it watches |
|---|---|
signal | Buying signals against a plain-English ICP: funding, hiring, launches, leadership changes, press. Polled roughly every 6 hours. |
job_search | Roles matching a description, as they are posted. |
research | A standing deep-research task, run asynchronously. |
custom | Free-form: a page, a topic, a competitor, anything you can describe. The default. |
Findings are de-duplicated across runs, so a watch reports what changed rather than everything it saw. They land on the Watches dashboard in the app, and are readable from any agent with worker_findings.
The tools
Watches are driven over MCP. There is no /api/run equivalent today, so an HTTP-only integration cannot create them.
| Tool | What it does | Price |
|---|---|---|
worker_create | Create a watch. Pass the query, and optionally kind and cadence. | Free |
worker_list | Your watches with kind, status, cadence, last run and finding counts. | Free |
worker_findings | Recent findings, newest first. Optional worker_id and limit (default 50). | Free |
worker_pause | Stop a watch running, keeping it and its findings. | Free |
worker_resume | Resume a paused watch. | Free |
worker_run_now | Run every active watch immediately instead of waiting for the next tick. | Spends from the daily budget |
worker_delete | Delete a watch and its findings. | Free |
// "Watch seed-stage B2B SaaS in Europe that just raised."
worker_create({
query: "seed-stage B2B SaaS companies in Europe that just raised",
kind: "signal",
signal_types: ["funding", "hiring"]
})
// → { ok: true, worker_id: "wrk_4b1e", kind: "signal" }What it costs
- Creating, listing, pausing, resuming and deleting a watch are free.
- Each scheduled run spends from your balance at the price of whatever it calls (search, scraping, research), the same per-call prices as anywhere else in the catalog.
- Spend is bounded by a daily budget, $1/day by default, which you can change. A watch stops running for the day once its budget is used.
worker_run_nowspends against the same budget, so a manual run is not free.
Where findings land
Findings appear on the Watches dashboard in the app, where a signal finding can be worked into outreach directly. Agents read the same list with worker_findings, so a watch created in chat is visible to Claude Code, and vice versa.