Skip to main content
A Job Watcher turns a Job Search filter into a continuous feed. Each run re-evaluates your filters and delivers only the new matching jobs to your channel, so you get a deduplicated stream of postings entering your criteria without re-running searches yourself.
Pricing: the first run is a free baseline (up to 5 matches), then 0.5 credits per new job delivered.

How it runs

1

Create the watch

POST your filters, a config (schedule + result cap), and one or more notifications channels. The response returns a watch id.
2

Baseline run (free)

Within seconds, the first run delivers a free baseline sample of up to 5 matches so you can confirm the setup and payload shape. No credits are charged.
3

Recurring runs

On your schedule (every_hours), the watcher re-runs your filters and delivers jobs new since the previous run, up to max_results_per_run. You’re charged per delivered job.
Bound your filter by posting date. A leaf like { "field": "metadata.date_added", "type": "=>", "value": "2026-07-05" } keeps the watch focused on fresh postings instead of the full historical pool. Thirty days back is a good default.

Request body

The response returns the watch id:
All examples require the headers authorization: Bearer YOUR_API_KEY, content-type: application/json, and x-api-version: 2025-11-01. For the full list of field values and operators, see the Job Search reference.

Filter format

Watcher filters use the same syntax and fields as Job Search, so there is no new filter language to learn. Every filter is a tree:
Each leaf is a { field, type, value } triple: field is the attribute, type is the operator ((.) for contains, =, in, not_in, => for ≥, =< for ≤, and so on), and value is what to match. Each op combines its conditions with and or or, and op-groups nest.

Recipes

Title + location + company size

Alert daily on new software engineer roles in the United States at 3,000+ person companies, newest first:

Recent postings in a category

New engineering roles posted in the last 30 days, at companies that raised a round:

Remote roles at specific companies

New remote postings from a set of companies you track:

Delivery channels

Every watch needs at least one channel in notifications. Add one or more; matches fan out to all of them.
A Slack channel must be a genuine Slack incoming webhook (https://hooks.slack.com/services/…). Any other URL will fail delivery.

Delivered record shape

Each delivered job carries the posting, the company, and the location:

Manage a watch

Pricing

You’re charged only for jobs actually delivered, never for a run that finds nothing new. For the full credit catalog, see Pricing.

Job Search

Run the underlying search on demand and pull the full current match set.

Job Search reference

The complete catalog of filter fields and operators.

Person watchers

The same recurring-feed model over people.

Pricing

Credit costs across every Crustdata endpoint.