Skip to content
Back to skills

Linkedin Feed Engage

ASecurity

Auto-comment on LinkedIn posts authored by your ICP — scroll the feed, identify posts from target prospects, and post relevant value-adding comments to build visibility before outreach. Use when the user says "auto-comment", "engage on feed", "comment on prospects' posts", "warm up before outreach", "build LinkedIn visibility", "feed engagement", or "comment automation".

  • 4 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added May 28, 2026
ai-agentsgoapi

Works with

  • api
  • mcp

Security analysis

A100/100

Scanned May 28, 2026

npx -y skills add claude-dev-code/claude-skills-linkedin --skill linkedin-feed-engage --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Linkedin Feed Engage?

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

Security grade badge for Linkedin Feed Engage
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/claude-dev-code-linkedin-feed-engage/badge)](https://www.skillsdirectory.com/skills/claude-dev-code-linkedin-feed-engage)

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: linkedin-feed-engage
description: Auto-comment on LinkedIn posts authored by your ICP — scroll the feed, identify posts from target prospects, and post relevant value-adding comments to build visibility before outreach. Use when the user says "auto-comment", "engage on feed", "comment on prospects' posts", "warm up before outreach", "build LinkedIn visibility", "feed engagement", or "comment automation".
---

# Auto-comment on ICP Feed

The premise: commenting thoughtfully on a prospect's post before sending an invite raises accept rate by 30-50%. They've seen your name and read something useful from you. This skill scrolls your LinkedIn feed, identifies posts authored by ICP-matching profiles, and posts a value-adding comment on each.

## Required prerequisites — check before you start

1. **`linkupapi` MCP connected.** Verify with `linkupapi_list_accounts`.
   - If the list is **empty**, tell the user they have two options to connect a LinkedIn account, then stop and wait:
     - **Hosted UI** — open https://app.linkupapi.com/account-connection (fastest, handles checkpoints in-browser).
     - **MCP login** — run `linkupapi_login` directly (platform=linkedin, with email+password OR a `login_token`). On `checkpoint_required` → run `linkupapi_checkpoint`.
2. **Pick the sending account** before Stage 1. After confirming at least one `status = connected` account exists, present the connected accounts via `AskUserQuestion` (single-select). Each option label is the account display name; description shows email + country. The chosen `account_id` is the one whose feed will be scrolled and that will post the comments.
3. The user must already know their ICP — this skill is NOT a discovery tool, it filters an existing feed against a known ICP.

## Daily LinkedIn safety caps (MANDATORY — enforced)

- **100 profile gets / day** — used for borderline ICP-match verification
- **15 searches / day** — generally not consumed by this skill (feed ≠ search)
- **Comment volume**: LinkedIn soft-caps around 30-50 comments/day. This skill **defaults to 15 comments / day max** to stay safely below.

**Before Stage 1**, run `linkupapi_get_logs` for last 24h on the chosen account, count today's `linkedin_profiles/get` and `linkedin_content/comment` (or whichever action posts a comment — confirm via tool schema). Compute remaining budget per category. Never override.

## Stage 0 — ICP + comment style

`AskUserQuestion`:

1. **ICP** — same shape as `linkedin-outreach` Stage 0. Offer to reuse `./icp/*.json` if present.
2. **Topic filter** — optional keywords the post body must contain (e.g. "outbound", "hiring", "AI sales"). Empty = no topic constraint, just author match.
3. **Comment style**:
   - **Auto-generate (recommended)** — agent reads each post + writes a 2-3 sentence value-adding comment in real time
   - **Templates with variables** — user provides 3-5 templates with `{post_topic}` / `{author_first_name}` placeholders, agent picks one per post
   - **Manual approval (HITL)** — agent drafts each, user approves/edits/skips before posting
4. **Volume cap** — max comments today (hard ceiling = 15)
5. **Time window** — only posts authored in the last X hours (default 48h; older posts have low engagement ROI)

Echo the brief with budget math + the daily cap remaining, wait for "yes".

## Stage 1 — Pull the feed

Tool: `linkedin_content`. Load schema with `ToolSearch query="select:mcp__linkupapi__linkedin_content"`. Likely action: `get_feed` or `get_user_feed`.

```json
{"account_id": "...", "action": "get_feed", "params": {"limit": 100}}
```

Pull 50-100 recent posts. Each result should include `post_url`, `author_profile_url`, `author_name`, `author_headline`, `post_text` (or excerpt), `posted_at`, `engagement_count`.

Drop immediately:
- Posts older than the time window
- Reposts where the user authored neither the original nor the repost commentary
- Promoted/sponsored posts (they're ads, not organic)
- Posts the user has already commented on (check `viewer_has_commented` if available)

## Stage 2 — Pre-filter on visible author signal

For each post, score the AUTHOR against ICP using only visible fields (`author_headline`, `author_name`):
- ✅ Headline matches ICP roles/industry → KEEP
- ❌ Clear mismatch → DROP
- ⚠️ Ambiguous → keep for Stage 3 enrichment IF budget permits

Then apply the topic filter on `post_text`:
- KEEP if post_text contains any topic keyword (case-insensitive substring or semantic match)
- If user provided no topic filter, skip this check

No tool calls at this stage — pure LLM judgment.

## Stage 3 — Enrich borderline authors (budget-aware)

For ⚠️ ambiguous authors only, run `linkedin_profiles get` to verify current role.

**Cap this stage at 1/3 of today's remaining profile budget.** Never exhaust the 100/day on Stage 3 — leave room for the user's other workflows (`linkedin-outreach`, `linkedin-enrich`).

Drop authors whose enriched current role doesn't match the ICP.

## Stage 4 — Generate comments

For each kept post, generate a comment per the chosen style.

**Auto-generated comment principles**:
- 2-3 sentences max (≤300 chars ideal)
- Add value — don't just agree. Worst possible comment: "Great post!"
- Reference a specific point from `post_text` (proves you read it, not just scrolled)
- End with an open question or insight, not a CTA / pitch
- No emojis unless the post itself uses them
- No links (LinkedIn ranks comments with links lower)
- No name-drop of the user's company unless directly relevant

Example shape:
> "The point about {specific_thing_from_post} resonates — we've seen the same pattern with {related_observation}. Curious whether {open_question}?"

If user picked **HITL**, surface each draft with `post_excerpt + author + comment_draft` and wait for approve / edit / skip per post. Don't batch the approvals.

## Stage 5 — Post comments (paced, cap-aware)

Use `linkedin_content` action that posts a comment (`comment` / `post_comment` — confirm via schema).

```json
{"account_id": "...", "action": "comment", "params": {"post_url": "...", "comment_text": "..."}}
```

**Pacing rules** (non-negotiable):
- Sleep **30-60 seconds** between comments. Comment cadence is the most-watched anti-bot signal — 15 comments in 5 minutes will get flagged.
- Vary the sleep duration randomly within that range.
- Stop immediately if today's 15-comment cap is reached.
- Stop immediately if any call returns a rate-limit error or 429.

If the run starts producing errors mid-batch, stop and surface to the user — don't retry blindly.

## Stage 6 — Persist & report (mandatory)

Write `./campaigns/{YYYY-MM-DD}-feed-engage.md`:
1. ICP definition + topic filter
2. Feed scan stats: posts pulled / matched author / matched topic / commented
3. Comment style used
4. Per-comment table: `# | post_url | author | author_company | comment_posted | timestamp`
5. Daily caps remaining
6. Skipped posts and why (already commented / topic mismatch / borderline dropped for budget)

Concise on-screen summary.

## Pre-handoff to outreach

When `linkedin-outreach` runs later this week and the prospect list overlaps with authors commented on this week, **the outreach skill should reference the comment in the invite note** — accept rate jumps significantly. The campaign log here is the source of truth for that cross-reference. Make sure `author_profile_url` is captured in the log so the outreach skill can match.

## Common pitfalls

- **Comment cadence too fast**: 15 in an hour = flag. Default 30-60s + random jitter.
- **Generic praise comments**: "Great post!" / "Love this!" — kill credibility AND get demoted in feed ranking. Always reference something specific.
- **Templated phrasing**: LinkedIn fingerprints repeated phrases across an account. Vary every comment, don't reuse opener words.
- **Controversial content**: skip posts about politics, layoffs, personal news unless the user explicitly opts in.
- **Old posts**: comments on posts >72h old get low visibility. Filter to last 48h by default.
- **Author replies expected**: when the author replies to your comment, the user should engage back manually within 24h (no automation here — too risky).

## Tool quick reference

| Tool | Action | Daily cap |
|---|---|---|
| `linkedin_content` | `get_feed` | — |
| `linkedin_profiles` | `get` | **100/day shared** |
| `linkedin_content` | `comment` / `post_comment` | **15/day (this skill)** |
| `linkupapi_get_logs` | — | run at Stage 0 |

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.