Job Change Alerts as a Sales Signal
By Kooperativa Engineering
Most B2B outreach signals require some inference: a company raised funding, so maybe they have budget; a company is hiring, so maybe they have a problem your product solves. A job change requires none of that. The person already evaluated your category before, at their old company, and now has fresh authority and a mandate to make changes somewhere new. There is nothing to infer.
It is also the rare signal that comes with a socially normal reason to reach out. "Congratulations on the new role" is not a pitch. Nobody reads it as one. That single fact is why reps who catch this signal early tend to get replies that a cold "quick question" email never does.
The part that actually breaks at scale
None of this is hard to do for ten contacts. Check LinkedIn for each once a week, note who moved, follow up. It falls apart completely somewhere between a few hundred and a few thousand contacts, not because the idea is wrong, but because a human checking profiles by hand does not scale linearly. Most CRMs quietly stop reflecting reality within weeks of a contact changing roles, and nobody notices until months later.
What an automated version actually looks like
Subscribing to a specific profile returns a signed webhook the moment a tracked field changes, rather than requiring anyone to poll for it. A payload for a job change looks like this:
{
"id": "c1c882c8-f172-4c00-8efc-be6fa9e3add4",
"event": "person.job_changed",
"monitor_id": "45e0bba8-196d-4f5e-aecc-52332ca832e2",
"timestamp": "1752918000",
"diff": {
"old_company": "Microsoft",
"new_company": "OpenAI",
"old_title": "CEO",
"new_title": "Board Member"
}
}The diff carries both the old and new value, which matters more than it sounds: it means a receiving system can decide whether the change is even relevant (a lateral move within the same company might not be worth acting on the same way a departure is) without a second lookup to find out what changed.
Every delivery also carries an HMAC signature over the request timestamp and body, verified against a per-monitor secret, so an endpoint can reject anything that was not actually sent by the source it claims to be from before it ever touches application logic.
Get started
Try Kooperativa
One API key. Person and company enrichment, structured search, and monitors under one flat license.
