LinkedIn Comments
A prospect's comments on someone else's LinkedIn post.
Overview
LinkedIn Comments capture when a prospect engages with someone else's post—often revealing more about their thinking than their own posts do.
We track comment activity across millions of contacts, filtering aggressively for signal quality. Short comments, celebratory reactions, and colleague interactions are filtered out—what remains are substantive comments where prospects ask questions, share opinions, or reveal pain points. Each comment is analyzed for intent, pain points, initiatives, and technologies mentioned, with full context from the parent post.
The result: high-intent engagement signals that show what topics a prospect cares about, what they're evaluating, and how they think—perfect for starting a conversation that feels relevant, not random.
Signal Quality Filtering
High-value comments are prioritized using these criteria:
| Filter | Action |
|---|---|
| Comment < 50 chars | Filtered out (96% noise) |
| Intent = celebration/praise/tagging | Filtered out (92% noise) |
| Relationship = colleague/unknown | Filtered out (85-92% noise) |
| Intent = question/disagreement | Prioritized (100% useful) |
| Comment >= 200 chars | Prioritized (73% useful) |
Expected yield: ~15-20 high-value signals per 100 raw comments
Subtype
| Signal | Subtype Enum | Description |
|---|---|---|
| Commented on LinkedIn post | linkedinPostComment | Prospect commented on someone's LinkedIn post |
Schema
{
"signal_id": "f40afdf7-bd1f-4362-8dee-78b75aced2b7",
"signal_type": "linkedin-comment",
"signal_subtype": "linkedinPostComment",
"detected_at": "2026-01-23T13:56:54.841Z",
"association": "contact",
"contact": {
"first_name": "Luigi",
"last_name": "Ferrara",
"full_name": "Luigi Ferrara",
"email": "[email protected]",
"job_title": "ITIL Product Ambassador | Keynote Speaker on Security & Service Management",
"linkedin_url": "https://www.linkedin.com/in/theitsmpractice"
},
"company": {
"name": "PeopleCert",
"domain": "peoplecert.org",
"linkedin_url": "https://www.linkedin.com/company/peoplecert-group",
"industries": [
"Education Administration Programs"
],
"employee_count_low": 1001,
"employee_count_high": 5000
},
"data": {
"comment_summary": "Commenter argues AI failure is leadership, not tech; emphasizes Knowledge Management before automation.",
"comment_text": "Great episode! This is a leadership failure, not a technology one. AI amplifies what already exists. Leaders who want impact invest in KM first, automation second.",
"comment_url": "https://www.linkedin.com/feed/update/urn:li:activity:7412575850081996801",
"comment_num_likes": 0,
"comment_num_comments": 2,
"comment_intent": "addition",
"signal_quality": 0.7,
"relationship_context": {
"inferred_relationship": "industry_peer",
"confidence": 0.6
},
"pain_points": [
{
"topic": "scaling gaps due to missing knowledge when implementing AI",
"intensity": 0.8
},
{
"topic": "leadership failure in AI adoption",
"intensity": 0.7
}
],
"initiatives": [
{
"topic": "investing in knowledge management before automation",
"urgency": 0.8
}
],
"technologies_mentioned": [
{
"name": "AI",
"status": "considering"
}
],
"parent_post": {
"post_summary": "Adjunct professor shares podcast episode about incorporating AI into service management.",
"num_likes": 8,
"num_comments": 3,
"poster_name": "Jeffrey Tefertiller",
"poster_job_title": "Adjunct Professor"
}
}
}Field Reference
Core Fields
| Field | Type | Description |
|---|---|---|
signal_id | string (UUID v4) | Unique identifier for this signal |
signal_type | string | Always "linkedin-comment" |
signal_subtype | string | Always "linkedinPostComment" |
detected_at | string (ISO 8601) | Timestamp when signal was detected |
association | string | Always "contact" |
Contact Object
| Field | Type | Description |
|---|---|---|
contact.first_name | string | Contact's first name |
contact.last_name | string | Contact's last name |
contact.full_name | string | Contact's full name |
contact.email | string | Contact's email address |
contact.job_title | string | Contact's 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 | 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 |
Comment Data
| Field | Type | Description |
|---|---|---|
data.comment_summary | string | AI-generated summary of the comment |
data.comment_text | string | Full text of the prospect's comment |
data.comment_url | string | Direct URL to the comment |
data.comment_num_likes | integer | Number of likes the comment received |
data.comment_intent | string | Intent classification (question, disagreement, celebration, praise, tagging, insight, recommendation) |
data.signal_quality | float | Quality score (0.0-1.0) - higher = more actionable |
data.relationship_context | object | Inferred relationship to poster |
data.relationship_context.inferred_relationship | string | Relationship type (competitor, colleague, unknown, prospect, vendor) |
data.relationship_context.confidence | float | Confidence score (0.0-1.0) |
data.pain_points | array[object] | Identified pain points |
data.pain_points[].topic | string | Pain point topic |
data.pain_points[].intensity | float | Intensity score (0.0-1.0) |
data.initiatives | array[object] | Identified initiatives |
data.initiatives[].topic | string | Initiative topic |
data.initiatives[].urgency | float | Urgency score (0.0-1.0) |
data.technologies_mentioned | array[object] | Technologies mentioned |
data.technologies_mentioned[].name | string | Technology name |
data.technologies_mentioned[].status | string | Status (evaluating, using, implemented, migrating_from, migrating_to, churned, considering, integrated, building_on, hiring_for) |
data.competitors_mentioned | array[string] | Competitors mentioned in comment |
Parent Post Object
| Field | Type | Description |
|---|---|---|
data.parent_post.signal_id | string | Reference to parent post signal (if exists) |
data.parent_post.post_summary | string | AI-generated summary of the post |
data.parent_post.num_likes | integer | Likes on the post |
data.parent_post.num_comments | integer | Total comments on the post |
data.parent_post.pain_points | array[object] | Pain points from parent post |
data.parent_post.initiatives | array[object] | Initiatives from parent post |
data.parent_post.technologies_mentioned | array[object] | Technologies from parent post |
data.parent_post.competitors_mentioned | array[string] | Competitors from parent post |
data.parent_post.poster_name | string | Name of post author |
data.parent_post.poster_job_title | string | Job title of post author |
data.parent_post.poster_company_name | string | Company of post author |
data.parent_post.poster_company_description | string | Description of poster's company |
Example Output
"Your recent comment on the Adobe–Marketo acquisition post really stood out. Calling out the challenge of scaling enablement after a merger shows deep awareness of the real pain points sales teams face..."
Identity Resolution
Every LinkedIn comment signal is pre-resolved to a business contact record with a work email. Here's how:
- LinkedIn profile URL captured from the comment 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%. - No false positives from common names. LinkedIn profile URLs are deterministic unique identifiers — there is no ambiguity in the match.
- Quality filtering included. Comments are scored for
signal_quality(0.0-1.0) andcomment_intent— short, celebratory, or colleague interactions are filtered out before delivery.
Full matching guide with SQL examples: Resolution
Coverage
- Refresh: Bi-weekly
- Coverage: 4,000,000 contacts
- Best for: Social selling, conversation starters, topical outreach
Updated 4 days ago
