playbook-ad-library

Generates a cold-email line describing what a company advertises on Meta from the Ad Library.

Updated May 28, 2025
One-click install
npx skills add https://github.com/meloShaya/insteltech --skill playbook-ad-library-meloshaya
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: playbook-ad-library
Source: https://github.com/meloShaya/insteltech/tree/main/crm/library/skills/playbooks/playbook-ad-library
Command: npx skills add https://github.com/meloShaya/insteltech --skill playbook-ad-library-meloshaya

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Cold email personalization requires knowing what a prospect is currently advertising, but the Meta Ad Library is keyed to Facebook Pages while prospect lists are keyed to company domains, and naive lookups return the wrong company's page or fabricated ad copy. ## Core Features & Use Cases - Verified page discovery chain: Resolves a bare domain to a verified Facebook Page via website HTML scraping, gated SERP search, and a rendering proxy, with three gates that reject wrong-company pages. - Metered ad fetch with cost controls: Calls the Apify facebook-ads-scraper with onlyTotal billing, a 45-day cache, and domain dedup so paid calls only fire on verified pages and cache misses. - Guarded line writer: Produces a lowercase ad_library_line that slots into "Noticed {{ad_library_line}}.", using a locked prompt, deterministic lint gates, an ungrounded-words check, and a mandatory truth judge on 100% of lines. - Use Case: Given a list of ecommerce domains, produce a per-row merge field like "you are using ai to run outbound campaigns with one command" for a cold email sequence, abstaining safely when no page can be verified. ## Quick Start Give the skill a bare company domain and cleaned company name and ask it to produce the ad_library_line merge field for that prospect.

Frequently Asked Questions about playbook-ad-library

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I find a company's Facebook page from its domain?

Fetch the company homepage and regex for a facebook.com slug after un-escaping \/ sequences, then fall back to a site:facebook.com SERP search. Accept a result only if the URL has one path segment, the title contains the company name, and the slug matches the domain's second-level label.

How do I check if a company is running ads on Facebook and Instagram?

Use the Apify facebook-ads-scraper actor with the verified page URL, onlyTotal set to true, and activeStatus set to active. This returns the active ad count and sample ad copy at one billed item per page rather than per ad.

Why does the Meta Ad Library totalCount not match the real number of ads?

The totalCount field collates near-duplicate creatives, placements, and locales, so it overstates reality. Never quote the raw number to a prospect; only use the phrase "a lot of ads" when the count is 50 or more.

Can I use the Meta Graph API ads_archive for commercial ad data?

No. Outside the EU the ads_archive endpoint only returns political and issue ads, so it returns nothing for commercial brands, and it requires a verified Business app with ID verification. A scraper actor is the working alternative.

What happens when no Facebook page can be verified for a domain?

The row abstains with an empty string for every output field rather than guessing a page. The abstain is cached for 45 days so re-runs do not burn paid discovery calls on the same domain.

Why does the line writer need a truth judge after lint checks?

Deterministic lint catches format violations but cannot detect semantic errors where the model names a product the ads never mentioned. The truth judge runs on 100% of surviving lines because structural QC missed this failure twice in graded runs.