Company Pulse

What changed at a company, dated and joined on its domain

One event stream per company website domain, joined from everything we collect each day: hiring, posted pay, tools named in job ads, Shopify apps, reviews and public contract awards. Each event says when it happened and when we first saw it, so a backtest only sees what was knowable at the time. History starts on 21 October 2026; we do not backfill.

Event types

Every event is about a company, never a person. The company key is the registrable website domain (careers.example.de and shop.example.de both count as example.de). An event is provisional while the history behind it is shorter than 28 days.

TypeSourceRule
hiring_up / hiring_downEmployer job boardsOpen jobs vs 7 days ago (boards tracked on both days) and vs 28 days ago (same boards): at least 10 jobs at the base, a change of 5 or more and 20% or more. Also a 7-day surge, or a freeze where closures far outnumber openings. One per window per week.
new_countryEmployer job boardsFirst job in a country, on boards we already tracked (a newly found board is not an expansion).
new_functionEmployer job boardsA department that appears with 2 or more new jobs on boards we already tracked.
ats_switchEmployer job boardsA board on another applicant tracking system, with evidence that posting moved or the old board is emptying.
pay_first_seenEmployer job boardsThe first job ad that states pay, when it appears after we started tracking the employer. Pay that was already there on the first crawl is the baseline, not an event.
tech_added / tech_removedTools named in job adsA tool named in 2 or more open job ads after the first scan, or one that disappears after being seen for at least a week.
shop_app_installed / shop_app_removedShopify storefront scansAn app detected on the storefront after the first scan, or one that is gone. Apps found on the first scan are the baseline.
review_velocityReview panel (app stores, software reviews)New reviews in 7 days at least 10 and at least twice the weekly pace of the 3 weeks before.
rating_changeReview panelThe stated rating moved by 0.1 or more over 28 days (over 7 days while history is shorter, marked provisional).
tender_awardedEU and UK public contract award noticesA contract award whose winning organisation matches the company by name and country. Notices name organisations; names that could be a person's are never matched.

Point in time

occurredAt is the day the change happened as the source shows it. observedAt is the moment our pipeline first had the data that shows it, and it is never rewritten. When we only know the day of an observation, observedAt is the end of that day, so it is never earlier than the truth. Filter on observedAt <= t and you get exactly what a customer could have seen at t. Event ids are stable: the same change always has the same id.

{
  "id": "Q2y2cZnkFGpC4Arj",
  "type": "new_country",
  "domain": "example.fr",
  "occurredAt": "2026-10-23",
  "observedAt": "2026-10-23T00:43:01.826Z",
  "country": "CA",
  "provisional": true,
  "source": "jobs",
  "evidence": { "country": "CA", "jobs": 1, "trackedDays": 1 }
}

API and MCP

The OpenAPI document of the API lists every field.

The score (not yet)

A 0 to 100 momentum score per company comes later, with its parts shown: hiring, expansion, pay transparency, reputation, commerce, tech and public sector, each capped and each listing the events behind its points. 50 means nothing happened. It stays off until 20 December 2026, when we have 60 days of history: a score on a few weeks of data would be noise.

Coverage, honestly

The stream is only as joined as our datasets. Today most companies have events from one source, usually their job boards. A company appears in several sources when it hires through a board we read, sells through a Shopify store, has listings we track, or wins public contracts. Matches by name (review listings, contract winners) need a unique name and, for contracts, the same country; an unsure match is no match.

Questions

How far back does the history go?

To 21 October 2026, when we started collecting. We do not backfill, so every event was observed when it says it was.

Is there personal data in the events?

No. Events carry company-level numbers and labels: job counts, countries, departments, tool and app names, ratings, contract values. Free text passes through our privacy filter, and contract winners that could be a person are never matched.

Why is an event marked provisional?

Its baseline is shorter than 28 days. In the first weeks of history most events are provisional; the flag goes away on its own as history grows.

When will the Pulse score be available?

From 20 December 2026, after 60 days of history. Until then the API returns the score as disabled.