Run the work

The weekly pass over a client: what moved, what to fix, what to write, and what to tell the client.

Embed
Preview of the card
<a href="https://seolyticize.com/docs/run-the-work"><img src="https://seolyticize.com/docs/_api/public/orgs/71cb2b7a-a719-4003-b3ea-6321dc1db8ab/spaces/3bf2dbf7-3faa-473c-ba3b-30588f5f8de4/pages/82565ab3-3df1-44b5-88a9-b7f8c55cd54c/social-card.svg?v=3e7ae33eec8b" alt="Run the work" width="600" height="315"></a>

A routine an agent can run for each client every week. Start with list_clients, then for each client get_client {clientId} for its trackers and settings.

What moved

Question

Tool

How did rankings change?

get_rank_summary {clientId, trackerId}, get_rank_history {clientId, trackerId, days}

Where do the keywords sit now?

get_position_distribution {clientId, trackerId}

How does the client compare with competitors?

get_share_of_voice {clientId, trackerId}

What did searchers actually do?

get_search_console_performance {clientId, from, to} (needs Search Console)

And on the site?

get_ga4_overview {clientId} (GA4) or get_web_analytics_summary {clientId}

What fired?

list_recent_alerts {clientId, since}

What to do about it

Opportunity

Tool

Keywords just off page one

striking_distance {clientId}

Pages that rank but are not clicked

get_low_ctr_queries {clientId}

Pages losing traffic

get_content_decay {clientId}

Everything ranked by value

get_opportunities {clientId}

Technical problems

list_crawls {clientId} → list_crawl_issues {clientId, crawlId}; a fresh crawl with start_crawl

A page not indexed

inspect_url {clientId, url}, then submit_sitemap or submit_indexnow {clientId, urls}

Speed

page_vitals {url} (real visits) and page_lab {url} (paid lab run)

AI assistants not naming the client

get_ai_visibility_results {clientId}, get_ai_visibility_trend {clientId}, get_agent_readiness {clientId}

What to tell the client

  • Scheduled reports send themselves (list_report_schedules {clientId}); send_report sends one now.

  • For a written update, save_written_report {clientId, title, markdown} stores it with the client and set_report_sharing {clientId, reportId, shared: true} gives it a share link.

  • Add what you learned to the brief with update_client_brief, so the next pass — yours or a person's — starts from it.

Keep an eye on cost

get_client_costs {clientId} each week. If a client is near its cap, slow the paid work (fewer tracked keywords, weekly instead of daily trackers with update_rank_tracker) rather than letting calls be refused mid-run.

Refresh, research and housekeeping

  • refresh_rankings {clientId, maxCostMicros} (paid) captures rankings now; refresh_domain_data (paid) refreshes the domain overview; read either with get_run_status.

  • Research: get_brand_mentions, get_keyword_trends, estimate_domain_traffic, get_subdomain_traffic (all paid) and get_domain_technologies (free).

  • Keyword lists: rename_keyword_list, delete_keyword_list, and add_list_to_tracker to track a whole list.

  • Indexing: get_indexnow_key, issue_indexnow_key, verify_indexnow_key, and queue_url_inspections for up to 500 URLs (results in get_index_coverage).

  • Backlinks: build_disavow_file returns a disavow file's text; nothing is submitted.

Updated