Reddit Mentions (Contact)
Overview
Reddit Mentions (Contact) are the person-level side of Reddit signals. When a thread names a real executive or decision-maker, and we resolve that person to a verified LinkedIn profile, a contact record ships next to the company signal.
These records are precision-first. A person ships only when the thread names a real individual (never a Reddit username) AND our resolver returns a LinkedIn profile that passes a strict confidence gate. Anyone below the gate is dropped, not guessed. Expect a small, high-trust stream - a low single-digit share of weekly volume, mostly executives in leadershipChange events.
Every contact record links to its parent company signal via data.parent_signal_id.
Available Subtypes
A contact record's signal_subtype depends on the person's role in the parent signal.
Contact subtypes - inherited event subtypes + contactMentioned
| Subtype | When it applies | Description |
|---|---|---|
leadershipChange | person is the actor | The executive joining or leaving. Carries data.details {person_name, title, direction: "joins" | "leaves"}. The most common contact subtype |
buyingIntent | person is the actor | A named buying champion driving an evaluation at a named company |
hiringSignal | person is the actor | A named hiring manager behind a hiring push |
customerFeedback | person is the actor | A self-identified employee of the company responding in-thread |
contactMentioned | person is mentioned | A real named person relevant to the discussion but not the event's subject - an exec quoted about a deal, a board member named in a shakeup. data.signal_category is event |
Actor records inherit the parent subtype's stage/category vocabularies - see the company page accordion. All records carry the same honesty labels: the stage evidence ladder and prominence (core vs aside). A years-old departure recalled in a comment ships aside + completed, not as fresh news.
Schema
Verbatim production record, annotated (parent_signal_id value illustrative):
{
"signal_id": "668ecdf1-5827-572a-a67b-f2e027571869", // deterministic: (post, company, subtype, person)
"batch_id": "2026-09-20-16-25-11", // when we generated it (UTC)
"signal_type": "reddit-contact",
"signal_subtype": "leadershipChange", // inherited from the parent event (person = actor)
"signal_name": "Reddit Mention",
"detected_at": "2026-09-20T19:04:57.110Z", // delivery-timeline date (week-ending for weekly files)
"association": "contact",
"company": {
"name": "Microsoft", // the employer in the THREAD's context
"domain": "microsoft.com"
},
"contact": {
"full_name": "Jeffrey Snover",
"job_title": "Fellow", // CURRENT title per resolution
"company_name_resolved": "Berkman Klein Center for Internet & Society at Harvard University", // CURRENT employer per resolution - can differ from // company.name: the thread recalls his Microsoft exit; // resolution finds where he is NOW
"linkedin_url": "https://www.linkedin.com/in/jeffreysnover", // always present - no LinkedIn, no record
"resolution_basis": "named_in_post" // the person was NAMED in the thread; we never // resolve Reddit usernames to identities
},
"data": {
"signal_category": "event",
"summary": "A commenter recalled that Jeffrey Snover, the creator of PowerShell, was pushed out of Microsoft and later went to work at Google before retiring.",
"entity_role": "subject",
"stage": "reported", // secondhand claim - honest label
"category": null,
"sentiment": "negative",
"prominence": "aside", // a passing recollection, not the thread's subject
"timing": "completed", // it happened long ago - labeled history, not news
"event_date": null, // no date derivable from the thread - never invented
"event_date_text": null,
"people": [
{ "name": "Jeffrey Snover", "title": "Creator of PowerShell", "employer": "Microsoft", "role": "actor" }
],
"details": { "person_name": "Jeffrey Snover", "title": "Creator of PowerShell", "direction": "leaves" },
"person_context": "Jeffrey Snover, Creator of PowerShell at Microsoft - the person this signal is about.",
"parent_signal_id": "e0a3f1c2-58d1-5a44-b0d1-2f6c9be01a77", // join key to the reddit-company record
"topics": ["leadership", "powershell"],
"products_mentioned": ["PowerShell"],
"evidence": [ // verbatim - the exact comment that named him
"[comment u/quantgorithm] Did you know that Microsoft demoted the creator of ps1 because of ps1? He was essentially pushed out and later went to google and is now retired. I'm so thankful for him. His name is Jeffrey Snover."
],
"other_companies": [
{ "name": "Google", "role": "alternative", "domain": null }
],
"source_url": "https://www.reddit.com/r/PowerShell/comments/1wirk99/microsoft_starts_twelvemonth_retirement_of/",
"post_id": "1wirk99",
"post_title": "Microsoft Starts Twelve-Month Retirement of Windows PowerShell Support for Graph SDK",
"post_text": "…full thread body, up to 5,000 chars…",
"post_kind": "multi_media",
"subreddit": "PowerShell",
"subreddit_url": "https://www.reddit.com/r/PowerShell/",
"post_date": "2026-09-17T11:38:29.000Z", // the conversation's real timestamp
"total_upvotes": 145,
"total_comments": 83,
"upvote_ratio": 0.98,
"virality": "very_high",
"comments": [ "…up to 20 top comments, same shape as the company page…" ],
"comments_total": 83,
"comments_included": 20,
"nsfw": false,
"content_warning": null
},
"_qa": {
"validation_issues": [],
"resolution": "resolved", // the COMPANY's resolution outcome
"margin": null,
"triage_interest": 0.85,
"person_role": "actor", // actor | mentioned
"person_resolution": "candidate", // person match outcome - gated on a verified LinkedIn hit
"person_margin": null
}
}Field Reference
Core Fields
| Field | Type | Required | Description |
|---|---|---|---|
signal_id | string (UUID) | ✓ | Deterministic ID derived from (post, company, subtype, person). Stable across every delivery and re-run - use it as your primary key |
batch_id | string | ✓ | Generation batch timestamp (UTC) - when Autobound produced the record; can differ from detected_at on backfilled weeks |
signal_type | string | ✓ | Always "reddit-contact" |
signal_subtype | string | ✓ | The parent event's subtype when the person is its actor; "contactMentioned" otherwise. See the accordion above |
signal_name | string | ✓ | Always "Reddit Mention" |
detected_at | string (ISO 8601) | ✓ | The delivery-timeline date (week-ending for weekly files). Use data.post_date for the conversation's real time |
association | string | ✓ | Always "contact" |
company | object | ✓ | The person's employer as the thread frames it (falls back to the parent signal's company). Compare with contact.company_name_resolved for where the person is now |
contact | object | ✓ | The resolved person (below) - never null on this type |
Contact Object
| Field | Type | Required | Description |
|---|---|---|---|
full_name | string | ✓ | The person's real full name as the thread discussed them. Always a full name - first-name-only mentions never ship |
job_title | string | null | ✓ | The person's current title per resolution; falls back to the title stated in the thread when resolution returns none |
company_name_resolved | string | null | ✓ | The person's current employer per resolution. This can legitimately differ from company.name: in the example the thread recalls Snover's Microsoft exit while resolution finds his current Harvard fellowship. Use it to catch "the exec you read about has already moved" |
linkedin_url | string | ✓ | Verified LinkedIn profile URL. Always present by contract - a person our resolver cannot match to LinkedIn at high confidence is dropped, never shipped with a guess |
resolution_basis | string | ✓ | Always "named_in_post": the person was explicitly named in the thread text. We never resolve Reddit usernames or handles to real identities |
Data Object
The data object carries the parent signal's full context - every field documented on the company page (summary, stage, prominence, timing, evidence, thread and engagement fields, comments, nsfw, content_warning, …) - plus two contact-specific fields:
| Field | Type | Description |
|---|---|---|
person_context | string | One display-ready line placing the person: name, title, employer, and whether they are the signal's subject ("the person this signal is about") or named in the discussion. Built for dropping straight into a UI or an email research panel |
parent_signal_id | string (UUID) | The signal_id of the parent reddit-company record. Join on it to pull the company-side view of the same event - both IDs are deterministic, so the join is stable across deliveries |
Quality Metadata (_qa)
_qa)Everything from the company page, plus three person fields:
| Field | Type | Description |
|---|---|---|
person_role | string | actor (the signal is about them) or mentioned (they appear in it). Actors are the higher-value records |
person_resolution | string | Person-match outcome: resolved or candidate - both mean a verified LinkedIn hit passed the confidence-or-employer-corroboration gate; the label reflects the resolver's internal state, not shipping risk |
person_margin | number | null | The person resolver's decision margin, when it reports one |
Coverage
Contact records are the rare-but-precise tail of Reddit coverage. Most Reddit conversation is pseudonymous, so only threads that name real people produce them - typically a low single-digit percentage of weekly volume, concentrated in leadershipChange. Community coverage, cadence, deduplication, and the quality machinery are identical to Reddit Mentions (Company); contacts additionally pass the person-resolution gate on top of every company-side check.
Updated about 2 hours ago

