Work Milestone
Events or milestones related to an individual's work history.
Overview
Work Milestone signals detect career transitions and tenure moments — job changes, promotions, and work anniversaries — across 4M+ contacts.
Each signal captures the full transition context: new and previous job titles with descriptions, current and previous company details, job locations, event timing, and confidence scoring. Whether a prospect just switched companies, got promoted internally, or hit a work anniversary, you get the details needed for timely, personalized outreach.
Available Subtypes
| Signal | Subtype Enum | Description |
|---|---|---|
| Job change | jobChange | Prospect joined a new company |
| Promotion | promotion | Prospect was promoted at their current company |
| Work anniversary | workAnniversary | Prospect recently hit a work anniversary milestone |
Schema
{
"signal_id": "b95ea3fe-b729-4d31-bc6c-928717c1cc07",
"signal_type": "workMilestone",
"signal_subtype": "workAnniversary",
"detected_at": "2026-03-24T07:43:33.118Z",
"association": "contact",
"contact": {
"name": "deon fleming",
"first_name": "deon",
"last_name": "fleming",
"email": "[email protected]",
"job_title": "director, cyber security uplift program",
"linkedin_url": "linkedin.com/in/deon-fleming-866a3910"
},
"company": {
"name": "NSW Department of Education",
"domain": "education.nsw.gov.au",
"linkedin_url": "linkedin.com/company/nsw-department-of-education",
"employee_count_low": 10001,
"employee_count_high": null,
"industries": [
"Education Administration Programs"
]
},
"data": {
"event_date": "2026-02-01",
"months_since_event": 1,
"confidence": 1.0,
"new_job_title": null,
"new_job_description": null,
"previous_job_title": null,
"previous_job_description": null,
"company_name": "NSW Department of Education",
"company_domain": "education.nsw.gov.au",
"previous_company_name": null,
"previous_company_domain": null,
"new_job_location": null,
"previous_job_location": null,
"founded_new_company": false,
"work_anniversary_year": 4
}
}Field Reference
Core Fields
| Field | Type | Description |
|---|---|---|
signal_id | string (UUID) | Unique identifier for this signal |
signal_type | string | Always "workMilestone" |
signal_subtype | string | One of: "jobChange", "promotion", "workAnniversary" |
detected_at | string (ISO 8601) | When we detected this signal |
association | string | Always "contact" |
Contact Object
| Field | Type | Description |
|---|---|---|
contact.name | string | Contact's full name |
contact.first_name | string | Contact's first name |
contact.last_name | string | Contact's last name |
contact.email | string | Contact's email address |
contact.job_title | string | Contact's current job title |
contact.linkedin_url | string | Contact's LinkedIn URL |
Company Object
| Field | Type | Description |
|---|---|---|
company.name | string | Company name |
company.domain | string | Company website domain |
company.linkedin_url | string | Company LinkedIn URL |
company.employee_count_low | integer | null | Low end of employee count range |
company.employee_count_high | integer | null | High end of employee count range |
company.industries | array of strings | List of company industries |
Data Object
| Field | Type | Description |
|---|---|---|
data.event_date | string (date) | When the career event occurred (YYYY-MM-DD) |
data.months_since_event | integer | Months elapsed since the event |
data.new_job_title | string | null | New/current job title (null for workAnniversary) |
data.new_job_description | string | null | Description of the new role |
data.previous_job_title | string | null | Previous job title (null for workAnniversary) |
data.previous_job_description | string | null | Description of the previous role |
data.company_name | string | Current company name |
data.company_domain | string | Current company domain |
data.previous_company_name | string | null | Previous company name (null for promotions and anniversaries) |
data.previous_company_domain | string | null | Previous company domain |
data.new_job_location | string | null | Location of the new role |
data.previous_job_location | string | null | Location of the previous role |
data.founded_new_company | boolean | Whether the contact founded a new company |
data.work_anniversary_year | integer | null | Anniversary milestone year (only for workAnniversary subtype) |
data.confidence | float (0-1) | Confidence score for the signal |
Subtype Examples
Job Change Example
{
"signal_id": "b1e8f46f-1b64-42ca-aba8-ff67b925e043",
"signal_type": "workMilestone",
"signal_subtype": "jobChange",
"detected_at": "2026-01-28T13:22:44.029Z",
"association": "contact",
"contact": {
"name": "Dan Daugherty",
"first_name": "Dan",
"last_name": "Daugherty",
"email": null,
"job_title": "Regional Facades Manager",
"linkedin_url": "linkedin.com/in/ACoAAAAG8fIB6cfEchEU95lp6E7QCV-a05ebhkY"
},
"company": {
"name": "Wells Concrete Products",
"domain": "wellsconcrete.com",
"linkedin_url": "linkedin.com/company/wellsbuilds",
"employee_count_low": null,
"employee_count_high": null,
"industries": []
},
"data": {
"event_date": "2025-10-15",
"months_since_event": 3,
"new_job_title": "Regional Facades Manager",
"new_job_description": "Leads regional facade operations, overseeing project delivery, vendor coordination, and installation quality across multiple states.",
"previous_job_title": "Senior Project Manager",
"previous_job_description": "Managed large-scale construction projects with responsibility for timelines, budgets, and cross-functional teams.",
"company_name": "Wells Concrete Products",
"company_domain": "wellsconcrete.com",
"previous_company_name": "TUV SUD Global Risk Consultants",
"previous_company_domain": "globalriskconsultants.com",
"new_job_location": "Chicago, Illinois, United States",
"previous_job_location": "Minneapolis, Minnesota, United States",
"founded_new_company": false,
"work_anniversary_year": null,
"confidence": 0.9
}
}Key fields for job changes: previous_company_name and previous_company_domain are populated (non-null) when the contact moved to a different company.
Promotion Example
{
"signal_id": "dfb40140-068a-4897-965e-042169f89ded",
"signal_type": "workMilestone",
"signal_subtype": "promotion",
"detected_at": "2026-01-28T13:22:44.171Z",
"association": "contact",
"contact": {
"name": "Sandra Av",
"first_name": "Sandra",
"last_name": "Av",
"email": null,
"job_title": "Vice President & Regional General Attorney",
"linkedin_url": "linkedin.com/in/sandra-av-b189b184"
},
"company": {
"name": "Liberty Mutual",
"domain": "lmi.com",
"linkedin_url": "linkedin.com/company/liberty-mutual-insurance",
"employee_count_low": null,
"employee_count_high": null,
"industries": []
},
"data": {
"event_date": "2025-07-01",
"months_since_event": 6,
"new_job_title": "Vice President & Regional General Attorney",
"new_job_description": "Oversees regional legal strategy, manages senior legal staff, and advises executive leadership on regulatory and risk matters.",
"previous_job_title": "Associate General Attorney",
"previous_job_description": "Provided legal counsel on commercial contracts, compliance issues, and litigation support.",
"company_name": "Liberty Mutual",
"company_domain": "lmi.com",
"previous_company_name": null,
"previous_company_domain": null,
"new_job_location": "Pacific Northwest Region",
"previous_job_location": "Seattle, Washington, United States",
"founded_new_company": false,
"work_anniversary_year": null,
"confidence": 0.9
}
}Key fields for promotions: previous_company_name and previous_company_domain are null because the contact stayed at the same company. Title changed from a lower to a higher role.
Work Anniversary Example
{
"signal_id": "9e6aa749-b0e2-48be-a81d-46b7d8725263",
"signal_type": "workMilestone",
"signal_subtype": "workAnniversary",
"detected_at": "2026-01-28T13:22:52.079Z",
"association": "contact",
"contact": {
"name": "Tammy McMillan-Bell, MBA",
"first_name": "Tammy",
"last_name": "McMillan-Bell",
"email": null,
"job_title": "Manager, Coordination of Benefits",
"linkedin_url": "linkedin.com/in/tammy-mcmillan-bell-mba-093a499b"
},
"company": {
"name": "Viva Health",
"domain": "vivahealth.com",
"linkedin_url": "linkedin.com/company/viva-health",
"employee_count_low": null,
"employee_count_high": null,
"industries": []
},
"data": {
"event_date": "2025-09-01",
"months_since_event": 4,
"work_anniversary_year": 3,
"new_job_title": null,
"new_job_description": null,
"previous_job_title": null,
"previous_job_description": null,
"company_name": "Viva Health",
"company_domain": "vivahealth.com",
"previous_company_name": null,
"previous_company_domain": null,
"new_job_location": null,
"previous_job_location": null,
"founded_new_company": false,
"confidence": 0.9
}
}Key fields for work anniversaries: work_anniversary_year is populated (e.g. 3 = 3-year anniversary). Job title and location fields are null since this is a tenure milestone, not a role change.
Example Output
"Congrats on the promotion to VP & Regional General Attorney at Liberty Mutual — that's a well-earned step up from Associate General Attorney. Would love to connect and share how we're helping legal leaders at your level tackle [relevant challenge]."
Coverage
- Refresh: Weekly
- Coverage: 4,000,000 contacts
- Best for: Relationship building, executive outreach, champion tracking, long-cycle sales
Updated 7 days ago
