p2b-social-media-scraper
AI agent skill for searching Facebook posts and scraping LinkedIn profiles via Bright Data.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
AI agent skill for searching Facebook posts and scraping LinkedIn profiles via Bright Data.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Coder/integrator skill for building integrations, automations, and deploying services. Covers tech stack decisions (Deno Deploy, GitHub, InstantDB, prompt2bot, Supergreen), referencing the dedicated WhatsApp skill for WhatsApp integrations, webhook patterns, and communication guidelines for non-technical users.
AI agent skill for interacting with Google Docs and Google Sheets.
AI agent skill for interacting with Google Drive.
Make.com integration guidance for prompt2bot agents — regional APIs, module versions, and scenario blueprint scanning.
Create, query, and manage calendar events and meeting availability across Calendly, Google Calendar, and Microsoft 365 Calendar (Outlook). Covers event creation, searching events, free/busy availability, and booking. Triggers: calendar, event, meeting, schedule, scheduling, availability, free busy, booking, appointment, reminder, timezone, create event, Google Calendar, Outlook, Microsoft 365, Calendly.
Deno Deploy guidance and VM-less safescript tools for prompt2bot agents — REST API v2 app/env-var/revision operations, CLI usage, CI deployment, and logging.
| name | p2b-social-media-scraper |
| description | AI agent skill for searching Facebook posts and scraping LinkedIn profiles via Bright Data. |
Query Facebook posts via RapidAPI and scrape LinkedIn profiles via Bright Data. All logic runs as safescript with no subprocess access.
Pass secrets via secretMapping:
{ "rapidApiKey": "RAPIDAPI_KEY", "brightDataToken": "BRIGHTDATA_TOKEN" }
Used by facebookPosts and youtubeSubtitles.
When a RapidAPI key is missing, explain clearly that this is an external API key the owner needs to create in RapidAPI, not a password for Facebook or YouTube. Do not say "if you already have one" as the main path; most owners will need to create it now. Give the setup steps plainly and in the user's language, and include the direct subscription link the user needs to open.
Good explanation:
To pull Facebook post data reliably I need access to a RapidAPI provider. RapidAPI is a marketplace for APIs; you create a free RapidAPI account, subscribe to the Facebook Scraper v3 API at https://rapidapi.com/restyler/api/facebook-scraper3, copy your RapidAPI key, and send it here. I will store it securely as a bot secret named
RAPIDAPI_KEYand use it only for these API calls.
Do not present browser scraping as an equivalent fallback when the task needs structured Facebook engagement data. Facebook often blocks browser automation; for reliable post/engagement analysis, guide the owner through RapidAPI setup.
RAPIDAPI_KEY) with no host restrictions.When the owner sends the key, immediately store it with the secret-storage tool
as RAPIDAPI_KEY. Then call the relevant tool with
secretMapping: { "rapidApiKey": "RAPIDAPI_KEY" } instead of asking for the key
again.
Used by startLinkedInProfileScrape and getLinkedInProfileSnapshot.
BRIGHTDATA_TOKEN) with host api.brightdata.com.facebookPosts — Search or get Facebook posts. Pass query and/or groupId.
startLinkedInProfileScrape — Start a LinkedIn profile scrape (max 10 URLs).
Returns a snapshot_id for polling.
getLinkedInProfileSnapshot — Fetch status/result of a pending snapshot.
youtubeSubtitles — Fetch SRT subtitles for a YouTube video URL.
import { facebookPosts } from "./scripts/social-media-scraper.ss";
export const myTask = async () => {
const result = await facebookPosts(
process.env.RAPIDAPI_KEY,
"deno programming",
"",
"",
);
console.log(result);
};
The facebookPosts function accepts:
rapidApiKey — RapidAPI keyquery — Search query (empty string to omit)groupId — Facebook group ID (empty string to omit)sortingOrder — Sorting order for group posts, e.g. CHRONOLOGICALAt least one of query or groupId must be non-empty.
Two-step flow:
startLinkedInProfileScrape(brightDataToken, urls) with up to 10 URLs.snapshot_id, call
getLinkedInProfileSnapshot(brightDataToken, snapshotId) to check progress.
Repeat until status is "ready" or "failed".Valid LinkedIn URL format: https://(www.)linkedin.com/in/<username>/
Fetch subtitles for a single YouTube video:
youtubeSubtitles(rapidApiKey, url) — Returns SRT subtitle text for a YouTube video URL.
The URL must contain a video ID (e.g. https://youtube.com/watch?v=abc).