---
title: "Introducing Signals: stop checking whether a company started hiring"
description: "Most intent data infers interest - someone read an article, someone visited a pricing page. A job posting is different: the company declared the intent itself, dated it, and put budget behind it."
canonical: https://jobspipe.dev/blog/introducing-signals
date_published: 2026-08-08
date_modified: 2026-08-08
author: Dvir Atias
---

# Introducing Signals: stop checking whether a company started hiring

Most intent data infers interest - someone read an article, someone visited a pricing page. A job posting is different: the company declared the intent itself, dated it, and put budget behind it. The problem was never the data, it was having to go looking for it. Signals lets you save a search over millions of active postings and get an email, a Slack message or a signed webhook when a company newly matches, with an honest account of how fast it fires and what the dataset still does not know.

Most of what the industry sells as **intent data** is inferred. Someone at a company read an article, visited a comparison page, or turned up in a bidstream, and a model decides that adds up to interest. It sometimes does. It is also downstream of a lot of guessing, which is why so much of it arrives as a score you cannot audit.

A job posting is a different kind of evidence. The company wrote it, dated it, published it, and attached a salary to it. Nobody inferred anything. When a business opens two analytics engineering roles, it has told you in public that it has a data problem and money assigned to solving it - usually a quarter or two before any content-intent tool notices anyone poking around.

We have served that data as an API for a while. The gap was never the data. It was that you had to go and ask for it, on a schedule you maintained, and remember what you had already seen. So we built [Signals](https://jobspipe.dev/signals).

## What a Signal is

A Signal is a search you save instead of re-running. You build it the way you already build a search - the roles, the skills, the company size, the industry, the country - and from then on JobsPipe watches the corpus for you. When something new matches, you hear about it by email, in Slack, or on a signed webhook into your own system.

There are two ways to be told. In job mode you get every new posting that matches, which suits recruiting and market tracking. In company mode you get told the first time a _company_ enters your result set and never again, which is what you want when the thing you care about is the account, not the individual req.

## The part that is harder than it looks

“Tell me what is new” sounds like a timestamp comparison. It is not, and the difference is what makes an alerting product either trustworthy or noise.

A posting can be refreshed, re-posted by the employer, or restored with older history. If “new” means the last time the record changed, every one of those events fires an alert for a job you were told about last week. So each posting carries the moment it _first entered the corpus_, stamped once and never moved, and that is the axis a Signal reads. A repost does not re-fire. A backfill of six months of history does not flood your inbox.

The second problem is the gap between a job existing and us having it. Sources are uneven; some hand over postings quickly, some take hours. If the evaluator asked “what arrived since I last looked?” and moved on, anything slow would land behind the mark and never be seen. So the window deliberately lags behind real time, and every match is written to a ledger before anything is delivered. The ledger is what guarantees you are told once - not zero times because a delivery failed, and not twice because it was retried.

## How fast it actually is

Honestly: not instant, and we would rather write that down than let you discover it. A posting reaches our corpus a median of roughly 80 minutes after it appears on the source, and the evaluator sits deliberately behind that so a slow source cannot cause a miss. In practice a Signal fires within a few hours of the posting going up.

For the use cases Signals is built for - a company entering your ICP, an account staffing up a team - hours is not the constraint. If you need the feed with no waiting at all, poll the [hiring signals API](https://jobspipe.dev/hiring-signals-api) directly and own the loop yourself.

## Two teams, same mechanism

**Sales and GTM.** Point a Signal at the shape of company you sell to, and let the hiring tell you when they enter it. Companies over 200 people opening data platform roles in the US or UK is a different list every week, and the week they join it is the week the problem became someone’s job.

**Recruiting.** The best time to reach a hiring manager is the week the role opens, before the funnel fills and before anyone has committed to an agency. Watching a specialty across every board - companies of 50 to 500 people hiring backend engineers in Germany, say - means you hear about the opening instead of finding it on a Friday sweep.

## What it does not know

Signals filter on what the dataset genuinely holds: role and title, skills named in the posting, employee count, industry, country, and source. Funding stage, revenue, and whether a company sells to businesses or consumers are not in there. We are working on enrichment, but a filter that silently matches nothing is worse than one that visibly does not exist, so those are absent rather than approximated.

Evaluating a Signal costs no job credits, and neither does previewing one before you save it. You are billed for the searches you run, not for the ones we run for you. Three Signals on the free plan, ten on Builder, fifty on Scale; email everywhere, Slack and webhooks from Builder up.

## Frequently Asked Questions

### Do Signals cost job credits?

No. Evaluating a Signal costs no job credits, and neither does previewing one before you save it; you are billed for the searches you run yourself, not the ones JobsPipe runs for you. The limits are per plan: three Signals on the free plan, ten on Builder and fifty on Scale. Email delivery is available everywhere, while Slack and signed webhooks start at the Builder package.

### How quickly does a Signal fire after a job is posted?

Within a few hours, not instantly. A posting reaches the corpus a median of roughly 80 minutes after it appears on the source, and the evaluator deliberately lags behind real time so that a slow source cannot cause a miss. Every match is written to a ledger before delivery, which is what guarantees you are told exactly once. If you need the feed with no waiting, poll the hiring signals API directly instead.

### Will a reposted or refreshed job trigger the same Signal again?

No. Each posting carries the moment it first entered the corpus, stamped once and never moved, and that is the axis a Signal reads rather than the last time the record changed. A repost by the employer, a refreshed record or six months of added history does not re-fire. In company mode you are told only the first time a company enters your result set, and never again.

Related

## Keep reading

-   [Guide · Sep 9, 2026What is a hiring freeze? Definition, signs in posting data, and how to check a company](https://jobspipe.dev/blog/what-is-a-hiring-freeze)
-   [Product · Oct 11, 2026YC startups hiring now: the fastest-hiring startups in every YC batch](https://jobspipe.dev/blog/yc-startups-hiring)
-   [Guide · Sep 9, 2026Are Hiring Freezes Normal?](https://jobspipe.dev/blog/are-hiring-freezes-normal)
-   [Guide · Sep 9, 2026Buying signals: what they are, examples from job postings, and how to collect them](https://jobspipe.dev/blog/buying-signals)
-   [Product · Sep 5, 2026Workflows: describe what to watch, and get told when it posts](https://jobspipe.dev/blog/workflows)


## Further reading

- [Hiring-signal intent](https://jobspipe.dev/glossary/hiring-signal-intent)
- [Sales trigger events, ranked by how early job postings surface them](https://jobspipe.dev/blog/sales-trigger-events)
- [How does intent data work?](https://jobspipe.dev/answers/how-intent-data-works)
- [Intent data](https://jobspipe.dev/glossary/intent-data)

---
Try it with no key: `curl -d '{"limit":3}' https://api.jobspipe.dev/v1/sandbox/jobs/search`. AI agents: the full machine-readable index of this site is https://jobspipe.dev/llms.txt?src=md-twin - API quickstart, MCP server, pricing. Free key (1,000 jobs to start): https://jobspipe.dev/signup