Dashboard

Signals & Workflows

Save a search as a Signal and get new matching jobs or companies, or companies that start hiring for a technology, by email, Slack or webhook, or start from a Workflow template.

A Signal is a saved search that JobsPipe keeps checking for you. When new postings match, it tells you by email, Slack or webhook. Manage Signals in the dashboard under Signals, or from an AI assistant with the MCP tools create_signal and list_signals. Signals have no public REST endpoint. They cost no credits.

What a Signal watches

Every Signal has:

  • Filters: the same filters as jobs search. At least one filter is required. Paging and sorting are not saved.
  • A mode:
    • Every new matching job (jobs): one match per new posting.
    • Companies that start hiring (companies): one match per company, the first time any of its postings matches. The company is not reported again.
    • Companies adopting a technology (technology_adoption, beta): one match per company and technology, the first time an established company starts hiring for it. See Technology adoption.
  • An intent (optional, up to 500 characters): a plain-language description of a relevant match, e.g. "companies adopting NetSuite in their own stack, not consultancies". AI checks each new match against it and drops the ones that don't fit. If the check cannot run, nothing is sent and the matches are checked again on the next run.

Each posting or company is delivered once per Signal.

Technology adoption

Beta, early access. Book a call to join. Until it is enabled for your account, a technology_adoption Signal cannot be created.

A technology_adoption Signal tells you when a company starts hiring for a technology, for example its first posting that names Snowflake with enough evidence. A companies Signal on a skills filter would instead report every company already using it.

It takes these filters only; job filters such as job_title_or are refused:

FilterRequiredDescription
technology_slug_orYes1 to 10 technology slugs, e.g. ["snowflake", "dbt"], as listed by GET /v1/technologies. An unknown slug is refused.
company_country_code_orNoISO country codes of the postings that name the technology, e.g. ["DE"]. A company that already used the technology elsewhere is reported when it starts hiring for it in these countries.
tier_minNoWeakest evidence tier that counts: confirmed (default) or likely.
min_prior_jobsNoPostings the company must have published before its first posting naming the technology. Default 5.

A company counts as adopting only if it was already hiring: its first posting in JobsPipe is at least 90 days older than the first posting naming the technology, and it published at least min_prior_jobs postings before that. A company that named the technology more than a week before you created the Signal is never reported.

Each company and technology pair is reported once, dated by the first posting that named it. The report comes when a new posting brings the evidence up to tier_min, as long as the first mention is at most 90 days old. These Signals are checked about once an hour. They cannot have an intent.

Each match names the company (with its website and JobsPipe company page when its domain is confirmed), the technology, the evidence tier, the number of postings naming it and the adoption date. See Webhooks → alert.matched for the payload.

Save a search as a Signal

  1. Run a search in Search.
  2. Click Save as Signal above the results.
  3. Fill in the dialog:
    • Name: pre-filled from your search.
    • Tell me about: Companies that start hiring or Every new matching job.
    • Email: where to send matches.
    • How often: Daily digest or As soon as they appear.
  4. (Optional) Click Preview how noisy this is to see how many postings matched in the last 30 days.
  5. Click Save signal.

Signals saved from Search deliver by email. To use Slack or a webhook, or to add an intent, create the Signal from Workflows.

Workflows

Workflows sets up a Signal from a template or from a chat. Every workflow appears in Signals.

  • Browse templates. Pick a ready-made watch, fill in its fields and click Create workflow. Templates cover sales and lead gen, recruiting, competitive intel, job boards and feeds, job seekers and research. Many come with an editable intent under What makes a match relevant? (AI-filtered).
  • Chat. Describe what you want to watch. The assistant proposes the mode, cadence, filters, intent and a 30-day match count. Nothing is created until you choose a destination and click Create workflow.

Both let you choose the destination (Email, Slack or Webhook).

Destinations

Each Signal delivers to one destination. To send the same search to two places, create it twice.

DestinationTargetPlanWhat is sent
EmailAn email addressAll plansUp to 10 matches, and a count of the rest
SlackA Slack incoming webhook URL (https)Builder and aboveUp to 10 matches in one message
WebhookA public https URLBuilder and aboveSigned alert.matched events of up to 25 matches each

A webhook destination gets its own whsec_ signing secret, shown once after you create the Signal. The same dialog shows whether a signed alert.test reached your URL, so a wrong address or an auth wall shows up before any match is sent. See Webhooks → alert.matched for the payload, signatures and retries, and Slack as a Signal destination.

Signal emails stop if you turn off Job alerts under Settings → Preferences.

Cadence

OptionCadenceWhen matches are sent
As soon as they appear / within hoursinstantWithin hours of discovery. Checks run every few minutes, but discovery itself lands in batches a few times a day, so new matches arrive in bursts rather than one by one.
Daily digestdailyOnce a day from 09:00 UTC, covering everything since the last digest. Nothing is sent on days with no matches.

Manage Signals

The Signals page lists each Signal with its filters, mode, destinations and last check. Each destination shows its delivery count and the outcome of the latest attempt, e.g. "46 delivered, last HTTP 200" or "Paused: last attempt got HTTP 401". For each Signal you can:

  • Pause or resume it. A paused Signal sends nothing.
  • Edit it (pencil icon): name, titles and excluded titles, sources and excluded sources, countries, seniority, work arrangement and the intent. Anything else stored on the Signal can be changed under Edit as JSON. Changes apply from the next check; the Signal keeps its id, destinations and webhook secret.
  • Show full signal: every value of every filter, one row each (titles, excluded titles, sources, excluded sources, countries, work arrangement and so on), and the intent text when one is set. The card itself shows a short summary.
  • Delivery log: the newest 200 deliveries, each with its time, status and HTTP answer, and the postings it carried (title, company, posting id and link). Download CSV gives the same as one line per posting, so you can compare it with what your endpoint received. Email and Slack deliveries are stored as the rendered message, so they list no postings.
  • Delete it.

The same change is available as PATCH /api/alerts/:id with a JSON body of filters, intent or name. Destinations and cadence can't be changed; add a new Signal for a new destination. A failed checks badge means recent checks could not run; the Signal retries on the next check.

A destination is paused when a delivery fails all 6 attempts (about 8.5 hours) and it accepted nothing in the previous 24 hours. You get an email. Matches found while it is paused are not delivered. Fix the endpoint, then click Resume next to the destination.

Limits

PlanSignalsSlack and webhook destinations
Free3Not available
Builder, Growth10Available
Scale, Business50Available

Paused Signals count toward the limit.

On this page