jevector
Profile matching that encodes preference criteria as Clef or Jev decision vectors, retrieves with HNSW and checks rules both ways.
Overview
Jevector addresses profile matching, where similar text alone does not show whether two people meet each other's preferences. It uses Clef or Jev to encode specific criteria as decision vectors of 64 or 256 numeric values, retrieves candidate profiles with HNSW, checks mandatory conditions in both directions, and ranks remaining profiles by preference coverage.
On a benchmark of 52 synthetic profiles with eight held-out queries, each with one intended partner, measured before rule filtering, Clef 256 placed the partner first every time, Jev 64 and Jev 256 each reached 87.5% top-1 and 100% top-5, while BM25, BGE-small embeddings and their combination found the partner first at most 12.5% of the time. The README is careful to note that the profiles were built around the selected criteria and the test is small, so the results do not establish better performance on real profiles or general search. A full report covers methods, rule-filtered results and HNSW recall. MIT licensed.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Yes / no | Does this profile satisfy criterion X? (one of 64 or 256 decision dimensions)(inferred) | — |
How it works
- Encode each profile's criteria as a decision vector with Clef or Jev
- Retrieve candidates with HNSW
- Check mandatory conditions in both directions
- Rank by preference coverage
Strengths
- Large advantage over BM25 and embeddings on this synthetic test
- Interpretable vector dimensions
- Supports Clef and Jev
Caveats
- Small synthetic benchmark built around chosen criteria
- Not shown to generalise to real profiles
Getting started
git clone https://github.com/lalalune/jevector.git, create a Python 3.11+ venv and install, then run the benchmark.At a glance
- Type
- Benchmark
- Status
- research
- Language
- Python
- Runtime
- CLI
- Has code
- yes
- License
- MIT
Use cases and integrations
How curated lists describe it
Decision-vector profile retrieval with Clef and Jev, HNSW search, and BM25/BGE benchmark comparisons.
hellogumbo/awesome-jev
Frequently asked questions
How does it beat embeddings?
It encodes specific criteria as decision values rather than general text similarity.
How large is the test?
52 synthetic profiles and eight held-out queries.
Does it work on real dating or hiring data?
The README says the results do not establish that.
Related projects
- jev-rerank★ 17
Jev as a calibrated reranker: query plus up to 30 documents in one call, one relevance Noul per document, benchmarked on BEIR.
ProjectbetaPython Milvus-based multi-hop graph RAG library where two-stage Jev Noul scoring selects relations and reranks passages.
LibrarybetaPythonCompares Jev's zero-shot reranking with specialist rerankers on MS MARCO passage and document benchmarks and a TREC WSJ transfer test.
ProjectresearchPythonPull request adding Jev to station-suggestion reranking in the TrainLCD transit app's Cloudflare Worker backend.
AppTypeScriptLocal-first knowledge search with BM25 shortlisting and Jev Noul reranking by default, seven selectable pipelines and cited answers.
AppbetaPythonOpen Jev-style 0.6B decision model plugged into BlitzRank and Reranker-Guided Search, scoring k candidates per match in one pass.
ServiceresearchPython