jank.ai
All test types Pricing Sign up free
Breadth · multi-page audit 1 credit × subpage count

Subpages.

One URL, but most product judgement happens across several pages — pricing, signup, checkout, help, terms. After the entry page is audited, the LLM identifies the most important internal links and runs the same battery on each. Findings that show up on every page collapse into one entry with cross-page evidence.

What it does pickSubpages()

Once the entry-page audit finishes, the LLM is shown a compact list of the visible internal links + the entry-page screenshot. It picks the N most consequential targets (default 2, configurable 0–20) — usually the pages a real evaluator would click next: /pricing, /signup, /help, /checkout, /about, top product pages. Each pick comes with a reason field so you know why the agent thought that page mattered.

Each subpage then runs through the same pipeline: capture (screenshot, HTML, console, network), analyse, accessibility audit, exploratory steps. A pruned version of the report doc per subpage gets attached to report.subpages[]. A post-pass deduplication step groups identical findings across pages into report.issueDuplicates: e.g. "footer 'Privacy Policy' link is 404 — seen on home, pricing, help (3 pages)."

What it audits

Cross-page deduplication

The same bug surfacing on 5 pages is one bug to fix, not 5 separate findings. Post-run we walk every issue across every subpage and group by canonical signature (category + selector + similar title). The output:

{
  "title": "Footer 'Privacy' link returns 404",
  "category": "reliability",
  "severity": "medium",
  "affectedPages": [
    "/",
    "/pricing",
    "/help",
    "/checkout",
    "/about"
  ],
  "firstSeenOn": "/",
  "evidence": "All 5 pages render `<a href=/legal/privacy>` in the footer.\nThat URL responds 404. Likely a deleted route that the shared footer\ncomponent still links to."
}

Coverage

Default
2 subpages per audit (entry + 2 = 3 total). Free tier capped at 2; paid tiers raise the ceiling to 20.
Selection
LLM picks by importance + visibility from the entry-page link graph. Each pick includes a one-line reason.
Per-subpage depth
Same pipeline as the entry page — analysis, a11y, responsive captures. Personas + flows + exploratory configurable per submit.
Dedup
Cross-page identical findings collapse into issueDuplicates with the list of affected pages.

Sample subpage entry

// One entry from report.subpages[]
{
  "id":           "a3f2c1b9-...",
  "url":          "https://acme.example.com/pricing",
  "label":        "Pricing",
  "reason":       "Most consequential conversion page — visible from hero CTA",
  "analysis": {
    "score": 72,
    "issues": [
      { "category": "content",    "title": "Pricing card 'most popular' badge overlaps the price" },
      { "category": "usability",  "title": "Monthly/annual toggle has no keyboard support" },
      // …
    ]
  },
  "screenshotUrl": "https://.../subpage-1-screenshot.jpg",
  "durationMs":    38421
}

See also

Foundation
Page Analysis →
Each subpage runs through this same analyzer — different URL, same battery.
Your rules
Custom Tests →
For multi-page state flows (sign up → verify email → log in → checkout), define the journey explicitly.
Audit a full site → All seven test types