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.
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
| Type | Question | Answers |
|---|---|---|
| Yes / no | Does this page have a real reason to link to that page? | — |
| Choice | Which existing phrase should carry the link? | — |
How it works
- Crawl the site and extract copy and links
- Build 15 candidate targets per page with anchor phrases
- Jev judges link-worthiness and anchor choice
- 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.
ProjectproductionTypeScriptAgent skill and Python library for Claude Code and Codex that reranks candidate lists with one Jev yes/no relevance question each.
ProjectbetaPythonLocal-first MCP server that returns only Jev-checked passages from big PDFs, Word files and spreadsheets, with exact row calculations.
MCP serverbetaTypeScriptZilliz's cross-agent Markdown memory with an optional Jev reranker that asks yes/no relevance questions about retrieved chunks.
LibraryproductionPythonCLI and MCP server giving coding agents Jev-powered semantic search, focused reads and list picking in about a second for about a cent.
BenchmarkbetaPythonWeb search CLI for agents that has Jev score results and scraped chunks against the query and goal, passing only relevant ones on.
BenchmarkbetaGo