Axific crawls a real site, clusters what’s actually been published, and diffs it against real search demand, real competitors, and its own internal links — so you know exactly what to build next, not just that “content is a gap.”
Not a feature list — an actual pipeline. Each phase’s output is the next phase’s real input, run in this order, against a real database.
Sitemap-first with a BFS fallback, robots.txt-respecting. Never touches CMS internals — crawlSite.mjs treats a WordPress site, a Shopify store, or a hand-coded page exactly the same way a real visitor’s browser would.
Claude reads every real page and pulls its actual entities, primary topic, and search intent — not keyword string-matching.
Jaccard similarity across real entity sets, then Louvain community detection groups content by what it’s actually about — deterministic, explainable, no black-box embedding.
Three independent, real gap types: question-gap (real search demand nothing answers), competitor-diff (a real competitor covers it, you don’t), link-gap (it exists, but nothing real links to it).
Every gap becomes a brief someone can write from today — real word-count targets from real comparable pages, real internal links chosen from real candidate pages. Never an invented URL, never a fabricated case study.
Every node is a real page or a real gap. Position is real BFS hop-distance from the homepage — not a random force-directed guess. Four markers tell you what you’re looking at before you even click:
Before this runs on anyone else’s site, it had to survive running on ours. Every number on this page came from a real crawl of axdigital.com.au — no seeded dataset, no cherry-picked example.
The competitor-diff step was the real test: the first time this crawler had ever pointed at a domain that wasn’t axdigital.com.au. It held up across all four.
This is still early — validating internally before it’s offered more broadly. If you want to talk about what it’d take to run this on your site, get in touch.
Get in touch