Skip to content

Site Audit

Site Audit is where the loop starts. One URL goes in. Two analyses come out:

  • The diagnosis, written by the model: positioning, SWOT, competitive landscape, channel recommendations, a content strategy, and a 4-week plan.
  • The relevance audit, computed by a rule-based scoring engine: nested 0–100 scores with the fixes that would raise them.

Run an audit

Fill in the form

Open Overview → Site Audit (/site-audit). Enter:

  • Website URL (required).
  • LinkedIn URL and Instagram Handle (optional).
  • Your goals. The choices are Improve SEO & Relevance, Grow Audience & Market, Generate & Manage Leads, Drive Sales & Campaigns, Deepen Customer Insights, Automate Follow-ups, and Streamline Workflows.

Run it

Choose Run Site Audit. The app creates the diagnostic record (CreateDiagnostic) and then streams the analysis (GenerateDiagnostic).

PULSE reads your website first. If it cannot, the diagnosis stops with could not read <url> (...) — a reachable website with readable content is required to run the diagnostic.

While it runs, the progress list shows what the backend actually did, for example “Grounded diagnosis in the scraped page content”. These entries are recorded by the backend, not claimed by the model, and they stay on the diagnosis afterwards as agent_tasks. The sources it read are kept as sources_used.

Read the result

The result page (/site-audit/result) has five tabs: Overview, Strategy, SEO, Market, and Action Plan. It also runs the relevance audit for the same URL. Past audits are under View History (/site-audit/history).

What the diagnosis contains

PartWhat it is
Positioning, SWOT, competitive landscape, AI opinionFree-text analysis sections
Channel prescriptionsPer channel: its role, priority, content ideas, CTA style, and KPIs
Document prescriptionsRecommended long-form formats, with ideas
Brand visibilityHow to be found and cited by AI search engines, with target terms and actions
Audience segmentsTiers such as decision makers and end users, with their roles and technologies
CronogramA week-by-week, channel-by-channel task plan

Channel prescriptions and brand-visibility insights pass through the judging ladder. A proposal the judge disagrees with is withheld from these lists.

What happens after it finishes

PULSE copies the findings into the rest of the app. This runs once per diagnosis, even if you regenerate it:

  • Draft posts on Approval, from the channel prescriptions.
  • One draft campaign on Campaigns, linked to the diagnosis.
  • A 30-day cycle on Follow-up, one planner task per cronogram entry.
  • Scheduled posts for the cronogram’s channels. They publish only on armed channels. See Publishing controls.
  • One profile per audience segment on Customer 360.
  • A market summary and background market research for the Radar.
  • Up to five leads prospected from the public web, in the background.

The relevance audit

The scoring engine is config-driven. Almost every check is a rule; one content check asks the model. It scores nine composites. The default weights come from internal/scoring/default_config.json:

CompositeDefault weight
AI Visibility0.30
Search Visibility0.25
Technical Foundation0.20
Authority & Trust0.20
Acquisition0.15
Monetization0.10
Engagement0.10
Retention0.10
Demographics0.05

Scores nest: check, then signal, then composite, then overall. Each composite also reports its coverage, the share of its weight that was actually scored. A 90 at 0.4 coverage means much less than a 90 at 1.0. Checks that need a data source you have not configured are skipped, and their weight is spread over the rest instead of counting as zero. The report lists those sources in skipped_data_sources.

Add two or three competitor URLs to switch the benchmark checks into relative mode. A profile changes the weights. The shipped profiles are ai-focused and authority-focused.

Open the full report at /site-audit/report.

Apply the fixes

Each audit returns actions: concrete fix artifacts such as a robots.txt, a canonical tag, a JSON-LD block, or a rewritten title. Each action says where it goes, how confident PULSE is, and whether it is safe to apply automatically.

On the report, enter the path of a local checkout of your site and choose a mode:

ModeEffect
planDry run. Lists the file changes. No side effects. Always allowed.
applyWrites the files into the repository on the server’s filesystem.
commitWrites and commits, on branch seo/pulse-remediation by default.
prOpens a pull request. With a connected GitHub data source, it goes through GitHub’s API.

Copy and infrastructure changes are never applied. They come back as manual for a person to review.

Every mode except plan writes to the server and runs git. It works only when an administrator has set PULSE_APPLY_ENABLED=true. Otherwise you get apply modes are disabled on this server; set PULSE_APPLY_ENABLED=true (exactly, lowercase) to allow write/commit/pr.

Export

ExportDiagnosticPDF returns a branded PDF of the diagnosis.