Nomad
A Next.js app that turns an engineering query into a structured starting map: papers, researchers, topic clusters, a reading roadmap, and source-linked project directions.

Result. Turned broad literature queries into source-linked maps by combining multi-query OpenAlex retrieval and deterministic ranking; 88 tests pass across nine suites.
Nomad turns a broad literature query into a smaller starting map—papers to read, recent work to watch, researchers, topic clusters, a reading roadmap, and project directions linked back to source records. OpenAlex is the primary source; the app runs without an OpenAI key using deterministic keyword, metadata, and citation signals. Citation-based ranks are reading-order signals, not predictions of research value.
| Category | AI / Software |
|---|---|
| Timeline | 2026 |
| Status | Complete |
| Evidence | Automated software tests; relevance test pending |
| Role | Full-stack design, retrieval pipeline, deduplication and ranking, evaluation fixtures, and test suite |
| Tools | Next.js, TypeScript, OpenAlex API, Vitest |
| Links | RepositoryEvaluation notes |
problem
My contribution. Built the query-variant retrieval, OpenAlex normalization/deduplication/filtering, ranking and clustering, the classic map and v2 explorer (graph, mind map, trend radar, quality report), and the deterministic test and fixture suite.
A single query to a scholarly database returns a noisy, partial slice of a field. A useful starting map needs multi-query coverage, de-duplicated candidates, inspectable ranking signals, and explicit limits without pretending citation counts predict future impact.
constraints
- Run without an OpenAI key using deterministic signals; embeddings optional.
- Deduplicate and normalize OpenAlex records before ranking.
- Keep ranking signals as reading-order cues, not impact predictions.
- Make evaluation repeatable with frozen OpenAlex fixtures.
design evolution
Iterations, issues, and fixes, recorded in the order they happened.
| Revision | Failure mode | Design change | Result |
|---|---|---|---|
| Multi-query retrieval | One query under-covers a field. | Generate query variants, then normalize, deduplicate, and filter the OpenAlex results. | Broader candidate coverage before ranking. |
| Inspectable ranking | Opaque or impact-implying ranks mislead the reader. | Rank on keyword, metadata, and citation signals as explicit reading-order cues, with optional embeddings. | A source-linked map, graph, roadmap, and quality report. |
| Repeatable evaluation | Live OpenAlex changes make results non-reproducible. | Froze OpenAlex captures as fixtures behind an 88-test suite across 9 files. | 2 of 5 audit-topic fixtures active; keyed precision/recall evaluation still pending. |
results
The automated suite covers deduplication, relevance diagnostics, scoring, project-idea constraints, roadmap, trend, and clustering across 9 files and 88 tests, using two frozen OpenAlex captures.
Precision, recall, and ranking quality across mechanical-engineering fields are explicitly not yet evaluated; the keyed relevance run is the next measurement.
Scope note. Deterministic components are tested with frozen fixtures. A keyed relevance evaluation—precision at fixed result counts and ranking versus an OpenAlex baseline—has not been run yet, and citation ranks are reading-order signals, not impact predictions.
lessons
- Coverage is won in retrieval (query variants plus deduplication), not only in ranking.
- Frozen fixtures make ranking checks repeatable without live-API drift.
- A shipped app still needs a real relevance evaluation before claiming ranking quality.
gallery
