Skip to main content
A Person Discovery Watcher turns a Person Search filter into a continuous feed. Each run re-evaluates your filters and delivers only the new matches to your channel — webhook or Slack. You get a deduplicated stream of people 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 person delivered.

Discovery vs. Entity watchers

A Discovery Watcher finds people you don’t know yet — it re-runs a filter and surfaces whoever newly matches. Use it to build a feed of candidates or decision-makers entering your ICP. An Entity Watcher tracks a known list of people and alerts you when their profiles change — a new job, a title bump, a location move. If you already hold the profile URLs, see Entity Watchers.

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 people new or refreshed since the previous run, up to max_results_per_run. You’re charged per delivered person.
Each run delivers matches whose profile was added or updated since the last run — a feed of movement within your filter set, not a one-time export. To pull the full current match set, use Person Search.

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 Person Search reference.

Filter format

Watcher filters use the same syntax and fields as Person Search — 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 — put an and group inside an or group’s conditions for “A and B, or C”. See the Person Search reference for the full field and operator catalog.

Recipes

Persona: title + location

Alert daily when new ML engineers in Paris appear:

Persona at a company-size band

New VPs of Finance at 51–500-employee companies:

Seniority + skills

New CXO-level people with machine-learning skills:

Movement signal: recently changed jobs

People who recently changed jobs (a new decision-maker signal — best for sales/GTM):

Education filter, excluding companies

Stanford alumni who are not currently at the big three:

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.

Manage a watch

Pricing

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

Entity watchers

Watch a known list of people for profile changes.

Person Search

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

Person Search reference

The complete catalog of filter fields and operators.

Pricing

Credit costs across every Crustdata endpoint.