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.
| Type | Source | Rule |
|---|---|---|
hiring_up / hiring_down | Employer job boards | Open 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_country | Employer job boards | First job in a country, on boards we already tracked (a newly found board is not an expansion). |
new_function | Employer job boards | A department that appears with 2 or more new jobs on boards we already tracked. |
ats_switch | Employer job boards | A board on another applicant tracking system, with evidence that posting moved or the old board is emptying. |
pay_first_seen | Employer job boards | The 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_removed | Tools named in job ads | A 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_removed | Shopify storefront scans | An app detected on the storefront after the first scan, or one that is gone. Apps found on the first scan are the baseline. |
review_velocity | Review 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_change | Review panel | The stated rating moved by 0.1 or more over 28 days (over 7 days while history is shorter, marked provisional). |
tender_awarded | EU and UK public contract award notices | A 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
GET /v1/companies/{domain}/pulse: the last 90 days of one company, newest first, with the sources this answer could read.GET /v1/pulse/events?since=&until=&country=&types=: every company, filtered by day, country and event type, with cursor pagination.GET /v1/watchlists/{id}/changes: the same events for the companies you track.- MCP tool
company_pulseon the Arcadium Data MCP server: one domain in, its dated events out.
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.