If you’re new, welcome! If you’re a regular, thanks for being here as we navigate this AI shift in eCommerce. I share what I’m testing and what’s actually moving the needle. Where’s the vault you ask? Every previous edition is saved here.
In this edition (shortcuts):
I Canceled Keepa. Here's What I Built Instead.
I've been paying for Keepa for a while now. €19 a month. About $21 USD. It's a great tool. Price history, BSR tracking, alerts, the whole deal.
But here's the thing. I wasn't using 90% of it. What I actually needed was simple: check a list of competitor ASINs every day, grab the current price and title, and log the running list to a spreadsheet so I can spot changes.
That's a $21/month problem. And I solved it in 20 minutes with Claude Code. No coding. No subscription. Just a script that runs every morning at 9am, opens each Amazon product page in a headless browser, pulls the price and product title, and drops the results straight into a Google Sheet.
$250 a year back in my pocket. But honestly, the money isn't the point. The point is I own this now. I can customize it, extend it, add BSR tracking later, share it with my team without paying per seat. It does exactly what I need and nothing I don't.
Here's exactly how I built it, step by step, so you can build yours today.
What You're Building
A daily automated task that does three things:
🔶 Opens each Amazon product page in a headless browser (so you don't even see it happen)
🔶 Extracts the product title and current price
🔶 Logs everything to a Google Sheet with today's date

It runs on autopilot. Every morning. No clicking, no copying, no pasting.
The whole setup takes about 30 minutes. You'll need three free tools and a Mac (sorry Windows friends, I'll cover you in a future issue). But the best thing is that you can simply paste my entire post into Claude Code and ask IT to do the setup for you.
The Three Tools You Need
Here's your toolkit. All free.
Tool | What It Does | Where to Get It |
|---|---|---|
Claude Code | Orchestrates the entire workflow | |
Playwright Plugin | Headless browser that visits Amazon pages | Installed via Claude Code (see Step 1) |
gws CLI | Reads and writes Google Sheets from your terminal |
A quick note on gws. It stands for Google Workspace CLI. It's an official Google tool that lets you talk to Google Sheets, Docs, Drive, Gmail, and more from your terminal. Think of it as a remote control for your Google account. You'll also need the Google Cloud SDK (gcloud) for authentication. Grab it at cloud.google.com/sdk.
Once you've downloaded Claude Code, gws, and gcloud, run these two commands in your terminal to log in:
gcloud auth login
gws auth login
Both will open a browser window where you sign in with your Google account. Do it once and you're set.
Step 1: Enable the Playwright Plugin
Open your terminal and run this:
claude mcp add playwright npx @playwright/mcp@latest
That's it. One line. This tells Claude Code to use Playwright as its browser engine.
To verify it worked, open Claude Code and type:
Open https://www.amazon.com using Playwright and take a screenshot
You should see a screenshot of the Amazon homepage appear. If you do, you're good.
Pro Tip: You'll need Node.js 18 or higher installed for Playwright to work. Run node --version in your terminal to check. If you're on an older version, grab the latest from nodejs.org.
[IMAGE: Screenshot of Claude Code showing the Playwright verification step with Amazon homepage screenshot]
Step 2: Set Up Your Google Sheet
Create a new Google Sheet (or use an existing one). Add these headers in Row 1:
A | B | C | D |
|---|---|---|---|
Date | ASIN | Product | Price |
Now grab the spreadsheet ID from your URL. It's the long string between /d/and /edit:
https://docs.google.com/spreadsheets/d/THIS_PART_RIGHT_HERE/edit
Copy that ID. You'll need it in a minute.
To make sure gws can see your sheet, run this in your terminal (replace the ID with yours):
gws sheets spreadsheets get --params '{"spreadsheetId": "YOUR_SPREADSHEET_ID"}' --format json
If you see sheet details come back, you're connected.
[IMAGE: Screenshot of Google Sheet with headers set up and the spreadsheet ID highlighted in the URL bar]
Step 3: Create the Script
This is where it gets fun. You're going to create a small script that tells Claude Code exactly what to do each morning.
Open your terminal and run these commands one at a time.
Create a folder for your scripts:
mkdir -p ~/Scripts
Now create the script file. This is a longer command, so I'll walk you through it:
cat > ~/Scripts/amazon-price-tracker.sh << 'SCRIPT_END'
#!/bin/bash
LOGFILE="$HOME/Scripts/amazon-price-tracker.log"
echo "$(date): Starting Amazon price tracker" >> "$LOGFILE"
PROMPT='You are an automated Amazon price scraper. Do the following steps exactly:
SHEET_ID: YOUR_SPREADSHEET_ID
ASINs: ASIN1, ASIN2, ASIN3
STEP 1 - Check for duplicates:
Run: gws sheets spreadsheets values get --params "{\"spreadsheetId\": \"YOUR_SPREADSHEET_ID\", \"range\": \"Sheet1!A:B\"}" --format json
Build a list of "date|ASIN" pairs already in the sheet. Skip any ASIN that already has an entry for today.
STEP 2 - Scrape prices:
For each non-duplicate ASIN, use Playwright MCP:
- Navigate to https://www.amazon.com/dp/{ASIN}
- Extract title and price using browser_evaluate with this function:
() => { const pw = document.querySelector(".a-price .a-price-whole"); const pf = document.querySelector(".a-price .a-price-fraction"); const t = document.querySelector("#productTitle"); return JSON.stringify({ title: t ? t.textContent.trim() : "N/A", price: pw ? "$" + pw.textContent + (pf ? pf.textContent : "") : "Not found" }); }
STEP 3 - Write to Google Sheet:
Append results using gws CLI. Use today date as a text string in YYYY-MM-DD format (wrap in single quotes so Sheets does not convert it). Keep $ in prices.
Use amazon.com only (not .in or other locales).
Do not ask questions. Execute silently and report a summary.'
claude --print --allowedTools "mcp__plugin_playwright_playwright__browser_navigate,mcp__plugin_playwright_playwright__browser_evaluate,mcp__plugin_playwright_playwright__browser_snapshot,Bash,Read" -p "$PROMPT" >> "$LOGFILE" 2>&1
echo "$(date): Finished" >> "$LOGFILE"
SCRIPT_END
Before you move on, open the script in any text editor and replace:
🔶 YOUR_SPREADSHEET_ID (it appears twice) with your actual Google Sheet ID 🔶 ASIN1, ASIN2, ASIN3with your comma-separated list of ASINs
Then make it executable:
chmod +x ~/Scripts/amazon-price-tracker.sh
Step 4: Test It
Run the script manually first:
bash ~/Scripts/amazon-price-tracker.sh
This takes 5 to 10 minutes depending on how many ASINs you're tracking. Claude Code will launch in the background, open each Amazon page with Playwright, extract the data, and write it to your Google Sheet.
When it's done, check the log:
cat ~/Scripts/amazon-price-tracker.log
Then open your Google Sheet. You should see today's prices.
[IMAGE: Screenshot of Google Sheet populated with real price data from the first test run]
If everything looks good, you're ready to automate it.
Step 5: Schedule It to Run Every Morning
This part uses a Mac feature called launchd. It's like a built-in alarm clock for scripts.
First, find your Mac username by running whoami in Terminal. Then paste this command, replacing YOUR_USERNAME with what you got:
cat > ~/Library/LaunchAgents/com.pricetracker.plist << 'PLIST_END'
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.pricetracker</string>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>/Users/YOUR_USERNAME/Scripts/amazon-price-tracker.sh</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>9</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
<key>StandardErrorPath</key>
<string>/Users/YOUR_USERNAME/Scripts/amazon-price-tracker-error.log</string>
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/usr/local/bin:/usr/bin:/bin:/Users/YOUR_USERNAME/.local/bin</string>
</dict>
</dict>
</plist>
PLIST_END
Activate the schedule:
launchctl load ~/Library/LaunchAgents/com.pricetracker.plist
Verify it's running:
launchctl list | grep pricetracker
You should see a line with com.pricetracker. That means you're live.
You're Done. Here's What Happens Now.
Every morning at 900 AM, your Mac will automatically
🔶 Launch Claude Code in headless mode (no window, no interruption)
🔶 Open each Amazon product page in an invisible browser
🔶 Extract the product title and current price
🔶 Skip any ASINs already scraped today (smart duplicate checking)
🔶 Append the results to your Google Sheet
You don't touch anything. You don't click anything. You open your laptop, check your Sheet, and see exactly what your competitors are charging. Every single day.

Quick Reference: Managing Your Tracker
What You Want | What to Paste in Terminal |
|---|---|
Run it right now |
|
Check the log |
|
Pause the schedule |
|
Resume the schedule |
|
Change ASINs | Open |
A Few Things to Know
🔶 Your Mac needs to be on at 9am. If it's asleep, the task runs when it wakes up. If it was off, you'll need to run it manually that day.
🔶 Auth can expire. If gws stops working, run gws auth login again. Takes 30 seconds.
🔶 The duplicate check is smart. If you run the script twice in one day (or a teammate runs it too), it won't create duplicate entries. It checks what's already in the sheet before writing.
🔶 This tracks amazon.com prices. If you sell on other locales (.co.uk, .de, .co.jp), change the URL in the script from amazon.comto your marketplace.
The Bigger Picture
Here's what I keep coming back to.
Keepa is a good product. I'm not trashing it. But I was paying $21 a month for a fraction of what it offers, because that fraction was all I needed. And I built that fraction in 30 minutes with free tools.
That's the real lesson here. It's not about replacing Keepa specifically. It's about recognizing when you're renting a Swiss Army knife to open one bottle. Claude Code, Playwright, and gws are the bottle opener. Free. Yours. Customizable.
This is what I mean when I talk about the "Own, Don't Rent" mindset. The tools are here. The access is here. The gap is just knowing how to wire them together.
And that gap? It's closing fast.
What competitor data are you tracking manually right now? Hit reply and tell me. I bet there's an automation hiding in your workflow.
Know someone still paying for a price tracker? Forward this to them. They'll thank you.
~Ritu
PPPC Ninja is helping brands future proof their listings for AI. We'll audit your listings for RUFUS readiness, build stunning AI images and videos, and scale your content across Amazon ads, posts, and social media. Learn more about our RUFUS Audit or hit reply to chat with us. https://www.ppcninja.com/rufus-audit.html
/

Want to learn how you can access INSANE amounts of free data from TikTok? You need to check out TikTok Creative Center.
Now, you don’t need to be advertising or promoting any products at all on TikTok to use this free platform. Just go here, login with a Google or TikTok account and instantly get access to all kinds of data related to Top Ads, Keywords, Top Products, Trends and a lot more.

To access trending hashtags, click on Trends in the menu bar.
TikTok categorizes trends based on their “Speeds of Culture” into three buckets:
Trend Moments: Creative prompts that quickly gain traction and buzz through high participation
Trend Signals: An emerging user behavior or interest revealed through new content patterns
Trend Forces: Enduring, large-scale behavioral transformations

If you want to view the Top Ads on TikTok go to their latest platform called TikTok One. Here you can watch all their top videos, access


To access specific trends, choose a category, such as Beauty & Personal care and pick your time window (7d, 30d, 120d). You can now see the top trending hashtags, the trend line, the top creators, and detailed analytics for each where you can analyze the actual videos themselves.

Even if you don’t advertise on TikTok, this is a great resource for learning what keywords are popular in Trend Moments (7d), Trend Signals (30d) or Trend Forces (120d) buckets.
To make things super easy, this platform comes with “Symphony Assistant”, an AI chatbot that can give you all the answers you seek quickly:

I asked: “Give me trend signals and keyword insights related to foundation”, and this is what it returned:

Since we know that Amazon is also combing the internet for signals and connecting the dots, the BIGGEST use case of this data is to include viral keywords coming from TikTok in your product’s listing or backend, as appropriate.
Given that RUFUS, Amazon’s shopping assistant is scraping your listing to get a good idea of it’s use cases for different personas, you might want to proactively insert viral keywords and use cases into your listing so that RUFUS can lead potential shoppers to your product detail page.

Claude Code Just Got Autopilot - Say Hello to Routines 🤓
You guys know I love a good automation that runs without me. Well, Anthropic dropped a quiet but big one this week. On April 14, 2026 they launched a research preview of Claude Code Routines. Think of it as scheduled tasks on steroids, except the tasks run in the cloud, not on your laptop.
If you ever typed /schedule in Claude Code before, that feature just grew up.

What's Actually New
A Routine is a saved Claude Code config: a prompt, a repo, and a set of connectors, packaged once and run automatically. Three ways to kick one off:
🔶 On a schedule. Hourly, nightly, weekly. Cron style, friendly UI
🔶 By API. Every routine gets its own endpoint and auth token. POST a message, get back a session URL
🔶 By webhook or GitHub event. React to a PR open, a push, a new issue, or any external signal
The biggest shift? Routines run on Anthropic's cloud infrastructure, not your machine. Close your laptop at 6pm. Your 9am Monday routine still runs.
There's a "local routines" option too (you may have seen the "Local routines only run while your computer is awake" note in the UI). But the headline feature is cloud, and that's where the real power lives.
The Fine Print
🔶 Pro plan: 5 routines per day
🔶 Max plan: 15 routines per day
🔶 Team/Enterprise: 25 routines per day
🔶 Available today in research preview at claude.ai/code or via /schedule in the CLI
Use Cases Worth Stealing
For sellers:
🔶 Weekly PPC health check. Every Monday 9am, Claude pulls your top campaigns, flags spikes or drops, emails you a summary
🔶 Daily competitor price log. Every morning, scrape your tracked ASINs, log to Google Sheets (see the main feature if you haven't yet)
🔶 Review drop alert. Webhook fires when a 1 star review lands, Claude reads it, drafts a response
For content creators:
🔶 Newsletter idea pipeline. Sunday night, scrape your favorite AI newsletters, de duplicate, drop 10 topic ideas in a Google Doc
🔶 LinkedIn queue from Git. Push a new blog post to a repo, a GitHub event triggers a Routine that generates 3 LinkedIn posts in your voice
For operations:
🔶 SOP from screen recording. Save a screen recording to a watched folder, a local Routine picks it up, extracts the steps, writes a Google Doc and a reusable skill file
Why This Matters More Than It Looks
Claude used to need you. You opened it, you typed, you waited. Routines flips that. Claude sits quietly in the cloud, watching for signals, acting on its own. That's the move from assistant to agent.
And Anthropic is capping it at 5 to 25 runs per day for now because they know the second this gets unlimited, people will build actual companies on top of it. Fair.
What's the one recurring task you'd hand to a Routine tomorrow? Hit reply and tell me. I'm collecting favorites for a walkthrough issue.

Should You Really Be Pasting Screenshots Into Claude? 🤓
Here's a habit most of us picked up without thinking. Something goes wrong. Something looks weird. We hit ⌘+Shift+4, drag a box, and paste the screenshot into Claude.
Quick. Easy. And way more expensive than you realize.
The Screenshot Tax
Anthropic has a published formula for how images are priced. It's this:
tokens = (width × height) / 750That means a plain full screen grab on a standard 1920×1080 monitor costs you about 2,765 tokens. A Retina or 4K screenshot? Closer to 5,000 to 10,000 tokens. An iPhone screenshot is around 1,850 tokens.
For context, 2,765 tokens is roughly 10,000 characters of plain text. That's about 15 pages of documentation. For one screenshot of one browser window.
The Text Alternative
Here's the gap. If the thing you're pasting is mostly words (an error log, a terminal output, a product description, a spreadsheet row), copying the actual text instead of the image can cut your token cost by 10x or more.
🔶 A 200 word paragraph pasted as text: ~267 tokens 🔶 The same paragraph as a screenshot: 2,000 to 5,000 tokens
Same information. Tenth of the cost. Often a better answer too, because Claude doesn't have to OCR anything.
The Playwright Back Door
If you're using Playwright (like in the tracker above), there's a third option most people miss: browser_snapshot. It skips the image entirely and returns a structured text tree of the page. For data tasks (prices, titles, specs, reviews), it's dramatically cheaper than a screenshot and more accurate than OCR.
When Screenshots Actually Win
Screenshots aren't evil. They're just overused. Paste an image when the visual itself is the information:
🔶 A layout bug or weird spacing issue 🔶 A chart, graph, or hand drawn sketch 🔶 A design you want critiqued 🔶 Handwriting you need transcribed
Paste text (or use browser_snapshot) for everything else.
The tokens you save today are the tokens you get to spend tomorrow. Quiet advantage.

News worth following 📡 ⚡ 🌐 📰
🔶 Anthropic Passes OpenAI in Revenue for the First Time
🔶 Amazon CEO Jassy Defends $200B AI Spend: "We're Not Going to Be Conservative"
🔶 Shopify AI Toolkit Lets Claude Code Run Your Entire Store 🔶 Amazon's "Buy For Me" AI Agent Shops Other Websites Without Leaving the App
🔶 OpenAI, Anthropic, and Google Unite Against Chinese AI Model Theft
🔶 Google Gemini Now Generates Interactive Visualizations in Chat
We hope you liked this edition of the AI for E-Commerce Newsletter! Hit reply and let us know what you think! Thank you for being a subscriber! Know anyone who might be interested to receive this newsletter? Share it with them and they will thank you for it! 😃 Ritu

