LinkedIn Engagement
Reactions (likes, celebrates, etc.) a contact leaves on LinkedIn posts — who they engage with and what content they care about.
LinkedIn Engagement captures when a contact reacts to a LinkedIn post or comment — surfacing who they engage with and what topics they care about. This includes reactions on posts and reactions on comments within a post's thread.
Unlike LinkedIn Posts and LinkedIn Comments, this signal focuses on extracting relational and intent-driven signals between the person reacting and the content/author they're reacting to.
Every reaction record is enriched by our AI pipeline - the same pipeline used for LinkedIn Post signals - to extract topic tags, a summary, pain points, initiatives, technologies mentioned, and competitors mentioned from the target post. So you know not just that someone reacted, but what they reacted to, what business problems the post discusses, and which technologies and competitors are in play.
Every person and company referenced in the signal is resolved to a company LinkedIn URL and domain for matching.
Subtype
| Signal | Subtype Enum | Description |
|---|---|---|
| LinkedIn Reaction | linkedinReaction | Contact reacted to a LinkedIn post or comment (like, celebrate, etc.) |
Schema — Reaction on a Person's Post
The most common case. Contact reacted to a post by an individual. The post author is resolved to their employer for company-level matching.
{
"signal_id": "e7a3c1d9-4f2b-4a8e-9c6d-8b1f3e5a7d2c",
"signal_type": "linkedin-engagement",
"signal_subtype": "linkedinReaction",
"signal_name": "Contact reacted to LinkedIn post",
"association": "contact",
"detected_at": "2026-02-05T00:52:59.890Z",
// The person who reacted
"contact": {
"email": "[email protected]",
"name": "Daniel Wiener",
"first_name": "Daniel",
"last_name": "Wiener",
"job_title": "Co-Founder & CEO",
"linkedin_url": "https://www.linkedin.com/in/daniel-wiener"
},
// Reactor's employer
"company": {
"name": "Autobound",
"domain": "autobound.ai",
"linkedin_url": "linkedin.com/company/autobound-ai",
"industries": ["Software Development"],
"employee_count_low": 11,
"employee_count_high": 50
},
"data": {
"reaction_type": "LIKE",
"reaction_target": "post", // "post" or "comment" — controls which fields appear below
"is_reshare": false, // when false, no original_post_* fields
"engagement_date": "2026-02-05T00:52:59.890Z", // when the reaction happened on LinkedIn — use this for recency filtering
// The post they reacted to
"post_url": "https://www.linkedin.com/feed/update/urn:li:activity:7424978315704250368",
"post_text": "Last week, the Klue team got together in Vancouver for kickoff. Any time you bring a growing company into the same room, it creates a useful pause...",
"post_content_type": "image",
"post_date": "2026-01-29T18:00:00.000Z",
// Post author — person, so their employer is resolved
"post_author_name": "Jason Smith",
"post_author_headline": "CEO @ Klue | Competitive Enablement + Win-Loss",
"post_author_linkedin_url": "https://www.linkedin.com/in/onemoresmith",
"post_author_type": "person",
"post_author_company_name": "Klue", // resolved from Jason Smith's LinkedIn profile
"post_author_company_linkedin_url": "https://www.linkedin.com/company/klaboratories",
"post_author_company_domain": "klue.com",
// Engagement metrics on the post — snapshot at time of collection
"num_likes": 233,
"num_comments": 22,
"num_shares": 0,
"reaction_breakdown": {
"like": 195,
"praise": 22,
"empathy": 16
},
// AI-enriched — same pipeline as LinkedIn Post signals, extracted from post_text
"tags": [
"Leadership",
"Company Culture",
"Competitive Intelligence",
"Team Building"
],
"summary": "Klue CEO reflects on company kickoff in Vancouver, emphasizing creativity, decisiveness, and agility as core operating principles for competitive enablement.",
"pain_points": [],
"initiatives": [
{
"topic": "company kickoff and strategic alignment",
"urgency": 0.7 // 0-1 scale
}
],
"technologies_mentioned": [],
"competitors_mentioned": [],
"source": "person_activity" // person-seeded: found by monitoring the contact's activity
}
}Schema — Reaction on a Company Page Post
When the post author is a company page (not an individual), post_author_type is "company" and the company fields are populated directly. post_author_headline is null.
{
"signal_id": "d4e5f6a7-8b9c-0d1e-2f3a-b4c5d6e7f8a9",
"signal_type": "linkedin-engagement",
"signal_subtype": "linkedinReaction",
"signal_name": "Contact reacted to LinkedIn post",
"association": "contact",
"detected_at": "2025-12-22T22:28:48.482Z",
"contact": {
"email": "[email protected]",
"name": "Daniel Wiener",
"first_name": "Daniel",
"last_name": "Wiener",
"job_title": "Co-Founder & CEO",
"linkedin_url": "https://www.linkedin.com/in/daniel-wiener"
},
"company": {
"name": "Autobound",
"domain": "autobound.ai",
"linkedin_url": "linkedin.com/company/autobound-ai",
"industries": ["Software Development"],
"employee_count_low": 11,
"employee_count_high": 50
},
"data": {
"reaction_type": "LIKE",
"reaction_target": "post",
"is_reshare": false,
"engagement_date": "2025-12-22T22:28:48.482Z",
// The post — an article share from a company page
"post_url": "https://www.linkedin.com/feed/update/urn:li:activity:7408996962982711296",
"post_text": "The future of data strategy isn't a competition. It's a collaboration. Traditional data brokers operate behind their curtain with data that goes stale almost instantly. But a new model is here: the Data Co-Op...",
"post_content_type": "article", // triggers article fields below
"post_date": "2025-12-20T12:00:00.000Z",
// Article metadata — only present when post_content_type is "article"
"post_article_title": "The Future of Data Collaboration: Inside 5x5",
"post_article_url": "https://5x5data.com/the-future-of-data-collaboration-inside-5x5/",
// Post author — a company page, not a person
"post_author_name": "5x5",
"post_author_headline": null, // always null for company pages
"post_author_linkedin_url": "https://www.linkedin.com/company/5x5data",
"post_author_type": "company", // "person" or "company"
"post_author_company_name": "5x5", // mirrors the page identity for company authors
"post_author_company_linkedin_url": "https://www.linkedin.com/company/5x5data",
"post_author_company_domain": "5x5data.com",
"num_likes": 4,
"num_comments": 0,
"num_shares": 1,
"reaction_breakdown": {
"like": 4
},
// LLM-enriched
"tags": [
"Data Strategy",
"Data Collaboration",
"AdTech",
"MarTech"
],
"summary": "5x5 introduces the Data Co-Op model, arguing shared intelligence eliminates data decay and inverts traditional data broker economics.",
"pain_points": [
{
"topic": "data decay from traditional data brokers",
"intensity": 0.7 // 0-1 scale
}
],
"initiatives": [
{
"topic": "launching Data Co-Op model",
"urgency": 0.9
}
],
"technologies_mentioned": [],
"competitors_mentioned": [],
"source": "person_activity"
}
}Schema — Reaction on a Reshared Post
When someone reshares another person's or company's post, and a contact reacts to the reshare, is_reshare is true. The resharer is the post_author, and the original content creator is captured in original_post_* fields.
{
"signal_id": "f1a2b3c4-5d6e-7f8a-9b0c-d1e2f3a4b5c6",
"signal_type": "linkedin-engagement",
"signal_subtype": "linkedinReaction",
"signal_name": "Contact reacted to LinkedIn post",
"association": "contact",
"detected_at": "2025-11-20T14:09:25.292Z",
"contact": {
"email": "[email protected]",
"name": "Daniel Wiener",
"first_name": "Daniel",
"last_name": "Wiener",
"job_title": "Co-Founder & CEO",
"linkedin_url": "https://www.linkedin.com/in/daniel-wiener"
},
"company": {
"name": "Autobound",
"domain": "autobound.ai",
"linkedin_url": "linkedin.com/company/autobound-ai",
"industries": ["Software Development"],
"employee_count_low": 11,
"employee_count_high": 50
},
"data": {
"reaction_type": "LIKE",
"reaction_target": "post",
"is_reshare": true, // reshare — triggers original_post_* fields below
"engagement_date": "2025-11-20T14:09:25.292Z",
// The reshared post (what appears in the feed)
"post_url": "https://www.linkedin.com/feed/update/urn:li:activity:7397274876555771905",
"post_text": "5x5 is the most important foundation to support your product. Are you \u201crenting\u201d your data? Let us help you own your data destiny.",
"post_content_type": "text",
"post_date": "2025-11-20T12:00:00.000Z",
// The resharer — not the original author
"post_author_name": "Brian Perks",
"post_author_headline": "Data Strategist, Cross Channel Marketing and Demand Expert, Product Creator.",
"post_author_linkedin_url": "https://www.linkedin.com/in/briangperks",
"post_author_type": "person",
"post_author_company_name": "5x5", // Brian Perks works at 5x5
"post_author_company_linkedin_url": "https://www.linkedin.com/company/5x5data",
"post_author_company_domain": "5x5data.com",
// The original content creator (who Brian reshared from)
"original_post_author_name": "5x5",
"original_post_author_linkedin_url": "https://www.linkedin.com/company/5x5data",
"original_post_author_type": "company", // original post was from the 5x5 company page
"original_post_author_company_name": "5x5",
"original_post_author_company_linkedin_url": "https://www.linkedin.com/company/5x5data",
"original_post_author_company_domain": "5x5data.com",
"original_post_text": null, // LinkedIn API doesn't expose the original post text through reshares
"num_likes": 12,
"num_comments": 0,
"num_shares": 0,
"reaction_breakdown": {
"like": 11,
"empathy": 1
},
// LLM-enriched — extracted from post_text (the resharer's commentary)
"tags": [
"Data Strategy",
"B2B Data",
"Data Ownership"
],
"summary": "Data strategist reshares 5x5's case for owning your data foundation instead of renting from traditional brokers.",
"pain_points": [
{
"topic": "renting data from traditional brokers",
"intensity": 0.8
}
],
"initiatives": [
{
"topic": "promoting data ownership model",
"urgency": 0.8
}
],
"technologies_mentioned": [],
"competitors_mentioned": [],
"source": "person_activity"
}
}Schema — Reaction on a Comment
When a contact likes someone's comment on a post, reaction_target is "comment". The comment author is resolved to their employer, and the parent post context is included.
{
"signal_id": "b8c7d6e5-4a3b-2c1d-0e9f-a8b7c6d5e4f3",
"signal_type": "linkedin-engagement",
"signal_subtype": "linkedinReaction",
"signal_name": "Contact reacted to LinkedIn comment", // note: "comment" not "post"
"association": "contact",
"detected_at": "2025-10-26T14:40:23.248Z",
"contact": {
"email": "[email protected]",
"name": "Daniel Wiener",
"first_name": "Daniel",
"last_name": "Wiener",
"job_title": "Co-Founder & CEO",
"linkedin_url": "https://www.linkedin.com/in/daniel-wiener"
},
"company": {
"name": "Autobound",
"domain": "autobound.ai",
"linkedin_url": "linkedin.com/company/autobound-ai",
"industries": ["Software Development"],
"employee_count_low": 11,
"employee_count_high": 50
},
"data": {
"reaction_type": "LIKE",
"reaction_target": "comment", // reaction was on a comment, not the post itself
"is_reshare": false,
"engagement_date": "2025-10-26T14:40:23.248Z",
// The comment that was reacted to — only present when reaction_target is "comment"
"comment_text": "MCP for the win",
"comment_url": "https://www.linkedin.com/feed/update/urn:li:ugcPost:7386864374415675393?commentUrn=urn%3Ali%3Acomment%3A%28ugcPost%3A7386864374415675393%2C7387137270455140352%29",
"comment_author_name": "Jason Smith",
"comment_author_headline": "CEO @ Klue | Competitive Enablement + Win-Loss",
"comment_author_linkedin_url": "https://www.linkedin.com/in/onemoresmith",
"comment_author_company_name": "Klue", // resolved from Jason Smith's LinkedIn profile
"comment_author_company_linkedin_url": "https://www.linkedin.com/company/klaboratories",
"comment_author_company_domain": "klue.com",
// The parent post that the comment was on
"post_url": "https://www.linkedin.com/feed/update/urn:li:activity:7388222972748193792",
"post_text": "How often do you get to have Microsoft, Salesforce and Deloitte share the stage? Only at Gong's annual conference #Celebrate2025...",
"post_content_type": "image",
"post_date": "2025-10-22T12:00:00.000Z",
// Parent post author
"post_author_name": "Eran Aloni",
"post_author_headline": "EVP, Product Strategy and Ecosystem | Gong",
"post_author_linkedin_url": "https://www.linkedin.com/in/eranaloni",
"post_author_type": "person",
"post_author_company_name": "Gong", // resolved from Eran Aloni's LinkedIn profile
"post_author_company_linkedin_url": "https://www.linkedin.com/company/gaborone",
"post_author_company_domain": "gong.io",
// Engagement metrics on the parent post
"num_likes": 309,
"num_comments": 11,
"num_shares": 9,
"reaction_breakdown": {
"like": 224,
"praise": 59,
"empathy": 26
},
// LLM-enriched — extracted from the parent post_text, not the comment
"tags": [
"Artificial Intelligence",
"Sales Technology",
"Partnerships",
"MCP Protocol"
],
"summary": "Gong EVP recaps Celebrate2025 panel on AI interoperability with Microsoft, Salesforce, and Deloitte, highlighting MCP protocol adoption.",
"pain_points": [],
"initiatives": [
{
"topic": "MCP protocol adoption for AI interoperability",
"urgency": 0.8
},
{
"topic": "Celebrate2025 conference and partner ecosystem",
"urgency": 0.7
}
],
"technologies_mentioned": [
{
"name": "MCP Protocol",
"status": "using" // "using", "considering", "evaluating", "migrating_from", "building"
}
],
"competitors_mentioned": [],
"source": "person_activity"
}
}Field Reference
Core Fields
| Field | Type | Description |
|---|---|---|
signal_id | string (UUID) | Unique identifier for this signal |
signal_type | string | Always "linkedin-engagement" |
signal_subtype | string | Always "linkedinReaction" |
signal_name | string | Human-readable signal description |
association | string | Always "contact" |
detected_at | string (ISO 8601) | When we captured this reaction (not when it occurred — see engagement_date) |
Contact Object
The person who reacted.
| Field | Type | Description |
|---|---|---|
contact.email | string | Contact's work email address |
contact.name | string | Contact's full name |
contact.first_name | string | Contact's first name |
contact.last_name | string | Contact's last name |
contact.job_title | string | Contact's job title |
contact.seniority_level | string | Seniority level (e.g., "senior", "director", "vp") |
contact.department | string | Department (e.g., "Marketing", "Engineering") |
contact.linkedin_url | string | Contact's LinkedIn URL |
contact.city | string | Contact's city |
contact.state | string | Contact's state |
contact.country | string | Contact's country |
Company Object
The employer of the person who reacted (the contact's company).
| Field | Type | Description |
|---|---|---|
company.name | string | Company name |
company.domain | string | Company website domain |
company.linkedin_url | string | LinkedIn company URL |
company.industries | array[string] | Industry classifications |
company.employee_count_low | integer | Lower bound of employee count |
company.employee_count_high | integer | Upper bound of employee count |
company.description | string | Company description |
Reaction Fields
| Field | Type | Description |
|---|---|---|
data.reaction_type | string | One of: LIKE, PRAISE, EMPATHY, INTEREST, APPRECIATION, ENTERTAINMENT, CURIOUS |
data.reaction_target | string | What was reacted to: "post" or "comment" |
data.is_reshare | boolean | true if the reacted-to post is a reshare of someone else's content |
data.engagement_date | string (ISO 8601) | When the reaction actually occurred on LinkedIn — use this for recency filtering, not detected_at |
data.source | string | How we discovered this: person_activity (person-seeded) or company_post (activity-seeded) |
Post Author Fields
The person or company who authored the post. When post_author_type is "person", the author's employer is resolved and included. When "company", the company fields mirror the page identity.
| Field | Type | Description |
|---|---|---|
data.post_author_name | string | Name of the post author (person or company page name) |
data.post_author_headline | string | null | Headline if author is a person; null if company page |
data.post_author_linkedin_url | string (URL) | Author's LinkedIn profile or company page URL |
data.post_author_type | string | "person" or "company" |
data.post_author_company_name | string | Employer name (person) or company page name (company) |
data.post_author_company_linkedin_url | string (URL) | Employer LinkedIn URL (person) or company page URL (company) |
data.post_author_company_domain | string | Employer domain (person) or company domain (company) |
Target Post Fields
| Field | Type | Description |
|---|---|---|
data.post_url | string (URL) | Permalink to the LinkedIn post |
data.post_text | string | Post content (may be truncated for very long posts) |
data.post_content_type | string | Post media type: text, image, video, article, document, poll |
data.post_date | string (ISO 8601) | When the post was originally published |
Article Fields
Present only when data.post_content_type is "article". Captures the linked article metadata, which is often more informative than the post commentary itself.
| Field | Type | Description |
|---|---|---|
data.post_article_title | string | Title of the linked article |
data.post_article_url | string (URL) | URL of the linked article |
Reshare Fields
Present only when data.is_reshare is true. The resharer is the post_author; these fields capture the original content creator.
| Field | Type | Description |
|---|---|---|
data.original_post_author_name | string | Name of the original content creator |
data.original_post_author_linkedin_url | string (URL) | LinkedIn URL of the original content creator |
data.original_post_author_type | string | "person" or "company" |
data.original_post_author_company_name | string | Employer name (person) or company name (company) |
data.original_post_author_company_linkedin_url | string (URL) | Employer LinkedIn URL (person) or company page URL (company) |
data.original_post_author_company_domain | string | Employer domain (person) or company domain (company) |
data.original_post_text | string | null | Original post text if available; null if not captured |
Comment Context Fields
Present only when data.reaction_target is "comment". The comment author is resolved to their employer.
| Field | Type | Description |
|---|---|---|
data.comment_text | string | Text of the comment that was reacted to |
data.comment_url | string (URL) | Direct permalink to the comment on LinkedIn |
data.comment_author_name | string | Name of the person who wrote the comment |
data.comment_author_headline | string | Headline / job title of the comment author |
data.comment_author_linkedin_url | string (URL) | LinkedIn profile URL of the comment author |
data.comment_author_company_name | string | Employer name of the comment author |
data.comment_author_company_linkedin_url | string (URL) | Employer LinkedIn URL of the comment author |
data.comment_author_company_domain | string | Employer domain of the comment author |
Social Proof Fields
Engagement metrics on the target post at time of collection.
| Field | Type | Description |
|---|---|---|
data.num_likes | integer | Total reactions on the post |
data.num_comments | integer | Total comments on the post |
data.num_shares | integer | Total shares of the post |
data.reaction_breakdown | object | Count per reaction type (e.g. {"like": 195, "praise": 22, "empathy": 16}) |
LLM-Enriched Fields
Generated by our AI pipeline from the target post content. These are the same fields delivered on LinkedIn Post signals — the post goes through the same extraction pipeline, so every engagement signal carries the full topic analysis of the post the contact engaged with.
| Field | Type | Description |
|---|---|---|
data.tags | array[string] | Topic tags extracted from the target post (~300 possible values, same taxonomy as LinkedIn Posts) |
data.summary | string | 10-15 word summary of the target post content |
data.pain_points | array[object] | Pain points expressed or implied in the post content |
data.pain_points[].topic | string | Description of the pain point |
data.pain_points[].intensity | number (0-1) | How strongly the pain point is expressed |
data.initiatives | array[object] | Business initiatives or projects mentioned in the post |
data.initiatives[].topic | string | Description of the initiative |
data.initiatives[].urgency | number (0-1) | Inferred urgency / momentum of the initiative |
data.technologies_mentioned | array[object] | Technologies, tools, or platforms referenced in the post |
data.technologies_mentioned[].name | string | Name of the technology |
data.technologies_mentioned[].status | string | Relationship to the technology: "using", "considering", "evaluating", "migrating_from", "building" |
data.competitors_mentioned | array[object] | Companies mentioned in the post that may be competitors or vendors |
data.competitors_mentioned[].name | string | Company name |
Identity Resolution
Every LinkedIn engagement signal is pre-resolved to a business contact record with a work email. All person entities in the signal — the reactor, post author, comment author, and original post author (for reshares) — are resolved against our contact database to attach structured company data.
- LinkedIn profile URL captured from the engagement activity — this is a deterministic, unique identifier
- Profile URL matched against our contact database (250M+ contacts, 75M+ companies), ingested monthly with continuous updates from our pipeline exhaust
- Business email, job title, and company resolved from the matched record
- Company firmographic data (domain, LinkedIn URL, industries, headcount) attached
Key Points
- Business emails only. The
contact.emailfield is a professional/work email. Our domain validation excludes generic providers (gmail.com, yahoo.com, etc.). We do not deliver personal emails. - Match accuracy: 99.8%. We prefer no match over a false match — if we can't resolve a profile to a business contact with high confidence, the signal is not delivered.
- Coverage:
contact.linkedin_urlis populated on 90-98% of signals.contact.emailis populated on 85-95%. - Company resolution on all entities. The
_company_name,_company_linkedin_url, and_company_domainfields are resolved for every person referenced in the signal (post author, comment author, original post author), enabling company-level matching and graph construction without additional lookups.
Full matching guide with SQL examples: Resolution
Uniqueness & Deduplication
One signal per contact per post. If a contact changes their reaction type (e.g., switches from LIKE to PRAISE), only the most recent reaction is captured.
Cross-source deduplication: A reaction may appear in both person-seeded and activity-seeded collections (e.g., a tracked contact reacts to a tracked company's post). We deduplicate on contact.linkedin_url + data.post_url. The data.source field indicates which collection method discovered the record.
Use Cases
Relationship Graph Mapping
Map who is engaging with whom. When two people regularly like and comment on each other's posts — especially when they hold relevant titles at different organizations — that implies a professional relationship. Useful for identifying warm introductions, buying committees, and hidden champions.
The post_author_company_linkedin_url and comment_author_company_linkedin_url fields enable company-level graph construction directly — no secondary enrichment needed.
Example: A VP of Sales at Company A and a CTO at Company B are consistently engaging with each other's content. This suggests a pre-existing relationship that could be leveraged for account-based outreach.
Social Intent Detection
When a non-employee reacts to a company's LinkedIn content — and they're not a seller — that signals genuine interest in the company or its products. Combined with data.tags, data.technologies_mentioned, and data.initiatives, you can filter for meaningful engagement on product-related content vs. generic corporate posts. data.pain_points reveals what problems the content addresses, and data.competitors_mentioned flags competitive context.
Example: A Director of IT at a Fortune 500 company reacts to 3 posts from a cybersecurity vendor that mention specific technologies (e.g., "SIEM", "zero trust") and pain points (e.g., "alert fatigue"). That's a much stronger social intent signal than generic content engagement — the contact is paying attention to content that directly addresses their likely challenges.
Champion Identification
Track which contacts at target accounts are most actively engaging with your company's content. High-engagement contacts are likely internal champions or advocates who can accelerate deal cycles.
Competitive Intelligence
Monitor who is engaging with your competitors' company posts. If contacts at your target accounts are actively engaging with a competitor's content, that's an early warning signal of competitive evaluation.
Coverage
- Person-seeded refresh: Every 2 weeks
- Company post refresh: Monthly
- Contact coverage: 4,000,000+ contacts (person-seeded); net-new contacts discovered via company post reactions (activity-seeded)
- Reaction types: 7 (Like, Celebrate, Support, Insightful, Love, Funny, Curious)
- Best for: Relationship intelligence, social intent, champion identification, competitive monitoring
API Usage
Generate Content API
{
"enabledInsights": [
"linkedinReaction"
],
"disabledInsights": []
}Generate Insights API
{
"insightSubtype": "linkedinReaction"
}Updated about 2 hours ago
