Skip to main content

citeready

CI License: MIT PyPI Python

Can AI assistants read, trust and cite your business page? Pure stdlib, zero dependencies, one command.

When someone asks ChatGPT-class assistants for "a good bakery nearby", the answer is assembled from pages the assistant can actually read: structured data, consistent contact details, plain crawlable HTML. citeready audits one page the way an answer engine sees it and hands you a scored, explainable report. Every check is a plain deterministic rule you can read in the source — no model in the loop, no network calls beyond the page itself.

Install

pip install citeready

Usage

$ citeready https://vegabakery.example/
citeready — https://vegabakery.example/
score 96/100

Structured data
  ✓ JSON-LD structured data found (1 block)
  ✓ all JSON-LD blocks parse
  ✓ business node found (Bakery)
  ✓ name present
  ✓ address present
  ✓ telephone present
  ...
  ✓ phone matches the visible page

Page basics
  ✓ title: «Vega Bakery — sourdough & pastry in Valencia»
  ✓ meta description present
  ...

Site signals
  ✓ AI crawlers are not blocked
  ! no llms.txt (emerging, optional standard)
  ✓ sitemap.xml present

Also takes a local file (citeready page.html) or stdin (citeready -); --json for machine-readable output, --strict to exit non-zero when any check fails (handy in CI).

From Python:

from citeready import audit

report = audit("https://vegabakery.example/")   # or audit(html_string)
report.score                                    # 0–100
[(f.check, f.level, f.message) for f in report.findings]

What it checks

Structured data — the part assistants quote from:

  • JSON-LD is present and parses (@graph handled)
  • a business node exists (LocalBusiness/Organization/subtypes — Bakery, BeautySalon, LegalService, …)
  • must-have properties: name, address, telephone, url (missing = fail)
  • rich properties: description, geo, openingHours, sameAs, image, priceRange (missing = warn)
  • consistency: the name, phone and street from structured data actually appear on the visible page — mismatched data reads as unreliable

Page basicstitle (present, sane length), meta description, exactly one h1, lang attribute, canonical URL, no noindex, Open Graph pair.

Site signals (URL mode) — robots.txt does not block AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot, …), llms.txt, sitemap.xml.

Scoring is the plain weighted share: pass = 1, warn = ½, fail = 0, ×100. No hidden weights, so two reports are always comparable.

Honest limits

Static HTML only — no JavaScript is executed, so a page that renders its content client-side will score poorly here. That is partly the point (most answer-engine crawlers read static HTML too), but a low score on a JS-heavy site deserves a manual look. Checks are heuristics with documented thresholds, not a certification; robots.txt parsing is deliberately naive (full-block detection, not path matching).

Scope is frozen

This package does one thing: it audits a page and reports. Bug reports (wrong counts, crashes on valid HTML, missed JSON-LD) are very welcome. Feature requests — crawling whole sites, fixing what it finds, tracking scores over time — are out of scope for now.

Built to power Laspi

Laspi

citeready is the measuring half of the AI-visibility work inside Laspi — a marketing employee in a small-business owner's phone. Laspi keeps a living memory of the business (every fact confirmed by the owner), writes platform-native posts, images and short videos from it, and looks after the business's visibility in AI answers — in whatever language the business sells in. This audit is how that work starts: measure first, then fix.

The measuring is open source. The fixing is the product: laspi.pro.

License

MIT © 2026 GradeBuilder S.L.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

citeready-0.1.0.tar.gz (43.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

citeready-0.1.0-py3-none-any.whl (13.8 kB view details)

Uploaded Python 3

File details

Details for the file citeready-0.1.0.tar.gz.

File metadata

  • Download URL: citeready-0.1.0.tar.gz
  • Upload date:
  • Size: 43.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.3

File hashes

Hashes for citeready-0.1.0.tar.gz
Algorithm Hash digest
SHA256 9a5a8a4331e93c7f33751049d0bee3e90299f4a355f731725d8197541a8af84a
MD5 ee9e83bb55d8f25f2bae408b30ff9b7b
BLAKE2b-256 7ef7715b41d6a8801065dc153bf35f77c3271a65a99742efe60c01579ebc35c6

See more details on using hashes here.

File details

Details for the file citeready-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: citeready-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 13.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.3

File hashes

Hashes for citeready-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8e1017d65fb66839a8d89cff49799188495d874fc0ec6f1710c96ec2c3c82a05
MD5 b4319f42c6cbbc173b392ad61dce53ec
BLAKE2b-256 0a50323621a9f0f7168d4e11f79a944cced9be3c7d5c29cf88131af67888c892

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page