reverse-engineer-marketing
Pulls Apple App Store data for a linked app, including ratings (download proxy), release age, update cadence, and icon.
Collects Google Ads targeting the domain, other advertisers bidding on the brand, and top Google search results.
Retrieves Google Play app metadata and install counts for a linked Android app.
Inspects Google Tag Manager containers to detect tracking pixels and tags hidden inside them.
Collects Instagram profile stats, posts, videos, follower counts, top posts, and avatar data.
Retrieves Meta ad library ads (active and paused), creative details, run lengths, variants, and Meta pixel IDs.
Detects Pinterest tracking pixels and IDs on a website to reveal paid social stack.
Retrieves Product Hunt launches and related community data for a brand.
Finds Reddit threads, brand/founder posts and replies, owned subreddits, comparison threads, and Reddit pixel IDs.
Collects TikTok profile stats, videos, posts/week, top posts, spark ads, and TikTok pixel IDs.
Uses Wikidata to find founder names, brand logos, and entity metadata.
Collects YouTube channel/video data, follower counts, posts, and top content.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@reverse-engineer-marketingreverse engineer the marketing behind notion.so"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
REM: Reverse Engineer Marketing
Paste a link. Get the whole marketing machine behind it.
Paid ads · organic social · SEO & AI search · founders · funnel · positioning history, with the evidence for every claim.
npx reverse-engineer-marketing notion.so
Quick start · Web app · What it finds · Use it from your agent (MCP) · Example report · How it works
Nobody shares their growth alpha anymore. But most of it is public if you know where to look: ad libraries show which ads have been running for months (the winners), pixels show which platforms they buy, sitemaps show programmatic SEO, Wayback shows every repositioning, and founders post their playbook in public.
REM collects all of it from one link and turns it into a report: what the company's growth engine is, how the channels connect, and a step-by-step playbook to copy it. Every fact cites the evidence it came from, and everything REM couldn't see is listed as unknown, with a link to check it yourself.
Inspired by REA (Reverse Engineer Anything), but for marketing instead of binaries.
Quick start
npx reverse-engineer-marketing linear.appThat works with no API keys: website, tracking pixels (including pixels hidden inside Google Tag Manager containers), SEO/sitemaps, AI-crawler stance, Wayback positioning history, App Store/Google Play and Hacker News.
Add keys to unlock the rest:
export SCRAPECREATORS_API_KEY=... # ad libraries, social stats, founders, Reddit (~25–50 credits per run)
export ANTHROPIC_API_KEY=... # the written strategy report (Claude)
npx reverse-engineer-marketing calai.appOutput goes to ./rem-reports/<domain>-<date>/: report.md plus evidence.json (the raw evidence bundle).
It also accepts App Store and Google Play links: rem https://apps.apple.com/us/app/…/id123.
rem <url> [--no-ai] [--json] [--only paid,social,seo] [--handle tiktok=name] [--out dir]
rem web # local web app (Claude Code / Codex subscription)
rem doctor # which sources your keys unlock
rem setup # commands to connect REM to Claude Code / Codex / Cursor
rem mcp # run the MCP serverRelated MCP server: Zoom Search
Web app: use your Claude Code or Codex plan
npx reverse-engineer-marketing webOpens a local web app at http://localhost:4321. Paste a link, pick who writes the report, and watch the evidence come in and the playbook stream out. Every E12 citation opens the raw evidence behind it.
The Posts & ads tab is a review library of everything collected: Meta ads (active and paused, with creatives, inline video, run length, variants, top-by-impressions), Google and LinkedIn ads, TikTok and Instagram videos, YouTube, X and LinkedIn posts (company and founders), and Reddit threads and brand/founder replies. Filter by platform, sort by top / newest / longest running, open any original. The rail shows the brand logo and the founders with photos, roles, LinkedIn/X audience and a confidence badge.
Report writer | How it runs | Cost |
Claude Code | your installed | your Claude subscription |
Codex | your installed | your ChatGPT subscription |
Anthropic API |
| per token |
Evidence only | no AI | free |
Subscription engines run the CLI you're already logged into. REM strips ANTHROPIC_API_KEY / OPENAI_API_KEY from their environment so your plan is used, not an API key, and runs them in a scratch folder with your MCP servers and hooks disabled. The server listens on 127.0.0.1 only and rejects other hosts and origins. Add your Scrape Creators key from the top-right pill; it's saved to ~/.config/reverse-engineer-marketing/config.json (mode 600). Past runs are listed on the home page.
What it finds
Area | What REM pulls | Needs a key? |
Paid: Meta | All ads incl. paused campaigns, active count, most-shown ads, ads launched in the last 30 days, longest-running active ads (the proven winners) with hooks, formats, CTAs, landing pages, UTM campaign names, variant counts | Scrape Creators |
Paid: Google | Ads pointing at the domain, formats, recency, and other advertisers bidding on the brand (affiliates/resellers) | Scrape Creators |
Paid: LinkedIn | Ads by the company, ad types, headlines, CTAs | Scrape Creators |
Pixels & stack | Meta/Google/TikTok/LinkedIn/Reddit/X/Pinterest/Snap pixels with IDs, including inside GTM containers; attribution SDKs (AppsFlyer, Adjust, Branch); affiliate tools; email/CRM; visitor-ID tools (RB2B, Warmly, Koala, Clearbit) that reveal an outbound motion; A/B testing | Free |
Organic social | TikTok, Instagram, YouTube, X, LinkedIn: followers, posts/week, median reach, top posts and hooks, spark ads, days since last post. Finds TikTok even when the site doesn't link it | Scrape Creators |
SEO | Sitemap size and folders, programmatic page families ( | Free (+1 credit) |
AI search (GEO) | llms.txt, which AI crawlers are blocked or allowed | Free |
Founders | Names from Wikidata, the site's JSON-LD and about page (free), plus LinkedIn and Google search; ranked by confidence; LinkedIn/X audience, photo, recent posts | Free names; enrichment Scrape Creators |
Reddit marketing | Brand/founder posts and replies, owned subreddit activity, comparison and "what should I use" threads, organic recommendations, Reddit threads ranking on Google | Scrape Creators |
Brand logo | apple-touch-icon, LinkedIn logo, App Store icon, JSON-LD, Wikidata, Instagram avatar (best first, with fallbacks) | Free |
Community & launches | Reddit threads and subreddits, Hacker News launches and points, Product Hunt | HN free; rest Scrape Creators |
Funnel & monetization | Positioning, CTAs, pricing model, free plan/trial, per-seat/usage, sales-led signals, affiliate program and commission, social proof | Free |
Apps | App Store ratings (download proxy), release age, update cadence, Play installs | Free |
Positioning history | Homepage title/H1/CTAs over time from the Wayback Machine: pivots and repositioning | Free |
Use it from your agent (MCP)
REM is an MCP server, so Claude Code, Codex, Cursor, or any MCP client can run it. With MCP you don't need an Anthropic key: your agent writes the report itself.
# Claude Code
claude mcp add reverse-engineer-marketing -e SCRAPECREATORS_API_KEY=... -- npx -y reverse-engineer-marketing mcp
# Codex
codex mcp add reverse-engineer-marketing --env SCRAPECREATORS_API_KEY=... -- npx -y reverse-engineer-marketing mcpAny other client:
{
"mcpServers": {
"reverse-engineer-marketing": {
"command": "npx",
"args": ["-y", "reverse-engineer-marketing", "mcp"],
"env": { "SCRAPECREATORS_API_KEY": "..." }
}
}
}Then ask:
Reverse engineer the marketing of linear.app and give me a playbook I can copy.
Tool | What it does |
| Collects everything for a URL. Returns a compact scorecard + evidence index + unknowns (token-cheap) and a |
| Full data for specific evidence ids or a source (ad copy, top posts, sitemap families…) |
| The analysis method: role, evidence rules, report template, lessons, and per-channel playbooks |
| Checks the agent's report: citations resolve, sections exist, playbook grounded, no invented spend |
| Optional server-side report (needs |
Install the bundled skill to teach your agent the workflow: copy skills/reverse-engineer-marketing/ into ~/.claude/skills/ (or your agent's skills folder).
How it works
link ──► website scan ──► discovers socials, apps, people, brand
│
├─► pixels + GTM containers ├─► Meta / Google / LinkedIn ad libraries
├─► robots, sitemaps, llms.txt ├─► TikTok / IG / YouTube / X / LinkedIn
├─► Wayback history ├─► founders (LinkedIn + X)
└─► App Store / Play / HN └─► Reddit / Product Hunt
│
evidence bundle (E1…En) + unknowns
│
deterministic channel scorecard (no AI)
│
Claude / your agent + the harness ──► report.md
│
validator (citations, grounding)Evidence contract. Every item is an observation (seen at a URL or API) or a derivation (computed, e.g. posts/week). The report's interpretations must cite evidence ids and label inferences. Anything not checked is an unknown, never "they don't do it". A pixel means intent, not current spend, and dollar spend is never invented.
The harness is a versioned file bundle (harness/): analyst role, guardrails, report template, a cue → lesson library, and one playbook per channel. Every report records the harness version and SHA. Change a playbook, run npm run eval, and compare scores. Recorded evidence bundles in evals/fixtures/ let you iterate on the prompt without re-scraping.
Cost per full run: about 25–50 Scrape Creators credits plus one Claude call (default claude-opus-5, override with REM_MODEL). Scrape Creators responses are cached for 24h in ~/.cache/reverse-engineer-marketing so agents can re-run without paying twice.
Limits (honest)
TikTok and X ads have no global public library; REM reports the pixel and gives you the manual library link. Reddit's ad library was shut down.
Ad library counts come from samples (first pages); REM says "in the sample".
Founder, TikTok-handle and Product Hunt matches come from search and can be wrong; weak matches are flagged.
Server-side tracking and email tools are invisible from the browser, so they're reported as unknown.
Respect each site's terms and your local laws. REM reads public pages and public ad transparency libraries only.
Develop
git clone https://github.com/dansugc/reverse-engineer-marketing && cd reverse-engineer-marketing
npm install
npm run dev -- notion.so --no-ai # run from source
npm test # unit tests (parsers, scorecard, validator)
npm run eval # validate example reports against recorded fixtures
npm run eval -- --live # regenerate with Claude and score (costs tokens)Adding a source: write a collector in src/sources/ that adds evidence to the store (observations or derivations, never conclusions) and records unknowns with a manual-check link, then teach src/analyze/scorecard.ts what it means. See AGENTS.md.
License
MIT. Built by DansUGC.
This server cannot be deployed
Maintenance
Related MCP Connectors
Web data for marketing agents: traffic, ads, social profiles, search, and any URL as markdown.
Social media analytics, video analysis, and competitor intel for any MCP-compatible AI agent.
The Google for AI agents — company intel, competitor tracking, market research via MCP. JSON output
Your agent needs to know how big a website really is — traffic, where it comes from, who else the audience visits, what they pay for ads, and which rivals take the same demand. **What you can ask for** • "How much traffic does this domain get, and how has it trended?" • "Where does that traffic come from — search, referral, social, paid?" • "Who else does this audience visit, and where do we overlap?" • "What keywords send them traffic, and which landing pages receive it?" • "What do they spend on ads, and on which networks?" **How to use it** Point any MCP client at https://mcp.aisa.one/similarweb/mcp and sign in with OAuth — there is no key to create or paste. 23 tools: traffic snapshot, trend and engagement, ranking and top sites, marketing channels and referrals, keywords and landing pages, popular pages and subdomains, demographics, audience interest and overlap, deduplicated audience, ad networks, PPC spend, technologies, similar sites and SERP players. **Why this rather than the source** A competitor's numbers without asking them, and without a seat in an enterprise dashboard. **It is also a door to the rest** The same login reaches 26 sources and 580+ operations. Size the competitor here, then ask the same agent who links to them or who to contact there — without adding a second server. **What it costs** Finding and inspecting an operation is free. Running one is billed per call at API prices, with no seat and no monthly minimum, and every call takes max_price_usd so an agent cannot overspend by accident. **Where else it reaches** https://mcp.aisa.one/sales/mcp to turn the finding into contacts; https://mcp.aisa.one/seo/mcp for the ranking side.
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server for Tru8 Evidence Research that enables AI agents to submit claims or URLs and receive source-traced evidence organized by tier and type with element decomposition and relationship mapping.353 PyPIMIT
- AlicenseBqualityCmaintenanceMCP search and evidence tool for AI agents. Rewrites queries, zooms into source domains, and returns sourced answers with metrics.14MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to investigate public URLs through evidence-first intelligence, including crawling, entity resolution, social discovery, SEO, technology detection, monitoring, reports, and optional AI reasoning.7MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to perform company due diligence, OSINT, competitive, SEO, market, finance and regulatory research through a single MCP endpoint exposing 45 tools that draw on official public APIs, local D1 mirrors, and optional self-hosted sidecars. Every response is labelled by evidence class, so inferred estimates are never presented as equivalent to official data.6 npmMIT