Linkedin post research

Search LinkedIn posts by keywords, sorted by engagement or date.

How to use it

  1. Hit Copy the whole skill.
  2. Claude: ⋯ → Download .md, then Customize → Skills → Add → Upload skill.
    ChatGPT: make a Project and paste it into Instructions.
    Neither? Paste it at the top of a new chat — it works for that chat.
  3. Describe your job in plain words. The AI follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit gooseworks-ai/goose-skills/skills/social/capabilities/linkedin-post-research#main ~/.claude/skills/linkedin-post-research

For one project only, change the path to .claude/skills/linkedin-post-research.

Not working?
  • Check which app you pasted it into — the steps above name the right one.
  • Some skills need the paid tier of Claude or ChatGPT.
Step-by-step guide with screenshots · Ask in the forum

Paste into Claude, ChatGPT or Cursor.

Show the full text159 lines
linkedin-post-research/SKILL.md159 lines5.1 KBpushed 96d agoRawView on GitHub

LinkedIn Post Research

Search LinkedIn for posts matching keywords via Apify. Returns posts sorted by engagement or date, with author info, full text, reaction counts, and direct URLs.

No LinkedIn cookies. No login. Just keywords in, posts out.

When to Auto-Load

Load this skill when:

  • User says "search LinkedIn posts", "what are people saying about X on LinkedIn", "find LinkedIn content about"
  • User wants to find high-engagement posts on a topic
  • User wants to identify who's posting about a specific topic (thought leader discovery)
  • User wants to find posts to extract commenters from (warm lead pipeline)

Prerequisites

Apify API Token

Required for searching LinkedIn posts. Set in .env:

APIFY_API_TOKEN=your_token_here

No LinkedIn cookies, login, or session tokens needed. That's the only setup.


How It Works

  1. Takes one or more keywords
  2. Calls the apimaestro/linkedin-posts-search-scraper-no-cookies Apify actor
  3. Returns posts with author, text, engagement metrics, date, and URL
  4. Deduplicates across keywords by activity_id
  5. Sorts by engagement (total reactions) descending, or by date

Quick Start

# Single keyword search
python3 skills/capabilities/linkedin-post-research/scripts/search_posts.py \
  --keyword "AI sourcing" --max-items 20

# Multiple keywords
python3 skills/capabilities/linkedin-post-research/scripts/search_posts.py \
  --keyword "AI sourcing" --keyword "recruiting automation" --max-items 30

# Sort by date (most recent first)
python3 skills/capabilities/linkedin-post-research/scripts/search_posts.py \
  --keyword "AI agents" --sort-by date_posted --max-items 20

# Output as CSV
python3 skills/capabilities/linkedin-post-research/scripts/search_posts.py \
  --keyword "AI agents" --output csv --output-file results.csv

# Summary table
python3 skills/capabilities/linkedin-post-research/scripts/search_posts.py \
  --keyword "AI agents" --output summary

CLI Reference

Flag Default Description
--keyword, -k required Keyword to search (can be repeated for multiple keywords)
--max-items 50 Max posts to return per keyword
--sort-by relevance Sort order: relevance or date_posted
--output, -o json Output format: json, csv, summary
--output-file stdout Write output to file
--token env var Apify API token (overrides APIFY_API_TOKEN env var)
--timeout 120 Max seconds to wait for Apify run

Apify Actor Details

Actor: apimaestro/linkedin-posts-search-scraper-no-cookies

API call:

curl -X POST "https://api.apify.com/v2/acts/apimaestro~linkedin-posts-search-scraper-no-cookies/runs?token=$APIFY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "keyword": "AI agents",
    "maxItems": 50,
    "sortBy": "date_posted"
  }'

Polling for results:

# Check run status
curl "https://api.apify.com/v2/acts/apimaestro~linkedin-posts-search-scraper-no-cookies/runs/{RUN_ID}?token=$APIFY_API_TOKEN"

# When status is SUCCEEDED, fetch results
curl "https://api.apify.com/v2/datasets/{DATASET_ID}/items?token=$APIFY_API_TOKEN"

Output Schema

{
  "author": "Jane Smith",
  "author_headline": "VP of Sales at Acme Corp",
  "author_profile_url": "https://www.linkedin.com/in/janesmith",
  "keyword": "AI sourcing",
  "reactions": 142,
  "comments": 28,
  "shares": 12,
  "reactions_by_type": {"LIKE": 100, "EMPATHY": 30, "PRAISE": 12},
  "date": "2026-04-01",
  "post_preview": "First 200 chars of the post text...",
  "full_text": "Complete post text...",
  "url": "https://www.linkedin.com/posts/...",
  "activity_id": "7447040447966826496",
  "hashtags": ["#AI", "#sales"],
  "is_repost": false,
  "content_type": "text"
}

Output Columns (CSV)

Column Description
author Post author name
author_headline Author's LinkedIn headline
author_profile_url Author's LinkedIn profile URL
keyword Which search keyword matched
reactions Total reaction count
comments Comment count
shares Share count
date Post date (YYYY-MM-DD)
post_preview First ~200 characters
url Direct link to the LinkedIn post
activity_id Unique post identifier
hashtags Comma-separated hashtags

Cost

Apify charges per compute usage. ~50 posts costs approximately $0.01-0.05 depending on the actor's pricing tier. The script prints cost info after each run.

Error Handling

Error Fix
APIFY_API_TOKEN not set Ask user to add it to .env
Apify run fails or times out Retry once. If still fails, try a broader keyword.
0 results Keyword may be too specific. Try broader terms.
1---
2name: linkedin-post-research
3description: >
4 Search LinkedIn posts by keywords, sorted by engagement or date. Use when researching
5 what people are saying about a topic on LinkedIn, finding high-engagement content,
6 identifying thought leaders, or discovering warm leads through post engagement.
7 Returns author, post text, reactions, comments, shares, post URL, and date.
8 No LinkedIn cookies or login required.
9tags: [research, lead-generation]
10---
11 
12# LinkedIn Post Research
13 
14Search LinkedIn for posts matching keywords via Apify. Returns posts sorted by engagement or date, with author info, full text, reaction counts, and direct URLs.
15 
16No LinkedIn cookies. No login. Just keywords in, posts out.
17 
18## When to Auto-Load
19 
20Load this skill when:
21- User says "search LinkedIn posts", "what are people saying about X on LinkedIn", "find LinkedIn content about"
22- User wants to find high-engagement posts on a topic
23- User wants to identify who's posting about a specific topic (thought leader discovery)
24- User wants to find posts to extract commenters from (warm lead pipeline)
25 
26## Prerequisites
27 
28### Apify API Token
29 
30Required for searching LinkedIn posts. Set in `.env`:
31 
32```
33APIFY_API_TOKEN=your_token_here
34```
35 
36No LinkedIn cookies, login, or session tokens needed. That's the only setup.
37 
38---
39 
40## How It Works
41 
421. Takes one or more keywords
432. Calls the `apimaestro/linkedin-posts-search-scraper-no-cookies` Apify actor
443. Returns posts with author, text, engagement metrics, date, and URL
454. Deduplicates across keywords by `activity_id`
465. Sorts by engagement (total reactions) descending, or by date
47 
48## Quick Start
49 
50```bash
51# Single keyword search
52python3 skills/capabilities/linkedin-post-research/scripts/search_posts.py \
53 --keyword "AI sourcing" --max-items 20
54 
55# Multiple keywords
56python3 skills/capabilities/linkedin-post-research/scripts/search_posts.py \
57 --keyword "AI sourcing" --keyword "recruiting automation" --max-items 30
58 
59# Sort by date (most recent first)
60python3 skills/capabilities/linkedin-post-research/scripts/search_posts.py \
61 --keyword "AI agents" --sort-by date_posted --max-items 20
62 
63# Output as CSV
64python3 skills/capabilities/linkedin-post-research/scripts/search_posts.py \
65 --keyword "AI agents" --output csv --output-file results.csv
66 
67# Summary table
68python3 skills/capabilities/linkedin-post-research/scripts/search_posts.py \
69 --keyword "AI agents" --output summary
70```
71 
72## CLI Reference
73 
74| Flag | Default | Description |
75|------|---------|-------------|
76| `--keyword`, `-k` | *required* | Keyword to search (can be repeated for multiple keywords) |
77| `--max-items` | 50 | Max posts to return per keyword |
78| `--sort-by` | `relevance` | Sort order: `relevance` or `date_posted` |
79| `--output`, `-o` | `json` | Output format: `json`, `csv`, `summary` |
80| `--output-file` | stdout | Write output to file |
81| `--token` | env var | Apify API token (overrides APIFY_API_TOKEN env var) |
82| `--timeout` | 120 | Max seconds to wait for Apify run |
83 
84## Apify Actor Details
85 
86**Actor:** `apimaestro/linkedin-posts-search-scraper-no-cookies`
87 
88**API call:**
89```bash
90curl -X POST "https://api.apify.com/v2/acts/apimaestro~linkedin-posts-search-scraper-no-cookies/runs?token=$APIFY_API_TOKEN" \
91 -H "Content-Type: application/json" \
92 -d '{
93 "keyword": "AI agents",
94 "maxItems": 50,
95 "sortBy": "date_posted"
96 }'
97```
98 
99**Polling for results:**
100```bash
101# Check run status
102curl "https://api.apify.com/v2/acts/apimaestro~linkedin-posts-search-scraper-no-cookies/runs/{RUN_ID}?token=$APIFY_API_TOKEN"
103 
104# When status is SUCCEEDED, fetch results
105curl "https://api.apify.com/v2/datasets/{DATASET_ID}/items?token=$APIFY_API_TOKEN"
106```
107 
108## Output Schema
109 
110```json
111{
112 "author": "Jane Smith",
113 "author_headline": "VP of Sales at Acme Corp",
114 "author_profile_url": "https://www.linkedin.com/in/janesmith",
115 "keyword": "AI sourcing",
116 "reactions": 142,
117 "comments": 28,
118 "shares": 12,
119 "reactions_by_type": {"LIKE": 100, "EMPATHY": 30, "PRAISE": 12},
120 "date": "2026-04-01",
121 "post_preview": "First 200 chars of the post text...",
122 "full_text": "Complete post text...",
123 "url": "https://www.linkedin.com/posts/...",
124 "activity_id": "7447040447966826496",
125 "hashtags": ["#AI", "#sales"],
126 "is_repost": false,
127 "content_type": "text"
128}
129```
130 
131## Output Columns (CSV)
132 
133| Column | Description |
134|--------|-------------|
135| author | Post author name |
136| author_headline | Author's LinkedIn headline |
137| author_profile_url | Author's LinkedIn profile URL |
138| keyword | Which search keyword matched |
139| reactions | Total reaction count |
140| comments | Comment count |
141| shares | Share count |
142| date | Post date (YYYY-MM-DD) |
143| post_preview | First ~200 characters |
144| url | Direct link to the LinkedIn post |
145| activity_id | Unique post identifier |
146| hashtags | Comma-separated hashtags |
147 
148## Cost
149 
150Apify charges per compute usage. ~50 posts costs approximately $0.01-0.05 depending on the actor's pricing tier. The script prints cost info after each run.
151 
152## Error Handling
153 
154| Error | Fix |
155|-------|-----|
156| `APIFY_API_TOKEN` not set | Ask user to add it to `.env` |
157| Apify run fails or times out | Retry once. If still fails, try a broader keyword. |
158| 0 results | Keyword may be too specific. Try broader terms. |
159 

Discussion

Alternatives

Also in Posting & scheduling
Linkedin comment drafterDraft a LinkedIn comment on someone else's post from its URL, or reshare (repost) it to your feed with optional commentary. Use when the user pastes a post URL and asks to comment, engage, be first commenter, or repost with their thoughts. Produces 1-3 variants in the user's voice, picks a reaction, and publishes via Publora on approval. Not for replying to existing comments (use linkedin-reply-handler).Marketing · MITLinkedin content plannerGenerate a 7-day LinkedIn content plan from a theme, audience, and pillars. Produces per-day post pillar, format, hook type, CTA, posting time, daily comment targets, and a weekly inbound-readiness check. Use when the user wants to plan a week or month of content, not draft a single post (use linkedin-post-writer).Marketing · MITLinkedin employee advocacyStand up and run a LinkedIn employee advocacy program for a marketing or sales team. Covers 14-day launch playbook, brand-guideline governance, per-post time budget, cadence benchmarks, and team ROI (reach, engagement, pipeline). Triggers on "employee advocacy", "get the team posting", "scale LinkedIn across team", "advocacy ROI". Not for planning one person's own calendar (use linkedin-content-planner).Marketing · MITInstagram Audience InsightsRead your Instagram niche and profile from real data via Apify, no login. Scan a hashtag for the posts traveling now (likes, comments, owner) to see the format and hook that works. Pull profile stats for any handle, yours or a competitor's: followers, posts, bio, category. Instagram hides who liked or commented on other accounts, so this is discovery plus profiles, not engagers. Triggers on "what works in my niche", "scan the hashtag", "competitor stats". Not for writing captions (use ig-caption-writer).Marketing · MIT