Skip to content

Monitors

Watch any professional profile or company for changes and receive signed webhooks when something updates.

Subscribe to any profile or company URL. When a change is detected (job title, company, headline, headcount), Kooperativa sends a signed POST to your webhook_url.

How it works

  1. Create a monitor with a profile or company URL and your webhook endpoint
  2. Kooperativa detects changes as profiles are ingested from the data lake
  3. A signed webhook fires immediately. No polling needed.

Available events

Person events

Event Fires when
person.job_changed Current company changes
person.title_changed Job title changes (same company)
person.headline_changed Profile headline changes
person.location_changed City or country changes
person.skills_changed Skills list changes

Company events

Event Fires when
company.staff_changed Employee count changes
company.description_changed Company description changes

Webhook payload

{
  "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"
  }
}

Signature verification

Every delivery includes these headers:

Header Description
X-Kooperativa-Request-Id Unique delivery UUID
X-Kooperativa-Event Event type
X-Kooperativa-Timestamp Unix timestamp (seconds)
X-Kooperativa-Signature HMAC-SHA256 of v0:{timestamp}:{body}
Verify webhook signaturejs
import crypto from "crypto";

function verifyWebhook(req, secret) {
  const timestamp = req.headers["x-kooperativa-timestamp"];
  const signature = req.headers["x-kooperativa-signature"];
  const expected = crypto
    .createHmac("sha256", secret)
    .update(`v0:${timestamp}:${JSON.stringify(req.body)}`)
    .digest("hex");
  return expected === signature;
}

Retry policy

If your endpoint doesn’t respond with 2xx within 30 seconds, Kooperativa retries up to 5 times:

Attempt Delay
1 Immediate
2 1 minute
3 5 minutes
4 30 minutes
5 2 hours
Navigation

Type to search…

↑↓ navigate↵ selectEsc close