Skip to content
Back to skills

Social Engagement Responder

ASecurity

Generates contextual replies to comments, mentions, and DMs on social posts. Classifies engagement as lead signal, customer question, partnership opportunity, or troll/spam. Uses brand voice from agency.config.json.

  • 2 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 10, 2026
content-marketinggoreactexpress

Works with

  • cli

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 10, 2026

npx -y skills add ekatasingh1107/b2b-gtm-skills --skill social-engagement-responder --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Social Engagement Responder?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Social Engagement Responder
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ekatasingh1107-social-engagement-responder/badge)](https://www.skillsdirectory.com/skills/ekatasingh1107-social-engagement-responder)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: social-engagement-responder
description: >
  Generates contextual replies to comments, mentions, and DMs on social posts.
  Classifies engagement as lead signal, customer question, partnership opportunity,
  or troll/spam. Uses brand voice from agency.config.json.
tags: [social-media, engagement, replies, community]
---

# Social Engagement Responder

Generates contextual, on-brand replies to social media engagement (comments, mentions, DMs, tags). Classifies each interaction for CRM routing and prioritizes lead signals.

## Prerequisites

- `agency.config.json` populated (outreach tone, services, case studies)
- Engagement data: the comment/mention/DM text, platform, context (original post if available)

## Phase 0: Intake

Read `agency.config.json`:
- `agency.name`, `agency.founder` -- for sign-offs and personal touches
- `outreach.tone` -- voice baseline
- `outreach.banned_phrases` -- never use in replies
- `services[]` -- for contextual service mentions
- `case_studies[]` -- for proof points when relevant

Accept parameters:
- `engagement` -- (required) object containing:
  - `platform` -- `linkedin`, `twitter`, `instagram`, `reddit`
  - `type` -- `comment`, `mention`, `dm`, `tag`, `reply`
  - `text` -- the engagement text
  - `author` -- name/handle of the person
  - `context` -- (optional) the original post or thread context
  - `author_profile` -- (optional) brief profile info (title, company, follower count)
- `batch` -- (optional) array of engagement objects for bulk processing
- `auto_classify` -- boolean, classify without generating reply. Default: `false`

## Phase 1: Classification

Classify each engagement into one of these categories:

| Category | Signals | Priority | Action |
|----------|---------|----------|--------|
| **LEAD_SIGNAL** | Asks about services, pricing, availability; mentions pain points; DMs asking for help | HIGH | Reply + flag for CRM |
| **CUSTOMER_QUESTION** | Existing client asking for support, updates, or clarification | HIGH | Reply + flag for account team |
| **PARTNERSHIP_OPPORTUNITY** | Collaboration offers, co-marketing, referral partner signals | MEDIUM | Reply + flag for founder |
| **GENUINE_ENGAGEMENT** | Thoughtful comments, shares experience, adds to discussion | MEDIUM | Reply to nurture |
| **SIMPLE_REACTION** | "Great post!", "Agree!", emoji-only, basic compliments | LOW | Short thank-you or skip |
| **TROLL_SPAM** | Hostile, irrelevant, promotional spam, bot-like | IGNORE | Do not reply, flag for review |

Classification output:
```json
{
  "category": "LEAD_SIGNAL",
  "confidence": "HIGH",
  "reasoning": "Asked about Shopify development pricing and mentioned they need help with their store",
  "suggested_action": "Reply with value, DM to continue conversation",
  "crm_flag": true
}
```

## Phase 2: Reply Generation

### LEAD_SIGNAL replies
- Acknowledge their need specifically
- Provide one piece of genuine value (tip, insight, quick observation)
- Soft pivot to conversation ("Happy to share more, DM me?" or "We actually helped a brand with exactly this")
- Never hard pitch in a public reply
- If DM: be more direct, offer a quick call or audit

### CUSTOMER_QUESTION replies
- Answer directly and helpfully
- If complex, acknowledge + offer to follow up via DM/email
- Reference their specific situation if known
- Keep professional but warm

### PARTNERSHIP_OPPORTUNITY replies
- Express interest without over-committing
- Ask a qualifying question ("What kind of collaboration are you thinking?")
- Offer to take it to DM/email

### GENUINE_ENGAGEMENT replies
- Match their energy level
- Add value to the conversation (expand on a point, share a related insight)
- Ask a follow-up question to deepen engagement
- Keep it conversational, not corporate

### SIMPLE_REACTION replies
- Short acknowledgment: "Thanks!", "Appreciate that", "Glad it resonated"
- Or skip entirely if volume is high (flag as "no reply needed")

### TROLL_SPAM replies
- Do not reply
- Flag for manual review
- If borderline, respond once with facts, then disengage

## Phase 3: Platform-Specific Formatting

| Platform | Reply Style | Length |
|----------|------------|--------|
| LinkedIn | Professional, can be 1-3 sentences, use their name | 20-80 words |
| Twitter | Casual, punchy, match their tweet energy | Under 280 chars |
| Instagram | Friendly, use their handle, casual | 10-40 words |
| Reddit | Helpful, detailed if they asked a question, no self-promo | 30-200 words |

## Phase 4: Quality Check

1. **Banned phrase scan**: Check against `outreach.banned_phrases`
2. **Self-promo check**: Public replies should not read as ads. Lead with value.
3. **Tone match**: Reply tone should match the engagement's tone (serious reply to serious question, casual to casual)
4. **Platform limits**: Twitter replies under 280 chars
5. **No emoji overload**: Max 1-2 per reply

## Phase 5: Output

Return structured JSON:

```json
{
  "engagements": [
    {
      "platform": "linkedin",
      "type": "comment",
      "author": "Priya Mehta",
      "original_text": "This is really insightful. We've been struggling with our Shopify product pages for months.",
      "classification": {
        "category": "LEAD_SIGNAL",
        "confidence": "HIGH",
        "reasoning": "Mentions struggling with Shopify product pages, matches our CRO service",
        "crm_flag": true
      },
      "reply": "Priya, product pages are where most D2C brands leave the most revenue on the table. One quick win: make sure your above-the-fold shows social proof + a clear size/variant selector without scrolling. Happy to share a few more specifics if useful, feel free to DM.",
      "follow_up_action": "If she DMs, share Kibi Sports case study and offer a free CRO audit",
      "word_count": 47
    }
  ],
  "summary": {
    "total_processed": 12,
    "lead_signals": 2,
    "customer_questions": 1,
    "partnership": 0,
    "genuine_engagement": 5,
    "simple_reactions": 3,
    "troll_spam": 1,
    "replies_generated": 8,
    "skipped": 4
  },
  "generated_at": "2026-03-13T10:00:00Z"
}
```

## Phase 6: CRM Handoff

For LEAD_SIGNAL engagements:
- Write to CRM via `crm-writer` with: author name, platform, signal text, classification, reply sent, follow-up action
- Set lead stage = NEW if not already in CRM
- Tag source = `social_engagement`

## Example Usage

Trigger phrases:
- "Process today's LinkedIn comments and mentions"
- "Classify and reply to these Instagram DMs"
- "Handle the comments on my latest LinkedIn post"
- "Check for lead signals in this week's social engagement"
- "Draft replies for these Reddit mentions"
- "Triage my social media inbox"

Files in this skill

  • SKILL.md6.5 KB
  • skill.meta.json556 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.