Weekly Competitor Ad Tracker: Seeking Feedback on Structure and Logic
Hey Clay team! 👋🏻 I’m working on building a weekly competitor ad tracker using Clay + Apify and would love some feedback to make sure I’m heading in the right direction (and unblock myself at the current step). What I’m trying to build:
Input: competitor website domains
Clay runs an Apify Facebook Ads Library Scraper
Scrapes all active ads from the last 7 days
Outputs a clean table with:
Ad Text, CTA, Media, and Landing Page
Refreshes weekly
Eventually: sends me a Slack/email alert when a new ad (not seen last week) is detected
What’s working:
I’ve got clay table + Apify integrated and it’s returning results 🎉 (see shared table)
Each row has a Results array with ~10 ads, and each ad includes exactly what I need (ad body, CTA, image URL, etc.)
Where I’m stuck: I want each ad from the array to appear as its own row, and then extract:
snapshot.body.text → Ad Text
images.imageUrl → Media
cta → CTA
and so on...
Basically, I want to flatten that array and turn it into a structured Clay table where each ad is a row, and each parameter is in a column. What I’ll do next: Once I’ve got that structure:
I’ll add a GPT block to summarize the ad’s hook, tone, offer, and funnel stage
And later build logic to compare this week’s ads to last week’s and flag anything new
Any tips on how to best handle the “array to rows” part and extract nested fields like snapshot.body.text into columns? Would really appreciate any ideas or suggestions! Thanks in advance 🙏🏼