agentsclimarketplace

Linkedin post research

Skill gooseworks-ai/goose-skills/skills/social/capabilities/linkedin-post-research

Library of Growth & GTM skills + data APIs for Claude Code, Codex, Cursor to run ads, social, content, lead gen, seo and data scraping

Install
npx -y skills add gooseworks-ai/goose-skills --skill linkedin-post-research

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

What its author says it does

Copied from the file, not written here

Search LinkedIn posts by keywords, sorted by engagement or date. Use when researching what people are saying about a topic on LinkedIn, finding high-engagement content, identifying thought leaders, or discovering warm leads through post engagement. Returns author, post text, reactions, comments, shares, post URL, and date. No LinkedIn cookies or login required.

SKILL.md

5.1 KB, as published. Nobody here has run it

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

FlagDefaultDescription
--keyword, -krequiredKeyword to search (can be repeated for multiple keywords)
--max-items50Max posts to return per keyword
--sort-byrelevanceSort order: relevance or date_posted
--output, -ojsonOutput format: json, csv, summary
--output-filestdoutWrite output to file
--tokenenv varApify API token (overrides APIFY_API_TOKEN env var)
--timeout120Max 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)

ColumnDescription
authorPost author name
author_headlineAuthor's LinkedIn headline
author_profile_urlAuthor's LinkedIn profile URL
keywordWhich search keyword matched
reactionsTotal reaction count
commentsComment count
sharesShare count
datePost date (YYYY-MM-DD)
post_previewFirst ~200 characters
urlDirect link to the LinkedIn post
activity_idUnique post identifier
hashtagsComma-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

ErrorFix
APIFY_API_TOKEN not setAsk user to add it to .env
Apify run fails or times outRetry once. If still fails, try a broader keyword.
0 resultsKeyword may be too specific. Try broader terms.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.