How dansugc/reverse-engineer-marketing works
REM reverse-engineers a company’s marketing from a website or app-store link, producing an evidence-backed marketing report and playbook. The main workflow parses the target, gathers public and optional paid-source evidence, analyzes channel strength, then renders a deterministic report or synthesizes one with an AI writer. The web app, CLI, MCP server, and run-diff capability expose that workflow in different ways. Collector coverage is summarized by source modules; several capabilities are documented in the README but their implementation details were not sampled, so their internal call paths are not asserted.
Main entry points: index.ts Collection orchestrator · server.ts Web app · cli.ts CLI · website.ts Website and funnel
Components 27
User interfaces
- CLI
src/cli.ts - Web app
src/web/server.ts - MCP server
src/mcp.ts
Evidence collection
- Collection orchestrator
src/index.ts - Website and funnel
src/sources/website.ts - HTML analysis
src/sources/html.ts - Paid ads
src/sources/paid.ts - Apple ads
src/sources/apple-ads.ts - Organic social
src/sources/social.ts - SEO and GEO
src/sources/seo.ts - Founders
src/sources/people.ts - Community
src/sources/reddit.ts - Apps and history
src/sources/free.ts - Tracking stack
src/sources/tracking.ts
Analysis and reporting
- Channel scorecard
src/analyze/scorecard.ts - Report synthesis
src/analyze/synthesize.ts - Markdown report
src/report/markdown.ts - Report validation
src/report/validate.ts - Run comparison
src/report/diff.ts
Shared runtime
- Target parsing
src/target.ts - Evidence store
src/evidence.ts - Saved runs
src/runs.ts - Report guidance
src/harness.ts - Safe HTTP and cache
src/http.ts
Other components
- Analyst
- Scrape Creators
- Anthropic API
Connections 29
- Analyst → CLI: runs
README.md - Analyst → Web app: submits link
README.md - Analyst → MCP server: invokes tools
README.md - CLI → Collection orchestrator: collects evidence
src/cli.ts - Web app → Collection orchestrator: collects evidence
src/web/server.ts - Collection orchestrator → Target parsing: parses input
src/index.ts - Collection orchestrator → Website and funnel: collects website
src/index.ts - Collection orchestrator → Paid ads: collects ads
src/index.ts - Collection orchestrator → Apple ads: collects ads
src/index.ts - Collection orchestrator → Organic social: collects accounts
src/index.ts - Collection orchestrator → SEO and GEO: collects search
src/index.ts - Collection orchestrator → Founders: collects founders
src/index.ts - Collection orchestrator → Community: collects community
src/index.ts - Collection orchestrator → Apps and history: collects app data
src/index.ts - Website and funnel → HTML analysis: parses pages
src/sources/website.ts - Website and funnel → Tracking stack: detects pixels
src/sources/website.ts - Collection orchestrator → Evidence store: builds bundle
src/index.ts - Collection orchestrator → Channel scorecard: scores channels
src/index.ts - CLI → Markdown report: renders report
src/cli.ts - Web app → Markdown report: renders report
src/web/server.ts - Web app → Report synthesis: writes report
src/web/server.ts - Report synthesis → Report guidance: loads guidance
src/analyze/synthesize.ts - Report synthesis → Anthropic API: requests report
src/analyze/synthesize.ts - Web app → Report validation: validates report
src/web/server.ts - Web app → Saved runs: saves and loads
src/web/server.ts - CLI → Run comparison: compares runs
src/cli.ts - Run comparison → Markdown report: uses channel labels
src/report/diff.ts - Paid ads → Scrape Creators: requests ad data
- Collection orchestrator → Safe HTTP and cache: uses network helpers