Office hours: Build your self-driving GTM engine·Oct 29, 9:00am PT, onlineRegister→
Cargo
  • ProductAgentsReduce manual effort and close more deals with AIPlaysAutomate every stage of lead management so you can move fasterToolsAutomate repetitive tasks so your team can focus on what drives impactData ModelsUnify, organize, and activate your revenue dataAppsCustom interfaces for your team, wired to your live GTMTerritoriesModel your team, territories, and capacity in one placeContextOne shared knowledge base for your team and agents
    Add-onsChrome ExtensionSell faster, right in your browserButtonTrigger AI agents inside your CRMFormTurn any tool into an embeddable formSlackTag Cargo in Slack. It does the GTM work
    MoreProjectsDefine your entire GTM in codeCLIUse Cargo from your terminalMCPUse Cargo from Claude and ChatGPTDeveloper resourcesCargo API docs, OpenAPI spec, auth docs, webhooks, MCP serverAPI ReferenceExplore the Cargo APIDocumentationLearn how to use CargoIntegrationsConnected to your entire GTM stack
  • VeriffHow Veriff replaced MuleSoft with Cargo under NetSuite, Stripe and SalesforceAugmentHow Augment Code routes developer sign-ups to reps in under an hourWeights & BiasesHow Weights & Biases ships a new purchase signal in 2 days on CargoSee all
  • Pricing
  • Cookbooks
  • Blog
Sign in
Cookbooks
WAFundamentals

Website auditing

Keep your site usable by AI agents: once a week Ora audits how agents discover, read and use your domain and up to three rival domains, one pull request applies the fixes your site source can make, and one Slack digest reports the Ora score and what moved.

Installation
Set up the website-auditing cookbook in this project. 1. If the Cargo CLI is not installed yet, follow every step in https://api.getcargo.io/INSTALL.md 2. From the Cargo project, run: cargo-ai project add cookbook/website-auditing 3. Then follow .claude/skills/website-auditing/SKILL.md. Stop for my approval before any paid call, and stop at "cargo-ai project plan" before deploying anything.
Paste it into Claude Code, Cursor, Codex, Gemini CLI, Devin or Replicas.
$cargo-ai project add cookbook/website-auditing
Run it in your Cargo project. Copies the example in, and deploys nothing.

Say this to your agent

Every Monday, tell #web-team how agent-ready www.fabrikam.example is, and open a PR with the fixes.

Illustrative output #

Fictional records, to show the shape of what comes back.

text
:robot_face: *Website audit: 2026-W43*
*www.fabrikam.example*: 71/100 (C), +6 since last week. ora.ai/fabrikam.example
• Fixed: llms.txt formatting, Markdown link alternate
• Newly failing: Sitemap lastmod
*Competitors*
• contoso.example: 84 (B), no change
• wingtip.example: 66 (D), -2
*Where a competitor is ahead*
• ARD discovery: passes at contoso.example
• JSON-LD entity linking: passes at contoso.example, wingtip.example
*Fix pull request*: [website-auditing] 2026-W43: 3 fixes for www.fabrikam.example
*To do by hand*
• Listed in MCP registries: register the MCP server on a public registry.

Three domains were scanned once each; one pull request carries three fixes to the site’s source, and nothing was merged or sent outside the channel.

What you will be asked #

InputWhy
AUDIT_DOMAIN (infra/agents/website-auditor.ts)Looked upIt is the site scored and the one the pull request fixes. Ora drops www. and scans the apex, so the apex must serve or forward to the site.
COMPETITOR_DOMAINS (infra/agents/website-auditor.ts)Looked upEach is a scan a week from a budget shared by every caller on the same IP. More than three is a digest nobody reads to the end.
WEBSITE_ROOT (infra/agents/website-auditor.ts)Looked upThe only folder the agent may change. Wrong, and every fix lands in a folder nothing deploys.
channelId (infra/agents/website-auditor.ts)AskedLocked, so the digest lands where the web team reads it and nowhere else.

Done when #

  • node --import tsx evals/contract.mjs passes
  • cargo-ai project plan reports the agent, the website_audits model, the three connectors and the two folders
  • the first run wrote one website_audits row per configured domain for this ISO week, each with a score, a grade and its failing check ids, and the run transcript shows no force on any scan
  • one pull request is open on website-auditing-<week>, changing only files under WEBSITE_ROOT, each fix naming a failing check from our result, topFixes first; or none, with the digest saying why
  • one digest landed in the locked channel in the references/digest.md shape
  • a second run the same week wrote no row, opened no pull request and posted nothing
  • after the pull request is merged and deployed, the next week’s row shows its checks out of failing_checks

What it costs #

Ora’s reads are free and keyless; Cargo bills nothing for them. The post is slack.postMessage on the bound connector; immediately before the plan, run cargo-ai orchestration action list postMessage --kind connector --integration-slug slack and read the current cost out loud. The recurring cost is the harness run itself, once a week, billed as LLM tokens through the Anthropic connector. It is largest on a week with a pull request, when the agent reads Ora’s playbook, the site’s source and runs its build; a re-run that stops at the ledger costs a small fraction of that.

To make sure AI agents can find, read and use your website, score it every week and fix what the source can fix. Every Monday this cookbook’s agent reads Ora’s agent-readiness audit of your domain and up to three competitors’ through Ora’s MCP server, records the week, opens one pull request with the top fixes the website’s source can make, and posts one digest to a locked Slack channel.

shellscript
cargo-ai project add cookbook/website-auditing

What it does #

  • Scans each configured domain once a week through Ora, never forced, and records score, grade and failing checks in website_audits.
  • Compares with last week: what was fixed, what newly fails, where a competitor is ahead.
  • Applies the first three of Ora’s ranked fixes that live in the website’s source, following Ora’s own playbook, and opens one pull request.
  • Posts one digest with the scores, the pull request and the off-site fixes left to a human.

What’s inside #

Adds 7 resources.

FileResourceRole
infra/agents/website-auditor.tsdefineAgent (claudeCode)the cron, the repository binding, the Ora MCP client, the post
infra/agents/website-auditor.prompt.ts(not a resource)score, record, compare, fix, post
infra/models/website-audits.tsdefineModel (native)the ledger: one row per domain per week
infra/connectors/git.tsdefineConnector (github)the clone and the pull request
infra/connectors/slack.tsdefineConnector (slack)the post path
infra/connectors/anthropic.tsdefineConnector (anthropic)the model the harness runs on
infra/folders/index.tsdefineFolder ×2where the agent and the model are filed
references/digest.md(not a resource)the message shape and the rule for each line

Why Ora through MCP and not a connector #

Cargo has no Ora integration, and Ora’s reads need no account or key. The agent attaches Ora’s public MCP server (mcpClients) and keeps three tools: scan_domain and get_score to read an audit, and get_skill to fetch Ora’s fix playbook fresh each run. Every tool that writes to Ora or spends its scan budget is disabled.

Why a model and not the repository #

Ora keeps only the latest scan of a domain. The weekly history, and whether this week was already scanned, fixed and posted, has to live somewhere that is not waiting for a pull request to merge.

Placeholders (edit before deploy) #

  1. AUDIT_DOMAIN, COMPETITOR_DOMAINS, WEBSITE_ROOT in infra/agents/website-auditor.ts.
  2. channelId: the Slack channel id the digest lands in.
  3. languageModel: any Anthropic model the workspace’s connector can reach.

What it does not do #

It does not merge, edit outside the website’s source, force a scan, submit feedback to Ora, or post anywhere but the locked channel.

Version0.1.0
LicenseMIT
Source
Deploys
  • agents
  • connectors
  • models
For
  • Marketing
  • GTM engineering
Integrations
  • Anthropic
  • GitHub
  • Slack
Content
  • Say this to your agent
  • Illustrative output
  • What you will be asked
  • Done when
  • What it costs
  • What it does
  • What's inside
  • Why Ora through MCP and not a connector
  • Why a model and not the repository
  • Placeholders (edit before deploy)
  • What it does not do
More in Fundamentals
  • TAM building
  • Account scoring
  • Website building
Next: Signals
  • New hire detection
  • Social listening
  • Visitor identification
  • Readiness scoring

Build the self-driving GTM engine

Your coding agents build it on Cargo.Or our team builds, operates and improves it with you.

Start building
Cargo
Backed byY CombinatorSOC 2 Type IICertified
LinkedinX

Product

AI AgentsPlaysToolsData ModelsAppsTerritoriesContextEnrichmentRoutingIntegrationsPricing

Add-ons

Chrome extensionButtonFormSlack

Build

DocsDeveloper resourcesCargo API docsCargo OpenAPI specCargo auth docsCargo webhooksCargo MCP serverProjectsClaude Code

Resources

ReportsBlogCustomer storiesCookbooksGTM skillsGTM EngineeringGlossaryCompareCargo x ClayCargo x WorkatoCargo x n8nCargo x DeeplineCargo x DefaultCargo x LeanDataCargo x UnifyCargo x ValleyCargo x Gojiberry

Company

ManifestoCommunityEventsJobsPartners DirectoryPartner Program

Legal

SecurityTerms of servicePrivacy PolicyRefundsDPASupport
© 2026 Cargo
 ////////    ///////    ////////     ////////    ///////
///         ///   ///   ///   ///   ///         ///   ///
///         ///   ///   ///   ///   ///         ///   ///
///         /////////   ////////    ///  ////   ///   ///
///         ///   ///   /// ///     ///   ///   ///   ///
///         ///   ///   ///  ///    ///   ///   ///   ///
 ////////   ///   ///   ///   ///    ///////     ///////

$ npm install -g @cargo-ai/cli