Field Note #003
Drawing a Company's Org Chart From Its Links Alone
How community detection finds the hidden neighborhoods inside a website: what a community is in a link graph, what modularity scores, why the resolution knob changes the answer, and what the clusters reveal. Method only, no client data.
The org chart nobody drew
Imagine being handed nothing but the link map of a company’s website, every page and every link between pages, with the labels stripped off. Could you reconstruct how the company is organized? Which pages belong together, where the product line ends and the careers section begins, whether the research content is its own world or folded into marketing?
You can, and you do not have to guess. The links already encode the answer. Whenever authors build a site, they link related pages to each other far more often than they link unrelated ones. Over thousands of links those local decisions add up to a structure nobody sat down and drew: clusters of pages that hang together, joined loosely to other clusters. Finding those clusters is called community detection, and it is one of the five readings in a Digital MRI. This note is about how it actually works.
What a community is
In a link graph, a community is a set of pages that link densely among themselves and sparsely to everything outside. That is the whole definition, and it is purely structural. The algorithm does not read a word on any page. It knows nothing about products or topics or departments. It only sees which pages point to which, and it groups pages so that most links stay inside a group and few cross between groups.
The striking part is how well that bare structural signal lines up with meaning. Because authors link by topic, the clusters the math finds usually map onto real subjects: a product family, a documentation set, a regional site, an editorial blog. The structure recovers the topics without ever being told what the topics are. When it does not, that gap is itself the finding, which we come back to below.
What modularity measures
A site can always be carved into groups, even a structureless one. So the next question is whether the grouping is real or imposed. That is what modularity scores.
Modularity is a single number, running from roughly zero to one, that compares the clustering the algorithm found against what you would expect if the same pages were linked at random. A high modularity means pages overwhelmingly link inside their own group and rarely across, so the neighborhoods are genuine. A low modularity means the split is weak: links cross between groups almost as often as they stay home, and the so-called neighborhoods are mostly an artifact of forcing a division onto a tangle. We treat modularity as the confidence reading on the whole exercise. When it is high, the clusters mean something; when it is low, the site simply has not separated into clear topics.
Why the answer has a dial
Here is the part that surprises people: there is no single correct number of communities. Ask the algorithm for a coarse view and it returns a few big neighborhoods. Ask for a fine view and the same site breaks into many small ones. Both readings are valid descriptions of the same graph at different zoom levels.
That zoom level is set by a parameter called resolution. Turn it down and nearby clusters merge into broad territories; turn it up and they split into specifics. Neither is wrong, but the choice changes the story, so we never report a single cluster count as if the graph handed it to us. We report a range, and we say what resolution produced it. The honest version of this measurement always carries its zoom setting with it.
There is also a choice of algorithm. Louvain is the long-standing workhorse for this, fast and widely used, but it can occasionally produce a community whose pages are not actually all connected to each other. Leiden is a refinement that fixes exactly that flaw and guarantees every community it returns is internally connected, which is why we reach for it when the connectedness of the result has to be trustworthy. Both chase the same goal: the grouping that maximizes modularity.
Reading the clusters
Once the neighborhoods are found, the interpretation begins, and it comes down to comparing the structure the math recovered against the structure the site believes it has.
The healthy result is a handful of balanced communities that line up with the site’s real topics: the math matches the org chart. Three patterns fail that test. A single mega-community swallowing most of the pages means the content never separated into topics at all; everything links to everything, and a reader or an AI agent cannot tell where one subject ends and the next begins. A spray of tiny singleton clusters means pockets of content have broken off and now sit alone, related to nothing the rest of the site links to. And neighborhoods that are each internally healthy but never link across to one another are silos: real sections of the business that, structurally, do not know the others exist.
That last pattern is the one community detection is uniquely good at exposing. You cannot see a silo by reading any single page, because each page looks fine. It only appears when you step back to the whole graph and notice that two coherent neighborhoods share almost no links. For an AI agent following editorial links to understand a brand, a silo is a wall: it can explore one neighborhood thoroughly and never find the door to the next.
Why it matters
Community detection turns a vague worry (is our content organized?) into a measured answer. It shows whether a site’s structure matches its intent, where content has drifted into isolation, and which sections have walled themselves off from the rest. None of that is visible page by page. It only exists at the level of the whole graph, which is the level structure lives on, and the level that decides what a search engine or an AI agent can actually piece together about a business. It is one lens of the five, and on its own it answers a question most organizations cannot answer about themselves: drawn purely from its own links, does our website look like the company we think we are?
A note on method:
Community detection is run on an anonymized editorial graph in which site-wide navigation links are identified per site and set aside, so clustering reflects in-content editorial links rather than the repeating menu. We use Louvain or Leiden community detection and report modularity alongside a community-count range with the resolution setting that produced it, rather than a single figure. All data represents publicly accessible page structure only. No content, metadata, or user data is collected or stored. This note describes our general method and does not reference any specific site or client.