New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Read a Facebook Page and its audience from real data

Facebook Audience Insights

by sergebulaev · MIT license · ★ 49 on GitHub · updated Sep 17

Facebook Audience Insights cover

Read a Facebook Page and its audience from real data. Pull any Page's public stats (yours or a competitor's): followers, likes, categories, intro, websites.

---
name: fb-audience-insights
description: "Read a Facebook Page and its audience from real data. Pull any Page's public stats (yours or a competitor's): followers, likes, categories, intro, websites. And pull the commenters on a public Page post, since Facebook hides the reactor and liker roster and shows counts only, so commenters are the signal. Powered by Apify, no login. Triggers on \"analyze my Page\", \"competitor Page stats\", \"who is commenting\", \"read the comments\", \"audience insights\". Not for writing Page posts (use fb-post-writer)."
---

# Facebook Audience Insights

Turn real Facebook data into a read on a Page and its audience: how big it is, what it is about, and who is actually engaging in the comments. This is the read layer, so the skill sees actual numbers instead of guessing.

One honest limit: Facebook hides the roster of who **reacted** to (liked) a post. It shows reaction counts, never a reactor list. The engagement signal here is **commenters + Page stats**, which is where the real conversation lives anyway. This reads commenters, not likers, on purpose.

## When to use

- "Analyze my Page / how is my Page doing"
- "Pull the stats on this competitor Page"
- "Who is commenting on this post"
- "Read the comments on this Page post"
- "Size up [a Page] before I pitch / benchmark against it"

Overview

Turn real Facebook data into a read on a Page and its audience: how big it is, what it is about, and who is actually engaging in the comments. This is the read layer, so the skill sees actual numbers instead of guessing.

What you get

  • Page readthe Page's title, category, followers, likes, and intro, with a one-line take on positioning and size
  • Commenter readwho commented on a post, recurring questions or themes, commenters worth a reply or a follow
  • Competitor readthe same Page stats for a rival, so you can benchmark follower size, category, and how they describe themselves
  • Action listwhat to write more of, whose comments to reply to, which Page angle to borrow
Manual install (npx, ZIP)
Claude Codenpx skills add sergebulaev/facebook-skills --skill fb-audience-insights -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/sergebulaev/facebook-skills/tar.gz/cc47acac47a8 \ | tar -xz -C ~/.claude/skills --strip-components=4 facebook-skills-cc47acac47a8/.codex-marketplace/facebook-skills/skills/fb-audience-insights
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/303484d18b137a6e1323/fb-audience-insights.zip" -OutFile "$env:TEMP\fb-audience-insights.zip"; Expand-Archive "$env:TEMP\fb-audience-insights.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md5.1 KB
Read the files here
sergebulaev/cc47aca1 file
SKILL.md
Show the full text73 lines

Facebook Audience Insights

Turn real Facebook data into a read on a Page and its audience: how big it is, what it is about, and who is actually engaging in the comments. This is the read layer, so the skill sees actual numbers instead of guessing.

One honest limit: Facebook hides the roster of who reacted to (liked) a post. It shows reaction counts, never a reactor list. The engagement signal here is commenters + Page stats, which is where the real conversation lives anyway. This reads commenters, not likers, on purpose.

When to use

  • "Analyze my Page / how is my Page doing"
  • "Pull the stats on this competitor Page"
  • "Who is commenting on this post"
  • "Read the comments on this Page post"
  • "Size up [a Page] before I pitch / benchmark against it"

Not for writing a Page post (use fb-post-writer) or drafting comment replies (use fb-engagement-drafter).

Setup (optional)

The read layer uses Apify (no login, no cookies). Get a free token at https://console.apify.com/account/integrations and set APIFY_TOKEN. No token? Paste the Page stats or the comments you already have and the skill runs the same analysis on them.

Input

  • A Facebook Page URL (yours or a competitor's), or
  • A public Page-post URL (or a bare pfbid post id) to read its commenters

Output

  1. Page read - the Page's title, category, followers, likes, and intro, with a one-line take on positioning and size
  2. Commenter read - who commented on a post, recurring questions or themes, commenters worth a reply or a follow
  3. Competitor read - the same Page stats for a rival, so you can benchmark follower size, category, and how they describe themselves
  4. Action list - what to write more of, whose comments to reply to, which Page angle to borrow

Steps

  1. Pull the data. For a Page: lib.ApifyClient().fetch_page_stats(page_url). For a post's commenters: fetch_post_commenters(post_url, max_comments=25). Falls back to pasted data if no token.
  2. Read the Page. Report followers, likes, category, and intro. Compare a competitor's numbers to the user's own Page to size the gap honestly (a bigger follower count is context, not destiny).
  3. Read the commenters. Cluster comments into questions, agreement, and pushback. Recurring questions are content ideas; commenters with substance are reply candidates. Sort by reactions and replies to surface the comments that themselves traveled.
  4. Be honest about the wall. Facebook does not expose who reacted or liked. Never present a "top likers" list. If the user asks for likers, explain the platform limit and pivot to commenters.
  5. Build the action list. Write-more-of (angles the audience responds to), engage (specific commenters to reply to), borrow (a competitor Page's positioning move). Route drafts to fb-post-writer / fb-engagement-drafter.
  6. Deliver the report in the Output shape, with the raw Page stats and ranked comments attached.

What the read layer exposes

Method Returns
fetch_page_stats(page_url) Page stats: title, page_name, page_id, followers, likes, categories, intro, websites, email, profile/cover photo urls
fetch_post_commenters(post_url, max_comments) commenters on a post: author, author_id, message, reactions, replies, depth, is_reply (the engagement signal, since reactors/likers are hidden)

Both are verified live against apify/facebook-pages-scraper and danek/facebook-comments-ppr.

Hard rules

Global voice rules: see root SKILL.md Voice rules. Additional skill-specific rules:

  • Be honest that this reads commenters, not likers (Facebook hides the reactor roster). Never imply a full liker or reactor list exists.
  • Compare against the user's own Page before calling a competitor "ahead" or "behind". Raw follower count without context misleads.
  • Never invent a Page stat, a follower number, a comment, or a commenter name. If a Page or post returns nothing (private, comments off, share link that hides ids), say so and ask the user to paste.
  • A theme is only a theme if it recurs across several comments, not one.
  • Page stats are a public snapshot, not private Insights (no reach, no demographics). Do not present them as Meta Business Suite Insights.
  • fb-post-writer - write more of what the read shows the audience responds to
  • fb-engagement-drafter - reply to a commenter the read surfaced
  • fb-hook-extractor - reverse-engineer a hook from a competitor's high-share post
  • fb-content-planner - feed the winning angles into a weekly plan
  • fb-page-optimizer - borrow a competitor Page's positioning into your own Page setup
1---
2name: fb-audience-insights
3description: "Read a Facebook Page and its audience from real data. Pull any Page's public stats (yours or a competitor's): followers, likes, categories, intro, websites. And pull the commenters on a public Page post, since Facebook hides the reactor and liker roster and shows counts only, so commenters are the signal. Powered by Apify, no login. Triggers on \"analyze my Page\", \"competitor Page stats\", \"who is commenting\", \"read the comments\", \"audience insights\". Not for writing Page posts (use fb-post-writer)."
4---
5 
6# Facebook Audience Insights
7 
8Turn real Facebook data into a read on a Page and its audience: how big it is, what it is about, and who is actually engaging in the comments. This is the read layer, so the skill sees actual numbers instead of guessing.
9 
10One honest limit: Facebook hides the roster of who **reacted** to (liked) a post. It shows reaction counts, never a reactor list. The engagement signal here is **commenters + Page stats**, which is where the real conversation lives anyway. This reads commenters, not likers, on purpose.
11 
12## When to use
13 
14- "Analyze my Page / how is my Page doing"
15- "Pull the stats on this competitor Page"
16- "Who is commenting on this post"
17- "Read the comments on this Page post"
18- "Size up [a Page] before I pitch / benchmark against it"
19 
20Not for writing a Page post (use `fb-post-writer`) or drafting comment replies (use `fb-engagement-drafter`).
21 
22## Setup (optional)
23 
24The read layer uses **Apify** (no login, no cookies). Get a free token at `https://console.apify.com/account/integrations` and set `APIFY_TOKEN`. No token? Paste the Page stats or the comments you already have and the skill runs the same analysis on them.
25 
26## Input
27 
28- A Facebook Page URL (yours or a competitor's), or
29- A public Page-post URL (or a bare `pfbid` post id) to read its commenters
30 
31## Output
32 
331. **Page read** - the Page's title, category, followers, likes, and intro, with a one-line take on positioning and size
342. **Commenter read** - who commented on a post, recurring questions or themes, commenters worth a reply or a follow
353. **Competitor read** - the same Page stats for a rival, so you can benchmark follower size, category, and how they describe themselves
364. **Action list** - what to write more of, whose comments to reply to, which Page angle to borrow
37 
38## Steps
39 
401. **Pull the data.** For a Page: `lib.ApifyClient().fetch_page_stats(page_url)`. For a post's commenters: `fetch_post_commenters(post_url, max_comments=25)`. Falls back to pasted data if no token.
412. **Read the Page.** Report followers, likes, category, and intro. Compare a competitor's numbers to the user's own Page to size the gap honestly (a bigger follower count is context, not destiny).
423. **Read the commenters.** Cluster comments into questions, agreement, and pushback. Recurring questions are content ideas; commenters with substance are reply candidates. Sort by `reactions` and `replies` to surface the comments that themselves traveled.
434. **Be honest about the wall.** Facebook does not expose who reacted or liked. Never present a "top likers" list. If the user asks for likers, explain the platform limit and pivot to commenters.
445. **Build the action list.** Write-more-of (angles the audience responds to), engage (specific commenters to reply to), borrow (a competitor Page's positioning move). Route drafts to `fb-post-writer` / `fb-engagement-drafter`.
456. **Deliver the report** in the Output shape, with the raw Page stats and ranked comments attached.
46 
47## What the read layer exposes
48 
49| Method | Returns |
50|---|---|
51| `fetch_page_stats(page_url)` | Page stats: title, page_name, page_id, followers, likes, categories, intro, websites, email, profile/cover photo urls |
52| `fetch_post_commenters(post_url, max_comments)` | commenters on a post: author, author_id, message, reactions, replies, depth, is_reply (the engagement signal, since reactors/likers are hidden) |
53 
54Both are verified live against `apify/facebook-pages-scraper` and `danek/facebook-comments-ppr`.
55 
56## Hard rules
57 
58Global voice rules: see root `SKILL.md` Voice rules. Additional skill-specific rules:
59 
60- Be honest that this reads **commenters, not likers** (Facebook hides the reactor roster). Never imply a full liker or reactor list exists.
61- **Compare against the user's own Page** before calling a competitor "ahead" or "behind". Raw follower count without context misleads.
62- Never invent a Page stat, a follower number, a comment, or a commenter name. If a Page or post returns nothing (private, comments off, share link that hides ids), say so and ask the user to paste.
63- A theme is only a theme if it recurs across several comments, not one.
64- Page stats are a public snapshot, not private Insights (no reach, no demographics). Do not present them as Meta Business Suite Insights.
65 
66## Related skills
67 
68- `fb-post-writer` - write more of what the read shows the audience responds to
69- `fb-engagement-drafter` - reply to a commenter the read surfaced
70- `fb-hook-extractor` - reverse-engineer a hook from a competitor's high-share post
71- `fb-content-planner` - feed the winning angles into a weekly plan
72- `fb-page-optimizer` - borrow a competitor Page's positioning into your own Page setup
73 
View all files on GitHub →

Details

Updated
Sep 17, 2026
License
MIT
Stars on the repo
★ 49
Checked
Source
sergebulaev/facebook-skills ↗
Creator
sergebulaev · 77 listings
View creator

Similar skills

See all →
SkillEstimate the intrinsic value of a public company using DCFCompany valuationhimself65/finance-skills · by himself65Estimate the intrinsic value of a public company using DCF, relative (peer multiple) and sum-of-parts (SOTP) methods, then triangulate to an implied share price with upside/downside versus the current market price. Use this skill whenever the user asks: what is AAPL worth", "valuation of NVDA", "fair value of TSLA", "intrinsic value", DCF for MSFT", "build a DCF", "discounted cash flow", "WACC", "terminal value", implied share price", "upside to fair value", "is X overvalued/undervalued", relative valuation", "peer comparison valuation", "EV/EBITDA target", "SOTP", sum of the parts", "how much is [company] worth", "price target from fundamentals", value this company", or any ticker in the context of computing intrinsic or relative valuation. Default to running ALL three methods (DCF + relative + SOTP-if-applicable) and presenting a blended implied price with a sensitivity table. Do not answer valuation questions from memory — always run the workflow.★ 3.3k GitHub starsSkillFind keywords a competitor ranks for that the user's siteCompetitor gapRyze-AI-Adgent/open-seo-mcp-skills · by Ryze-AI-AdgentFind keywords a competitor ranks for that the user's site doesn't — the content gap, prioritized by volume and winnability. Use when asked "what does competitor.com rank for", "keyword gap vs X", "steal competitor keywords", or "why do they outrank us".★ 3.1k GitHub starsSkillMine the highest-converting ad angles from customer reviewsAd angle minergooseworks-ai/goose-skills · by gooseworks-aiMine the highest-converting ad angles from customer reviews, Reddit complaints, support tickets, and competitor ads. Extracts actual pain language, competitor weaknesses, and outcome phrases that real buyers use. Outputs a ranked angle bank with proof quotes and recommended ad formats per angle.★ 1.2k GitHub starsSkillAnalyze competitor content coverageCompetitor content intelligencesandbaseai/sandbase-skills · by sandbaseaiAnalyze competitor content coverage and uncover differentiated content opportunities using web search, page extraction, and DataForSEO content analysis. Use when asked for competitor content research, editorial gap analysis, content brief inputs, or topic whitespace.★ 203 GitHub starsSkillCreates competitive battlecards for sales deal conversationsgrowthack88/growth-marketing-os · by growthack88Creates competitive battlecards for sales deal conversations. Produces win themes, landmines to plant, objection handlers, and competitive positioning per competitor. Outputs a structured markdown battlecard with quick-reference sections for live sales calls. Depends on competitor-research for competitive intelligence and consumes product-messaging, win-loss-analysis, and positioning for framing. Feeds into sales-deck, outreach-emails, and demo-script. Triggered by "battlecard", "competitive intel", "win against [competitor]", or "how do we beat [competitor]".★ 117 GitHub starsSkillRead your X audience and niche from real dataX audience insightssergebulaev/x-skills · by sergebulaevRead your X (Twitter) audience and niche from real data. Pull a handle's recent tweets (yours or a competitor's) with likes, replies, and views, see which formats and hooks are working, read the repliers on a tweet (X gates likers, so repliers are the signal), and scan a niche query for top tweets. Powered by Apify, no login. Triggers on "analyze my tweets", "what is working on X", "read the replies", "competitor tweets", "who is engaging". Not for writing a tweet (use x-post-writer).★ 95 GitHub stars

More from sergebulaev

SkillBy density per paragraph, not per wordAI Tells — Complete Blacklist (V3, 2026-09)sergebulaev/linkedin-skills · by sergebulaevScored the way readers read: by density per paragraph, not per word. One marker in a paragraph is English. Three is a signature. The…★ 3.1k GitHub starsSkillFifteen rules from the linkedin-humanizer packageAI-Tell Rules: Tier-Classified Referencesergebulaev/linkedin-skills · by sergebulaevFifteen rules from the linkedin-humanizer package, sorted by what kind of evidence each one actually represents.★ 3.1k GitHub starsSkillPattern data from MagicPost LinkedIn analysisEmoji Patterns — AI vs. Humansergebulaev/linkedin-skills · by sergebulaevPattern data from MagicPost LinkedIn analysis (Feb 2026, viral post with 220 engagement).★ 3.1k GitHub starsSkillRead your Instagram niche and profile from real dataInstagram Audience Insightssergebulaev/instagram-skills · by sergebulaevRead 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).★ 138 GitHub starsSkillDraft an Instagram caption with the hook in the first 125Instagram Caption Writersergebulaev/instagram-skills · by sergebulaevDraft an Instagram caption with the hook in the first 125 characters, a skimmable body, and one clear CTA, using a 2026 hook formula chosen by goal (saves, shares, comments, follows). Runs the humanizer pass and, on approval, publishes with the image or video you supply via the Publora media flow. Use to caption a single image or a Reel. Not for slide-by-slide carousels (use ig-carousel-planner) or auditing a draft (use ig-humanizer --mode audit).★ 138 GitHub starsSkillPlan an Instagram carousel slide by slide, up to 10 slidesInstagram Carousel Plannersergebulaev/instagram-skills · by sergebulaevPlan an Instagram carousel slide by slide, up to 10 slides, with a hook slide that opens a loop, value slides that front-load the payoff, and a payoff slide that earns the save and follow. Picks a 2026 carousel formula (listicle, before/after, myth-buster, framework) by goal (saves, shares, follows), drafts each slide's text plus the caption, then publishes the images you supply via Publora. Use to structure a multi-slide carousel. Not for single-image captions (use ig-caption-writer).★ 138 GitHub stars