Daily SEO keyword rank tracker with Slack drop alerts

By General Input

Every weekday morning, check where your keywords rank on Google, log them to a sheet, and get a Slack ping the moment anything slips out of the top 10.

Integrations

  • Bright Data
  • Google Sheets
  • Slack

Type

Deterministic Code

Categories

  • Marketing
  • Operations

Build me a daily SEO keyword rank tracker as a code workflow. Keep it deterministic with no LLM step.

Trigger: cron schedule, every weekday at 7am in my local timezone.

Inputs: a Google Sheets spreadsheet that has a tab called 'keywords' with columns keyword, target_domain, country. Use Google Sheets Get Values to read all rows on that tab.

For each row, call Bright Data's SERP Search operation against Google in the row's country locale. Parse the organic results and find the highest-ranking URL whose host matches the target_domain (including subdomains). Capture the rank position (1 to 100), the landing URL, and the total number of organic results scanned.

Append the result to a 'rank_history' tab on the same spreadsheet using Google Sheets Append Values. Columns: date (today's date in YYYY-MM-DD), keyword, rank (an integer 1 to 100, or the literal string 'not in top 100' if the domain wasn't found), landing_url (empty if not found), total_results_scanned.

After every keyword has been written, read yesterday's snapshot from the same rank_history tab (filter rows where date equals yesterday). For each keyword, diff yesterday's rank against today's. Flag a keyword as a regression if either: the numeric rank dropped by 3 or more positions, OR it was in the top 10 yesterday (rank 1 to 10) and is now rank 11+ or 'not in top 100'.

If at least one keyword regressed, send a single batched Slack message via Send a Message to a Slack channel the user will configure (e.g. #seo). The message should have a short header like 'SEO rank drops for {date}' and then one line per regression with: keyword, old rank, new rank, landing URL. Use Slack mrkdwn formatting (single asterisks for bold). If no keywords regressed, skip the Slack step entirely.

Integrations: Bright Data (SERP Search), Google Sheets (Get Values, Append Values), Slack (Send a Message). The value is a clean rank history log plus a same-day alert when something slips, so the SEO team can react before competitors widen the gap.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentLocal listing health board for every location you manageWin back LiveChat visitors whose chats went unansweredLet support send one-off Loops emails without an engineerStop cold emails to anyone with a live deal in PipedriveiMessage campaign console with pre-flight checks and delivery boardChat quality review board for LiveChat support leadsLinkedIn Ads budget pacing dashboard for every client accountFront desk appointment confirmation board for the next 3 daysGive your team Looker numbers without buying more seats