Skip to content

jev-linkmap

Rebuilds a site's internal link map with Jev judging thousands of link candidates, raced against Claude Opus 5 on the same queue.

ProjectprototypeCustom license

Overview

jev-linkmap treats internal linking as thousands of yes/no calls rather than writing: does this page have a real reason to link to that one, and is there anchor text already in the copy? Code crawls the sitemap with the standard library, keeping titles, headings, body copy and existing links; picks the 15 most similar unlinked pages per page by TF-IDF cosine; and finds 2 to 6 word phrases already in the copy that could carry each link, never offering existing link text. Jev then judges the candidates, and every anchor is the author's own words.

On www.bles-software.com (566 pages, 8,460 link decisions, run 19 September 2026) the README reports Jev finished all pages in 5.95 seconds at 32 requests in flight for about $0.27, placing 679 links on 334 pages and leaving 232 unchanged because it links only when sure, while Claude Opus 5 had landed its first 8 pages by 16.5 seconds at about $0.118 per page, roughly 240 times more. Claude or Codex can optionally act as System 2 to train the rubric. A live report and race video are provided.

What the decision model decides

TypeQuestionAnswers
Yes / noDoes this page have a real reason to link to that page?—
ChoiceWhich existing phrase should carry the link?—

How it works

  1. Crawl the site and extract copy and links
  2. Build 15 candidate targets per page with anchor phrases
  3. Jev judges link-worthiness and anchor choice
  4. Report placed links; optionally refine the rubric with Claude or Codex

Strengths

  • Whole-site linking in seconds
  • Anchors always from existing copy
  • Very low cost per page

Caveats

  • Single-site run
  • Custom licence

Getting started

See the live report at https://stas4000.github.io/jev-linkmap/ and run crawl.py, candidates.py and the judge script.

At a glance

Type
Project
Status
prototype
Language
Python
Runtime
Scripts with static report
Has code
yes
License
Custom license

Use cases and integrations

How curated lists describe it

  • Site: www.bles-software.com, 566 pages, 8,460 link decisions (15 candidate targets per page). Run on 19 Sep 2026. Every number below is from the run files in \`out/\` and \`runs/\`.

    logicrw/awesome-jev-projects

Frequently asked questions

What does Jev decide?

Whether a page should link to a candidate and which existing phrase should be the anchor.

How does it compare to Claude Opus 5?

About 240 times cheaper per page and much faster in the reported run.

Does it write new text?

No, anchors are always existing phrases.

Related projects

  • Local long-term memory for coding agents with an optional Jev reranker that orders recalled memories.

    ProjectproductionTypeScript
  • Agent skill and Python library for Claude Code and Codex that reranks candidate lists with one Jev yes/no relevance question each.

    ProjectbetaPython
  • Local-first MCP server that returns only Jev-checked passages from big PDFs, Word files and spreadsheets, with exact row calculations.

    MCP serverbetaTypeScript
  • Zilliz's cross-agent Markdown memory with an optional Jev reranker that asks yes/no relevance questions about retrieved chunks.

    LibraryproductionPython
  • CLI and MCP server giving coding agents Jev-powered semantic search, focused reads and list picking in about a second for about a cent.

    BenchmarkbetaPython
  • Web search CLI for agents that has Jev score results and scraped chunks against the query and goal, passing only relevant ones on.

    BenchmarkbetaGo