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
| Part | What it is |
|---|---|
| Positioning, SWOT, competitive landscape, AI opinion | Free-text analysis sections |
| Channel prescriptions | Per channel: its role, priority, content ideas, CTA style, and KPIs |
| Document prescriptions | Recommended long-form formats, with ideas |
| Brand visibility | How to be found and cited by AI search engines, with target terms and actions |
| Audience segments | Tiers such as decision makers and end users, with their roles and technologies |
| Cronogram | A 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:
| Composite | Default weight |
|---|---|
| AI Visibility | 0.30 |
| Search Visibility | 0.25 |
| Technical Foundation | 0.20 |
| Authority & Trust | 0.20 |
| Acquisition | 0.15 |
| Monetization | 0.10 |
| Engagement | 0.10 |
| Retention | 0.10 |
| Demographics | 0.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:
| Mode | Effect |
|---|---|
plan | Dry run. Lists the file changes. No side effects. Always allowed. |
apply | Writes the files into the repository on the server’s filesystem. |
commit | Writes and commits, on branch seo/pulse-remediation by default. |
pr | Opens 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.
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.