Watch a job intent
watch_intentRegister a standing intent so new matches can be pulled later.
Instructions
Register a standing intent so new matches can be pulled later.
The caller supplies its OWN anonymous fingerprint (e.g. "#a3f9-k2p7-x8q1"; make it 12+
random characters, a four-character tag collides with strangers) — the client generates
and owns it; the server stores but can never recover it, so persist it client-side and
pass the identical one to check_watches. Only the fingerprint and non-PII filter keys
are stored — never a name, email, phone or résumé. Accepted filter keys mirror
search_jobs: skills (ANY-overlap), required_skills (ALL/AND — use this to keep
sales / solutions-architect roles out), remote (bool), role_family (e.g.
"engineering"), min_salary (int), company (one employer, resolved at registration),
location (substring of the location text, alias-aware like search_jobs: 广州 also
reaches 广东·天河区 rows, Beijing reaches 北京市, "remote" reaches 远程), title
(list of title substrings, ANY-of, synonym-expanded for HR terms like search_jobs —
the way to watch for recruiting or other roles no skill tag names).
Any other key is REFUSED (ERR_UNKNOWN_FILTER) rather than silently dropped, and a
role_family outside engineering | data | product | design | marketing | sales | hr |
ops | other is refused too (ERR_UNKNOWN_ROLE_FAMILY); "recruiting" and "招聘" resolve
to hr.
min_salary keeps rows with NO stated pay (they cannot be ruled out); it only drops rows
whose stated pay is below the floor. Pay is stated mostly where law requires it (US
postings on Greenhouse/Lever/Ashby), so a watch that needs a number will lean US.
A board watch: pass board_url (a Greenhouse / Lever / Ashby / Moka / 北森 / Workable / SmartRecruiters / Workday careers URL,
as for read_board) with optional location and title and nothing else; check_watches
then reads that board live on every pull and reports what appeared and what
disappeared since the last pull. This is how an employer outside the index is watched.
Not combinable with company, skills, remote, min_salary or role_family; a closed
portal (Feishu, a job site) is refused with the reason.
Returns { watch_id, status, fingerprint, existing_watches, fingerprint_notice }.
existing_watches > 0 means this fingerprint was already in use; if those watches are
not yours, pick a longer random fingerprint.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| filters | Yes | ||
| fingerprint | Yes |