Event catalog
Every domain event the platform emits.
company.createdcompaniesv1A new company has been created on the platform.
Emitted the first time a company appears on the platform. Use this to mirror the company into your CRM or trigger initial enrichment.
Payload example
{ "id": "evt_01H", "data": { "company": { "id": "cmp_x", "name": "Acme Corp", "website": "https://acme.co" } }, "event": "company.created", "tenant_id": "ten_x" }company.updatedcompaniesv1Company core fields have changed.
Emitted when one of the company core fields changes.
data.company.changeslists changed field names.Payload example
{ "data": { "company": { "id": "cmp_x", "changes": [ "website", "name" ] } }, "event": "company.updated" }company.enrichedcompaniesv1Company intelligence signals have been refreshed.
Emitted whenever derived intelligence is recomputed. Safe to use as a refresh trigger.
Payload example
{ "data": { "company_id": "cmp_x", "intelligence": { "size": "50-200", "industry": "saas" } }, "event": "company.enriched" }job.createdjobsv1A new job has been created (may be in draft).
Emitted when a job row is created, even in
draftstatus.Payload example
{ "data": { "job": { "id": "job_x", "title": "Senior Engineer", "company_id": "cmp_x" } }, "event": "job.created" }job.publishedjobsv1A job has been published and is now public.
Emitted when a job transitions to
published. The right event for sourcing or notification flows.Payload example
{ "data": { "job": { "id": "job_x", "published_at": "2026-06-14T12:00:00Z" } }, "event": "job.published" }job.enrichedjobsv1Job skills, seniority, and embeddings have been computed.
Emitted when normalized skills, seniority, salary, or embeddings are (re)computed.
Payload example
{ "data": { "job_id": "job_x", "intelligence": { "skills": [ "typescript", "react" ], "seniority": "senior" } }, "event": "job.enriched" }job.closedjobsv1A job has been closed and is no longer accepting applications.
Emitted when a job is closed.
data.reasonmay includefilled,expired, orwithdrawn.Payload example
{ "data": { "job_id": "job_x", "reason": "filled" }, "event": "job.closed" }candidate.createdcandidatesv1A new candidate has been added to the tenant.
Emitted on candidate creation, before any enrichment.
Payload example
{ "data": { "candidate": { "id": "cnd_x", "full_name": "Sato Aiko" } }, "event": "candidate.created" }candidate.enrichedcandidatesv1Candidate parsing and skills extraction completed.
Emitted after resume parsing and skill extraction complete. The hook for downstream sourcing logic.
Payload example
{ "data": { "candidate_id": "cnd_x", "intelligence": { "skills": [ "python", "ml" ], "summary": "..." } }, "event": "candidate.enriched" }application.submittedapplicationsv1A candidate has been submitted to a job.
Emitted when an application is recorded against a job.
Payload example
{ "data": { "application": { "id": "app_x", "job_id": "job_x", "source": "direct", "candidate_id": "cnd_x" } }, "event": "application.submitted" }application.stage_changedapplicationsv1An application has moved between stages.
Emitted on every stage transition. Use
from/tofor funnel analytics.Payload example
{ "data": { "to": "interview", "from": "screening", "application_id": "app_x" }, "event": "application.stage_changed" }interview.scheduledinterviewsv1An interview has been scheduled.
Emitted when an interview is created or rescheduled.
Payload example
{ "data": { "interview": { "id": "int_x", "scheduled_for": "2026-06-20T09:00:00Z", "application_id": "app_x" } }, "event": "interview.scheduled" }interview.completedinterviewsv1An interview has completed; outcome is set.
Emitted after an interview is marked complete.
outcomedrives stage transitions.Payload example
{ "data": { "outcome": "advance", "interview_id": "int_x" }, "event": "interview.completed" }match.createdmatchingv1A new match score has been computed.
Emitted whenever a match score is computed. Includes top reasons for explainability.
Payload example
{ "data": { "score": 0.87, "job_id": "job_x", "reasons": [ "skills_overlap", "seniority_match" ], "candidate_id": "cnd_x" }, "event": "match.created" }placement.createdplacementsv1A candidate has been hired into a job.
Emitted when a candidate is hired. Terminal for the matching feedback loop.
Payload example
{ "data": { "placement": { "id": "plc_x", "job_id": "job_x", "start_date": "2026-07-01", "candidate_id": "cnd_x" } }, "event": "placement.created" }

