---
name: comment-finder-service-companies
description: >
  Use whenever the user wants daily LinkedIn comment opportunities for Beezi
  AI's services-firm ICP. Surfaces up to 5 high-fit posts from Apify-scraped
  LinkedIn data and suggests quick comment angles, then posts the plan
  to a Slack channel. Beezi sells to SERVICE COMPANIES (IT services,
  consultancies, custom software shops, digital transformation agencies) in
  the US and UK ONLY — not to SaaS product companies. Buyers: CEOs, COOs,
  Heads of Delivery, Heads of AI Practice, Practice Leads, Managing Partners
  at mid-market services firms (50–2,000 employees). Trigger phrases:
  "find posts to comment on", "morning comments", "comment plan", "daily
  LinkedIn comments", "5 posts to engage with", "comment opportunities",
  "Beezi comments", "comment-mining", "post comments to Slack". Also trigger
  whenever the user mentions LinkedIn engagement, services firm leaders, RFP
  wins, or build-vs-buy AI platform discussions.
---

# Comment Finder — Service Companies (US & UK)

Surfaces high-fit LinkedIn posts from Apify scrapes, suggests peer-tone
comment angles, and posts the daily plan to Slack.

**Geo scope: United States and United Kingdom only.** Drop posts from
authors based outside these markets, even if they otherwise match the ICP.

**Buyer (the ICP):**
- CEO / Founder / President of a services firm
- COO / Chief Delivery Officer
- Head of Delivery / VP Delivery / Director of Delivery
- Head of AI Practice / Head of AI Center of Excellence / AI Practice Lead
- Chief Innovation Officer / VP Innovation
- Head of Engineering Practice / VP Engineering Services
- Partner / Managing Director / Managing Partner (consulting firms)
- Head of Pre-sales / Head of Solutions / VP Solutions Architecture
- VP Sales / Head of Sales (services firms — RFP-led)
- CTO (services firms ONLY — never SaaS product companies)

**Beezi positioning (read every run):**

> Beezi is the AI-native SDLC orchestration platform that mid-market
> services firms own, deploy inside client environments, and use to win
> RFPs, protect margins, and convert one-off engagements into multi-year
> platform retainers. Competitors: EPAM AI DIAL, Softserve Agentic
> Engineering Suite, Deloitte AI Assist, EY.ai PDLC, KPMG Workbench.
> Beezi is the answer for the tier of services firms below those.

---

## Workflow

### Step 1 — Detect mode

**Setup mode** if user says "set up the tasks", "how do I configure", or
this is the first run. Walk them through `references/apify-search-tasks.md`.

**Daily mode** is the default. Skip to Step 2.

### Step 2 — Collect inputs

The skill needs two things per run:

1. **Slack channel** (name or ID). If user said "post to #X" in the
   invocation, use that. Default: `C0BDG58MWLW` (#comment_finder).
2. **Optional: max posts to surface** (default 5).

No dataset IDs needed — the skill runs a live Apify search every time.

### Step 3 — Run a fresh Apify search

Call `mcp__Apify__call-actor` with:

```json
{
  "actor": "harvestapi/linkedin-post-search",
  "waitSecs": 45,
  "input": {
    "searchQueries": [
      "\"AI practice\" consulting firm",
      "\"build vs buy\" AI platform services",
      "\"agentic delivery\" OR \"AI agents\" consulting",
      "\"SDLC\" AI platform services firm",
      "\"RFP\" AI consulting OR \"pre-sales AI\"",
      "\"Head of AI\" services firm hiring",
      "\"outcome-based\" OR \"T&M\" AI consulting"
    ],
    "maxPosts": 25,
    "postedLimit": "24h",
    "sortBy": "date",
    "profileScraperMode": "short"
  }
}
```

If the run is not yet SUCCEEDED after `waitSecs`, poll using
`mcp__Apify__get-actor-run` with the returned `runId` every 20 seconds
until status = SUCCEEDED or FAILED (typically 2–4 minutes total).

Once SUCCEEDED, call `mcp__Apify__get-dataset-items` with:
- `datasetId`: the run's `defaultDatasetId`
- `limit`: 100
- `fields`: `linkedinUrl,content,author.name,author.info,postedAt.postedAgoShort,engagement.likes,engagement.comments`

Combine all results and deduplicate by `linkedinUrl`.

If the run fails or returns 0 items, report to Slack:
> "⚠️ Apify search returned no results today — LinkedIn rate limit or
> actor error. Retry manually or check Apify dashboard."

### Step 4 — Filter by ICP

**Hard geo filter (drop if any fails):**
- Author location does NOT explicitly include "United States", "US", "USA",
  "United Kingdom", "UK", "England", "Scotland", "Wales", "Northern
  Ireland", or a US/UK city name (London, Manchester, Edinburgh, NYC, SF,
  Austin, etc.)
- If location is missing/ambiguous: check company HQ. If unclear, drop.

**Author title filter (must contain one of):**
- CEO, Founder, President, Co-founder
- COO, Chief Delivery, Chief Operating
- Head of Delivery, VP Delivery, Director of Delivery
- Head of AI Practice, Head of AI, AI Practice Lead, AI Center of Excellence
- Chief Innovation, VP Innovation
- Head of Engineering Practice, VP Engineering Services
- Partner, Managing Director, Managing Partner
- Head of Pre-sales, Head of Solutions, VP Solutions
- VP Sales, Head of Sales
- CTO, Chief Technology Officer (only if company is a services firm)

**Competitor employee block (drop if author works at):**
EPAM, Softserve, Deloitte, EY, KPMG, Accenture, Capgemini, IBM Consulting,
TCS, Infosys, Wipro, Cognizant, HCL, Tech Mahindra, Mphasis, PwC,
McKinsey, BCG, Bain, 8090.ai. (Unless user opts in: "include big GSIs".)

**Company filter:**
- Services / consulting / IT services / custom software / digital
  transformation / professional services / system integrator
- Headcount 50-5,000 (sweet spot 100-2,000)
- NOT a SaaS product company

**Post quality filter:**
- Posted in last 48 hours
- At least 3 comments OR 15 reactions
- Not a job posting (unless it's a "Head of AI Practice" hire announcement)
- Not a re-share, birthday, generic career update
- Author hasn't been commented on by the user in last 14 days (skip if no
  history exists)

**Hard disqualifiers** (drop): recruiter, talent, HR, marketing manager,
sales rep, account executive (junior), student, intern, EA, comms, PR,
journalist, VC, investor, coach.

### Step 5 — Rank the survivors

| Signal | Points |
|--------|--------|
| Post mentions "we built our own" AI platform / internal AI tool | +30 |
| Post mentions winning an RFP with AI / AI in proposals / pre-sales AI | +25 |
| Post mentions outcome-based pricing, T&M-to-outcome, services margin pressure | +25 |
| Post names a competitor (AI DIAL, Agentic Engineering Suite, AI Assist, EY.ai PDLC, KPMG Workbench, 8090.ai) | +25 |
| Post mentions agents in delivery / agentic delivery / AI agents in consulting | +20 |
| Post discusses SDLC orchestration / governance / observability across delivery | +20 |
| Post announces hiring a Head of AI Practice / Head of Delivery / Chief Innovation Officer | +20 |
| Post discusses build-vs-buy for AI tooling at services firms | +20 |
| Post discusses billable hours opacity, cost transparency to clients | +15 |
| Author is CEO, Founder, COO, or Managing Partner | +15 |
| Post has 15+ comments | +10 |
| Post is <12 hours old | +10 |
| Author has 5,000+ followers | +5 |

**Diversity when picking top 5:**
- Max 2 posts from same task
- Max 1 post from same author
- Aim for at least 1 "build vs buy" or "we built our own" angle if available

**If fewer than 5 posts hit 40+, surface only what qualifies.** Don't pad.

### Step 6 — Suggest comment angles

For each selected post, think through Beezi's positioning first — an
AI-native SDLC orchestration platform that helps mid-market services firms
win RFPs, protect margins, and convert one-off engagements into retainers —
and let that context inform which angle is most resonant. Never name Beezi.

Then output a **quick directional suggestion** (1-2 sentences) for each
post. The user will write and refine the actual comment; you're giving them
a starting point and a creative spark, not a finished comment.

Each suggestion follows the **Hook => (Value Add) => Conversation Starter** framework:

- **The Hook** — acknowledge a specific point from the creator's post.
  Ground the angle in something they actually said.
- **The Value Add** *(optional — use when there's a genuine insight)*
  — a complementary tip, a contrarian but polite perspective, or a brief
  lesson learned. Draw on real thinkers (Karpathy, Ethan Mollick, etc.)
  when it fits naturally. Skip it if it would feel forced.
- **The Conversation Starter** — end with an open-ended question that
  invites other readers to reply to the comment, not just the author.

**Format per post:**
Angle: [1-2 sentence directional suggestion]
Hook on: [the specific line/idea from their post]
Possible opener: "[short starter phrase]"

Vary the angles across all 5 — challenge a framing, add a stat, bring in a
framework, offer a contrarian take, reference a thinker. No two suggestions
should feel like the same move.

See references/comment-archetypes.md for angle examples by post type.

### Step 7 — Post to Slack

Call slack_send_message (load via tool_search if needed) with:
- channel: the channel name or ID provided by the user
- message: formatted per the template below (use Slack mrkdwn)

Slack message template:

---
SLACKMSG
🐝 *Comment Plan — [Day, Date]*  ·  US & UK services firms

Surfaced *[N] post(s)* from [X] scraped. Top themes today: [list].

═══════════════════════════════════════

*POST 1 of [N]*  ·  Score: [X]  ·  Task: [task name]
👤 [Author Name] — [Title] at [Company] ([employee count], [city])
📅 [X hrs ago]  ·  💬 [N] comments  ·  👍 [N] reactions
🔗 [Post URL]

*Excerpt:*
> [first 300 chars of post]

*Why it's a fit:* [1 sentence]

*Comment angle:*
[1-2 sentence directional suggestion + possible opener in backtick code block]

═══════════════════════════════════════

[repeat for posts 2 through N]

═══════════════════════════════════════

*Summary:*
• Suggested posting order: [recommendation]
• Patterns noticed: [insight]
• Tomorrow's likely volume: [based on today's signal density]
---

Use triple-backtick code blocks around each comment angle so the user
can one-click copy the suggestion in Slack.

**After posting**, confirm to the user in chat:
> "Posted [N] comment opportunities to [#channel]. Top pick: [author/company].
> Run again tomorrow morning to refresh."

### Step 8 — Optional 14-day tracking

If the user wants de-duplication across days, offer to append today's
posted URLs + author names to a CSV. Ask only on first run.

---

## Critical rules

- **Beezi is never mentioned by name** in any comment angle.
- **US/UK only.** Drop everyone else, even strong-fit posts from elsewhere.
- **Never auto-post comments to LinkedIn.** Only post the *plan* to Slack —
  the user posts to LinkedIn manually after review.
- **Never more than 5 suggestions per run.** Quality over volume.
- **Never recycle angles across posts.** Each suggestion should feel fresh and specific to that post.
- **Cite which Apify task each post came from** in the Slack output.
- **Be honest about thin days.** 2 strong posts is a real answer.
- **Block competitor employee posts** unless user explicitly opts in.
- **Never target SaaS product company employees.** Not the buyer.

---

## When the user pushes back

- "Too soft / sharper / different angle" => rethink *that* suggestion, keep others.
- "More posts" => surface 6-10 from same ranked list.
- "Wrong ICP" => recheck filter, ask which dimension was off.
- "Wrong channel" => re-post to correct channel and delete the wrong one if
  Slack permissions allow.

---

## See also

- references/apify-search-tasks.md — the 4 Apify task definitions
- references/comment-archetypes.md — angle examples by post type
