Browse every competitor ad and build a Notion swipe file

See what your competitors are running on Google, Meta and LinkedIn in one screen, save the best ads to a shared Notion swipe file, and get a teardown on demand.

App
LeadMagicNotionSlack BotGeneral Input DatabaseMarketingResearch & MonitoringAI Reports
PromptCreate

Build me an internal app my growth team opens every week to see what our competitors are actually running as paid ads, all in one place. The ad data comes from LeadMagic, the swipe file lives in Notion, and teardown takeaways go to Slack. Store the app's own state in the General Input Database: the competitor list, a per-user last visited timestamp for each competitor, the team's tag list, and the full history of every ad creative we have ever seen. Nothing runs on a schedule here, so refreshing a competitor is a manual action I take from the app.

The home screen is my list of competitor companies, which I maintain by company domain. I can add and remove competitors inline. Each row shows the competitor name, the domain, how many live creatives we are currently tracking across all three platforms, how many are new since my last visit, how many went retired since the last refresh, and when the app last pulled their ads. There is a refresh action per row and one for the whole list. Clicking a competitor opens their detail page.

The competitor detail page shows their live creatives across three tabs. The Google tab uses the LeadMagic Google Ads Search operation for Google search ads. The Meta tab uses LeadMagic Meta Ads Search for Facebook and Instagram ads. The LinkedIn tab uses LeadMagic B2B Ads Search. Render creatives as cards showing the headline, the body copy, any image or thumbnail, the ad format, and the first seen and last seen dates. On the LinkedIn tab let me expand a card to pull full creative details, targeting and impression metrics using LeadMagic B2B Ad Details. Each tab shows its own count, and an empty tab should say plainly that no live ads were found for this competitor on this platform rather than looking broken.

Above the tabs give me filters for platform, a first seen date range, and a toggle for what is new since my last visit. Record a last visited timestamp per user per competitor when they open the page, and compute the new badge against the value from before this visit so the highlight survives until they actually come back again. Whenever the app refreshes a competitor, diff what came back against the stored snapshot: creatives we have never seen get a first seen date of now, creatives still present keep their existing record and get their last seen date bumped, and creatives that have disappeared get marked retired with a retired date. Never delete an ad record. Show retired creatives dimmed with a Retired badge and the number of days the creative ran between first seen and retired, and let me filter them in or out. The run length is the whole reason we keep them, because a creative that ran for four months is a stronger signal than one that ran for a week.

Add a compare view where I pick two competitors and see their creatives side by side in two columns, with the same platform and date filters applied to both columns at once, so I can read their hooks, offers and formats directly against each other.

Every creative card has a Save to swipe file button. Saving writes a page into my Notion swipe database using the Notion Create a Page operation, carrying the headline, the body copy, the platform, the competitor name and domain, the ad's first seen date, a link back to the original ad, and whatever tags I pick. Let me choose tags from the team's list and add a new tag inline. Show a clear saved state on cards already in the swipe file so nobody saves the same ad twice, and let me open the Notion page from the card.

A Saved ads view reads the swipe file back using the Notion Query a Database operation, filterable by tag, platform and competitor, and lets me re-tag a saved ad or edit its notes in place using the Notion Update a Page operation. Treat Notion as the source of truth for saved ads; this view is a convenience layer over it, not a second copy.

Each competitor page has a Run teardown button that kicks off a background agent. The agent reads that competitor's current creatives across all three platforms using Google Ads Search, Meta Ads Search and B2B Ads Search, pulls everything we previously saved for that competitor out of the Notion swipe database using Query a Database, and compares the two to see what is new, what persisted and what went retired. It then writes a positioning teardown covering the hooks they lead with, the offers they are pushing, the audiences they appear to be testing, and what has shifted since the last teardown. It files that teardown as a Notion page using Create a Page, then posts the three key takeaways plus a link to the page into our growth channel using the Slack Bot Send a Message operation. Show the run status in the app while it works, and list past teardowns on the competitor page with their dates and links to the Notion pages, so the app is where I go to find them.

Two nuances matter. First, the swipe file has to stay usable by a marketer who never opens this app at all, so give every Notion page a clean readable title and well named properties, and keep the database structure sensible enough to browse, filter and sort natively in Notion. Second, LeadMagic charges credits only when ads are actually found and reports the remaining balance on every response, so show the current credit balance in the app header, refresh it after each pull, and warn me before a full refresh of every competitor at once. Let me set the Notion swipe database, the Notion destination for teardown pages, and the Slack channel once on a settings screen.

What does this prompt do?

  • Keep a list of competitor company domains and open any one to see their live Google search ads, Facebook and Instagram ads, and LinkedIn ads across three tabs.
  • Filter by platform and first seen date, show only what is new since your last visit, and put two competitors side by side to read their hooks against each other.
  • Save any ad to a shared swipe file in Notion with the headline, body copy, platform, competitor and your own tags, then browse and re-tag saved ads later.
  • Hit Run teardown and an assistant compares their current ads against everything you have saved, writes a positioning teardown into Notion, and posts the key takeaways to Slack.

What do I need to use this?

  • A LeadMagic account, which is what pulls the ad creatives from all three ad libraries
  • A Notion workspace with a database you want to use as the swipe file, shared with the app
  • A Slack workspace and the channel where your growth team should get teardown takeaways
  • The company domains of the competitors you want to track

How can I customize it?

  • Change the tag list your team picks from when saving an ad to the swipe file
  • Pick which Slack channel teardown takeaways land in and how many takeaways get posted
  • Set how far back the first seen date filter reaches, and whether retired ads show by default

FAQs

What happens to an ad when my competitor stops running it?
It gets marked retired with the date it disappeared, not deleted. That way you keep the full history and can see how long each creative actually ran, which is usually the best signal for which ones were working.
Can my team use the swipe file without opening the app?
Yes, and that is the point. The swipe file is a normal Notion database with readable titles and properties, so a marketer can browse, filter and sort it in Notion without ever touching the app.
Does this work if a competitor only advertises on one platform?
Yes. Each tab shows whatever exists for that competitor, and empty tabs simply say there are no live ads found. Knowing a competitor has gone quiet on a channel is itself useful.
How much does pulling competitor ads cost?
LeadMagic works on credits and only charges when ads are actually found, so a search that returns nothing is free. The app shows your remaining balance in the header and refreshes it after each pull.
Do I need to be technical to run a teardown?
No. It is a button on the competitor page. The teardown runs in the background and the finished write-up appears as a Notion page linked from the app, with the three key takeaways posted to your Slack channel.

Related templates

A brand asset library your marketing team actually searches

Every logo, photo, video cut and ad export in one searchable grid, with previews, campaign tags and rights expiry dates at a glance.

General Input Storage
General Input Database
JigsawStack
+1
App
Turn Mailjet email clicks into ranked HubSpot follow-ups

Twice a day we spot the people clicking your pricing and demo pages, create a follow-up task for their owner, and post a ranked recap to Slack.

Mailjet
HubSpot
Slack Bot
Agentic Task
Clean out the Looker dashboards and Looks nobody opens

One board showing every dashboard and Look with its folder, owner and favorite count, so you can find dead content and retire it safely.

Looker
Slack Bot
App
LiveKit live operations console for room moderation

Watch every live room on one screen, remove disruptive guests, start recordings and end stuck sessions without anyone opening a terminal.

LiveKit
Slack Bot
General Input Database
App
Wake up dormant Keap leads with a researched reason

Every Monday we find leads who never bought, research a real reason to reach out, and send a short personal email instead of another check in.

Keap
Slack Bot
Agentic Task
Chat quality review board for LiveChat support leads

Score last week's finished live chats against one rubric, let an AI grader draft the notes with quotes, and send coaching straight to the agent.

LiveChat
Slack
General Input Database
App

Stop digging through three ad libraries every week.

Give your growth team one screen for competitor creative, and a swipe file that keeps working even for the people who never open the app.