본문으로 건너뛰기
cccskills
무료GitHub에 공개

competitor-post-engagers

Find leads by scraping engagers from a competitor's top LinkedIn posts. Given one or more company page URLs, scrapes recent posts, ranks by engagement, selects the top N, extracts all reactors and commenters, ICP-classifies, and exports CSV. Use when someone wants to "find leads engaging with competitor content" or "scrape people who interact with [company]'s LinkedIn posts".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구LinkedIn

실행 점수 미검증

설치 방법 보기

포함된 파일(3)

  • SKILL.md7.2 KB
  • scripts/competitor_post_engagers.py34.4 KB
  • skill.meta.json315 B

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Competitor Post Engagers

Find ICP-fit leads by scraping engagers from a competitor's top-performing LinkedIn posts. Given one or more company page URLs, this skill finds their highest-engagement recent posts, extracts everyone who reacted or commented, and classifies by ICP fit.

Core principle: Scrape all posts in one call per company, then locally rank and select the top N. This minimizes Apify costs while maximizing lead quality.

Phase 0: Intake

Ask the user these questions:

Target Companies

  1. LinkedIn company page URL(s) to scrape (e.g., https://www.linkedin.com/company/11x-ai/)
  2. Time window — how many days back to look (default: 30)
  3. Top N posts per company to extract engagers from (default: 1)

ICP Criteria

  1. ICP keywords — job title/role terms that indicate a good lead (e.g., "sales", "SDR", "revenue")
  2. Exclude keywords — roles to filter out (e.g., "software engineer", "designer")
  3. Geographic focus (optional, e.g., "United States")

Save config in the current working directory (or user-specified path):

competitor-post-engagers-config.json

Config JSON structure:

{
  "name": "<run-name>",
  "company_urls": ["https://www.linkedin.com/company/<competitor>/"],
  "days_back": 30,
  "max_posts": 50,
  "max_reactions": 500,
  "max_comments": 200,
  "top_n_posts": 1,
  "icp_keywords": ["sales", "revenue", "growth", "SDR", "BDR", "outbound"],
  "exclude_keywords": ["software engineer", "developer", "designer"],
  "enrich_companies": true,
  "competitor_company_names": ["<competitor-name>"],
  "industry_keywords": ["freight", "logistics", "trucking", "transportation", "3pl", "supply chain", "carrier", "brokerage", "shipping", "warehousing"],
  "output_dir": "output"
}
  • enrich_companies — Enable Apollo company enrichment (default: true). Set to false or use --skip-company-enrich to skip.
  • competitor_company_names — Company names to exclude from enrichment (the competitor itself).
  • industry_keywords — Industry terms that indicate ICP fit. Matched against Apollo's industry field.

The output_dir is relative to the script directory by default. Override it with an absolute path to write output to a specific location.

Phase 1: Run the Pipeline

python3 skills/competitor-post-engagers/scripts/competitor_post_engagers.py \
  --config competitor-post-engagers-config.json \
  [--test] [--yes] [--skip-company-enrich] [--top-n 3] [--max-runs 30]

Flags:

  • --config (required) — path to config JSON
  • --test — small limits (20 posts, 50 profiles, 1 top post)
  • --yes — skip cost confirmation prompts
  • --skip-company-enrich — skip Apollo company enrichment step (saves credits)
  • --top-n — override top_n_posts from config
  • --max-runs — override Apify run limit

Pipeline Steps

Step 1: Scrape company posts + engagers — For each company URL, one Apify call using harvestapi/linkedin-company-posts with scrapeReactions: true, scrapeComments: true. Returns posts, reactions, and comments in a single dataset.

Step 2: Rank & select top posts — Filter posts by time window (days_back), rank by total engagement (reactions + comments), select top N per company. Then extract engagers (reactors + commenters) only from those selected posts. Deduplication by name. Score engagers by position:

  • +3 Commenter (higher intent)
  • +2 Position matches ICP keywords
  • -5 Position matches exclude keywords

Step 3: Company enrichment (Apollo) — Extract unique company names from engagers, call apollo.enrich_organization(name=...) for each. Returns industry, employee count, description, and location. ~1 Apollo credit per unique company. Merge data back to all engagers from that company. Skip with --skip-company-enrich or "enrich_companies": false.

Step 4: ICP classify & export — Classify as Likely ICP / Possible ICP / Unknown / Tech Vendor. Uses both headline keyword matching AND company industry data (from Step 3) — if the engager's company industry matches industry_keywords, they're classified as "Likely ICP" regardless of role. Export CSV.

Cost Estimates

ParameterTestStandard
Posts scraped per company2050
Max reactions50500
Max comments50200
Est. Apify cost (1 company)~$0.10~$0.50-1
Est. Apollo credits (company enrich)~10-20~30-80 unique companies
Est. Apollo cost~$0.05-0.10~$0.15-0.40

Phase 2: Review & Refine

Present results:

  • Post selection — which posts were chosen and why (engagement counts, preview)
  • Per-company breakdown — how many leads from each competitor
  • ICP breakdown — counts by tier
  • Top 15 leads — name, role, company, engagement type

Common adjustments:

  • Too many irrelevant leads — tighten icp_keywords or add exclude_keywords
  • Missing ICP leads — broaden icp_keywords
  • Wrong posts selected — increase top_n_posts or adjust days_back
  • Too expensive — use --test mode or lower max_reactions/max_comments

Phase 3: Output

CSV exported to {output_dir}/{name}-engagers-{date}.csv:

ColumnDescription
NameFull name
LinkedIn URLProfile link
RoleParsed from headline
CompanyParsed from headline
Company IndustryFrom Apollo enrichment
Company SizeEstimated employee count from Apollo
Company DescriptionShort company description from Apollo
Company LocationCity, State, Country from Apollo
Source PageWhich competitor's page
Post URLLink to the specific post
Post PreviewFirst 120 chars of post content
Engagement TypeComment or Reaction
Comment TextTheir comment (personalization gold)
ICP TierLikely ICP / Possible ICP / Unknown / Tech Vendor
Pre-Filter ScorePriority score from pre-filter

Tools Required

  • Apify API token — set as APIFY_API_TOKEN in .env
  • Apollo API key — set as APOLLO_API_KEY in .env (for company enrichment)
  • Apify actors used:
    • harvestapi/linkedin-company-posts (post + engager scraping)
  • Apollo endpoints used:
    • organizations/enrich (company industry/size lookup, 1 credit per company)

Example Usage

Trigger phrases:

  • "Find leads engaging with [competitor]'s LinkedIn posts"
  • "Scrape engagers from [company]'s top posts"
  • "Who is interacting with [competitor]'s content?"
  • "Run competitor-post-engagers for [company]"

Test mode:

python3 skills/competitor-post-engagers/scripts/competitor_post_engagers.py \
  --config competitor-post-engagers-config.json --test --yes

Full run:

python3 skills/competitor-post-engagers/scripts/competitor_post_engagers.py \
  --config competitor-post-engagers-config.json --yes

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Research supported advertising promises from a specific buyer's context, current product facts, customer language and observed ads. Turn them into static, video or copy ideas; match video ideas to actual recipes and save a product-scoped angle bank for write-video-ad-script. Product-led discovery can use verified facts without reviews. Reference persistence and reach are observations, not proof of performance.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

gooseworks-ai/goose-skills1.3천2026년 10월 23일 업데이트

Analyze ad campaign performance data (Google, Meta, LinkedIn) to identify what's working, what's wasting budget, and specific cut/scale/test recommendations. Runs statistical analysis, funnel diagnostics, and multi-channel budget reallocation with specific dollar-amount shift recommendations and scenario modeling.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

gooseworks-ai/goose-skills1.3천2026년 10월 23일 업데이트

For paid lead-gen and participant-recruitment ads, replaces vanity CPA with true CAC per qualified lead by joining ad-platform data with downstream funnel events, surfaces tracking gaps, and classifies every creative into Scale / Keep / Investigate / Cut.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

gooseworks-ai/goose-skills1.3천2026년 10월 23일 업데이트

The intake stage of a Meta ad harness. Researches the brand first, states what it assumes, and asks only what it cannot infer and what would change money, claims or legal exposure if guessed wrong — at most four questions a turn, in plain business language. Writes the brand's stable facts (ads/brand.md), the campaign brief, and a log of what was asked vs assumed. Use it when someone wants to run Meta ads and the brand's ad facts are not yet recorded.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

gooseworks-ai/goose-skills1.3천2026년 10월 23일 업데이트

Checks paid ads against the ad platform's rules (Meta, TikTok, Google, LinkedIn and others) and the brand's category rules: the copy, on-image or on-screen text, pictures and people. Rewrites what can be fixed honestly, adds the disclosures that are needed, and flags anything that needs a human or legal review, with one pass, fixed or flag line per ad and platform. Use alone when you already have the ad text or images and know where they will run; otherwise run the playbook for the job (e.g. make-static-ads, make-content, email-lifecycle).

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

gooseworks-ai/goose-skills1.3천2026년 10월 23일 업데이트

Analyze the message match between your ads and landing pages. Checks if the promise in the ad copy carries through to the landing page headline, body, and CTA. Flags disconnects that kill conversion rates. Works with Google, Meta, and LinkedIn ads.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

gooseworks-ai/goose-skills1.3천2026년 10월 23일 업데이트

gooseworks-ai의 스킬 모두 보기

이 스킬의 문제 신고