You have the data.
Here’s where it can go.

Set up a weekly research sheet, ask Claude for a brief, build a dashboard, or load the records into your warehouse.

Google Sheets

Keep the research in a shared sheet.

Schedule a scraper and append its records to Google Sheets. Your team can review new ads or other changes in one place.

01Apify schedule
02Make or n8n
03Google Sheets

Sheets works well for a small team. A warehouse is usually a better home for a larger history or nested records.

  1. Start with a small watchlist

    Choose one scraper, a small record limit and a fixed list of brands, searches or companies. Review the first dataset before scheduling it.

  2. Send successful runs to Sheets

    Use Make's Apify modules or n8n to watch for a successful run, fetch its dataset items and append the fields you need to Google Sheets. You can also start with a manual CSV import.

  3. Keep the run history

    Add collected_at and run_id. Remove duplicates using the source ID within each snapshot. Flatten the fields you need and save the raw JSON elsewhere.

  4. Leave room for your notes

    Add columns for message themes, campaign ideas and what to do next. Use filters or a pivot table when you review the sheet each week.

Example columns: collected_at · advertiser · source_id · creative_url · message_theme · reviewer_notes
Apify's Make integration guide
Claude + MCP

Get a brief with sources you can check.

Connect Claude to the Apify MCP server. Ask it to run a scraper for a specific question, then summarize the results with links to the records.

01Claude
02Apify MCP server
03JMLP scraper

Your Apify account and the Actor's current pricing determine the usage charges. The Claude connectors you can use depend on your client and account.

  1. Connect Claude to Apify

    In Claude Desktop, add the Apify connector or a custom connector using https://mcp.apify.com. Sign in to your Apify account when prompted.

  2. Name the scraper and set a limit

    Give Claude the JMLP Actor name and ask it to check the input schema. Specify the targets and markets, along with a small result limit.

  3. Ask for sources with the summary

    Request original links or record IDs. Ask Claude to separate observations from hypotheses and point out missing fields or gaps in coverage.

  4. Check the records before using the brief

    Review the results and source creatives. Ad dates and reach bands don't tell you sales, conversions or return on ad spend.

Actor-scoped server URL for Meta: https://mcp.apify.com/?tools=fetch-actor-details,jmlp/meta-ad-library-scraper
Try this research prompt
Use jmlp/meta-ad-library-scraper to collect up to 50 active ads for ZARA in GB. First check the Actor input schema. Group the creative messages by hook and offer, cite the original ad IDs, and propose three testable campaign hypotheses. Do not infer spend or conversion performance.
Apify's Claude Desktop setup guide
Looker Studio

See changes in a dashboard.

Connect a scraper's Google Sheets output to Looker Studio. Follow ad activity, search rankings or hiring patterns across repeated runs.

01Apify datasets
02Google Sheets
03Looker Studio

Keep missing fields visible. Reach bands and repeated platform observations shouldn't be added together as one audience total.

  1. Prepare the reporting table

    Start by mapping the output to Google Sheets. Decide what one row means, such as one observed creative or one search result.

  2. Connect Looker Studio

    Add the Google Sheets table as a data source. Set the date and number types, then add filters for advertiser, country or query.

  3. Choose what to follow

    Try a timeline of new creatives, search rankings over time, or job postings by role and location. Show the collection period and what the source covers.

  4. Move the history to BigQuery when needed

    For larger datasets, connect Looker Studio to modeled BigQuery tables. If you use Looker, use your team's governed BigQuery connection and LookML model.

Suggested views: creative activity timeline · organic rank history · observed hiring by company
Google's Sheets connector documentation
BigQuery + dbt

Keep a history your analysts can query.

Load scraper output into BigQuery and keep the raw snapshots. Use SQL and dbt to build tables your team can trust.

01Apify API
02BigQuery
03SQL + dbt

You'll need schedules, API credentials and loading jobs in your own stack. I can help design and build that pipeline.

  1. Save the raw run

    Fetch each successful run's dataset as JSON using the Apify API or Python client. Store the raw record with run_id, collected_at and source in a BigQuery landing table.

  2. Decide what one record represents

    The same ad seen in two countries is still one creative. Keep platform IDs and store regional observations separately where needed.

  3. Build SQL and dbt models

    Use staging models to normalize dates and field names. Add dbt uniqueness and not-null tests where the source supports them. Keep unavailable fields null.

  4. Share tables your team can use

    Publish tables for creative inventories, search visibility or account research. Verify identities before joining records to your own CRM or campaign data.

Table layers: raw.scraper_runs · staging.ad_observations · marts.latest_creatives
Example BigQuery SQL
-- Assumes a normalized BigQuery observation table.
-- Counts observed records, not audience or ad performance.
SELECT
  source,
  source_id,
  advertiser,
  collected_at
FROM `your_project.marketing.ad_observations`
QUALIFY ROW_NUMBER() OVER (
  PARTITION BY source, source_id
  ORDER BY collected_at DESC
) = 1;
Apify dataset API documentation

A company list for a specific niche.

Google Search + Website Contacts

An agency researching independent outdoor retailers could start with a set of Google searches in its target market. Check the returned domains, then send the verified shortlist to Website Contacts.

In Sheets, join the outputs on normalized domain. Keep the search query, published contact details and your notes on account fit. In BigQuery, store search observations separately from contact records so a company found by several queries isn’t counted several times.

You’ll have a company research list with sources your team can review.

Explore Website Contacts

One brand’s ads,
compared across channels.

Meta + Google + TikTok + LinkedIn

Pick one competitor and use the same research window. Collect a limited set of records from all four supported sources. Check the advertiser identity on each platform before comparing the messages.

Keep the platform IDs, dates and media links. Review the creatives before tagging hooks, offers and product angles. Claude can organize your findings and suggest tests, with the original sources attached.

The brief can compare messages across channels and show which records or fields are missing.

Explore Meta Ad Library

Let’s talk about
your project.

Tell me what you need to collect or understand. I can help with a custom scraper, a pipeline or the analysis.

Start a project