The problem this solves
E-commerce prospecting has a deceptively simple qualifier: is the store spending money on ads? A merchant on Shopify with active paid campaigns has revenue, a growth budget, and a measurable appetite for tools that improve return on that spend. A merchant with no ad activity is often a hobby store. The two look identical in a directory, and telling them apart by hand means checking an ad library for every single domain on the list.
The manual workflow is a browser-tab marathon: a store-technology lookup in one tab, an ad library search in another, a traffic estimator in a third, and a spreadsheet where the results get retyped with all the transcription errors that implies. Checking 75 stores this way is several hours of clerical work, which is why it happens once for a campaign launch and never again, while the underlying market shifts monthly.
Teams that run this motion well keep a single living prospects sheet that everyone works from. The job is appending clean, consistent rows to that sheet on a cadence, and it is exactly the kind of repetitive, multi-source job that stays undone when it belongs to a human. Give it to an agent and the sheet stays current without anyone spending a Friday on lookups.
How the mission runs
- Find the Shopify base with Technographics. The agent uses Technographics to identify e-commerce companies with Shopify detected as the storefront platform, filtered to genuine merchant sites rather than agencies and theme demos. This forms the candidate pool before any spend qualification happens, kept deliberately broad because the ad-activity filter in the next step does the narrowing.
- Confirm live ad activity in the Ad Libraries. Each candidate is checked against the Ad Libraries for currently active Meta campaigns. Stores with no active ads drop out; stores with sustained, multi-creative campaigns rank higher, since sustained spend implies the ads are paying back and the merchant is operating with real budget.
- Attach traffic estimates. For the stores that survive, the agent pulls monthly traffic estimates, giving each row a size dimension: a store spending on ads with six-figure monthly visits is a different conversation from one just starting out, and your outreach can be tiered accordingly.
- Normalize the rows. Results are shaped into consistent columns - domain, ad activity summary, traffic estimate - with uniform formats and no free-text mess, so the sheet stays sortable and filterable as batch after batch lands over the following months. Consistency is what turns a sheet into a database.
- Append to your Prospects sheet. The agent appends the 75 rows to your named Google Sheet, below existing data and matching its column order, with a run date stamped on the batch. A CSV copy of the batch is kept as the portable artifact, and previously appended domains are skipped so re-runs never double-list a store.
The prompt
This is the exact objective the agent receives. Swap the obvious placeholders for your own domain, segment or channel and run it as-is from the console, Slack, or the API.
What comes back
Seventy-five Shopify stores with verified active Meta ad campaigns, each with an ad-activity summary and a monthly traffic estimate, appended as clean rows to your 'Prospects' Google Sheet. The batch is date-stamped and deduplicated against what the sheet already holds, so successive runs grow one living prospect database instead of a pile of one-off exports.
Make it yours
- Add a traffic floor - only stores above a monthly-visits threshold - to keep the sheet focused on merchants big enough for your price point.
- Filter to a vertical by keyword in the store's positioning: apparel, supplements, home goods, whatever your case studies speak to.
- Run monthly and have the agent post just the count of new qualifying stores to Slack as a lightweight market pulse.
Frequently asked questions
How reliable is the ad-activity check?
Active status comes straight from the Ad Libraries at run time, so a store marked active genuinely had live Meta campaigns when the mission ran. Ad activity fluctuates, which is exactly why an automated re-check on a cadence beats a one-time manual audit that starts aging immediately.
How accurate are the traffic estimates?
They are modeled estimates, best treated as a tiering signal rather than a precise count. They reliably separate a large store from a small one, which is what outreach prioritization actually needs. The mission labels them as estimates in the sheet so nobody mistakes them for analytics.
Can it write to the sheet without wrecking my existing formatting?
The agent appends below your existing rows following the established column order, touching nothing above. Because previously delivered domains are tracked and skipped, you can re-run freely; the worst case of a repeated run is an empty batch, never a duplicated one.