Watchtower

lat.watchtower/watchtower · v0.1.1 · cloud-and-infra

Watchtower is healthy: it completed an MCP handshake in 1300 ms and exposes 8 tools.

Job alerts for AI agents: describe a role once, get only new postings from 1,500+ tech job boards.

Endpoint: https://watchtower.lat/mcp?ref=registry (streamable-http)

Repository · Website · JSON · Add to my inventory

Facts

Users (last 30 days)0
HandshakeHealthy
Auth neededNone
Tool count8
Latency1300 ms
Last checked (UTC)2026-10-15T12:25:18.860Z

Health history

Checked (UTC)StatusLatencyError
2026-10-15T12:25:18.860ZHealthy1300

Tools (8)

watch_jobsCreate a persistent watch for tech jobs. Describe what you want in query ("iOS jobs in Austin making at least 150k a year with a maximum of 6 years of experience") and leave url out: the watch then covers every job board Watchtower monitors (tech companies and startups, whatever platform they use) a
search_jobsFind the tech jobs open right now that match a request, across every job board Watchtower monitors (tech companies and startups). Describe what you want in query ("iOS jobs in Austin with a maximum of 6 years of experience"). Read-only: nothing is saved and no watch is created, and no token is neede
list_companiesList the companies whose job boards Watchtower monitors, i.e. what search_jobs and watch_jobs without a url cover. Pass query to check whether a company is covered ("stripe"). Each entry has name, board_url (pass it to watch_jobs as url to follow only that company), platform and open_jobs. Read-only
get_changesReturn job changes detected since your last get_changes call, across all your watches or one watch. This is the cheap replacement for re-browsing careers pages: if it returns an empty list, nothing you care about has changed. By default the cursor advances so each change is delivered once; pass peek
list_watchesList all active watches for your client with their health, last check time and number of pending (undelivered) changes.
get_watchGet a watch with its status and the jobs currently open that match its filters: on its board, or across every monitored board for a watch created without a url. Use this to answer "what is open right now" without searching or fetching careers pages yourself.
ack_changesMark changes up to a cursor as processed. Use with get_changes(peek=true) for at-least-once delivery: peek, act on the changes, then ack the cursor get_changes returned. Not needed if you call get_changes without peek (that acknowledges automatically).
delete_watchStop monitoring. Frees one of your watch slots. Delete watches you no longer need.