Skip to content
unlob

Use case

Finding sources worth following

Teams building recommendation, curation and discovery products.

The problem, and the approach

The problem

  • Discovery by keyword returns what matches the words, which is not the same as what is worth reading.
  • Widening a result set usually means guessing at new queries, which reflects your vocabulary rather than the corpus's.
  • Popularity signals favour recency and volume over substance.

The approach

  • sort=centrality orders by position in the coverage graph — what the field references, rather than what matched the query.
  • similar widens from a seed passage through the embedding space, crossing languages as it goes.
  • related follows typed edges, so the expansion comes from documented relationships rather than similarity alone.
  • Community filtering keeps discovery inside one discourse when a term means different things in different fields.

The parameters that matter

ParameterValueWhy
sortcentralityFoundational rather than merely matching.
similar?id=a good seedWiden without inventing a query.
min_centrality0.3A floor on how well-connected results must be.
community[]one clusterStay inside a single discourse.
In practicebash
curl -H "x-api-key: $UNLOB_API_KEY" \
  "https://api.unlob.com/search?q=retrieval+evaluation&sort=centrality&limit=10"

curl -H "x-api-key: $UNLOB_API_KEY" "https://api.unlob.com/similar?id=p:8f2c9a&limit=10"

Centrality is a better editor than recency

Discovery products that rank by recency converge on churn, because the newest thing in any field is almost never the most useful thing in it. Ranking by how load-bearing a passage is within its field — how much of the surrounding material depends on it — produces a different and generally better shortlist, and it is computed from the structure of the corpus rather than from engagement, so it does not degrade the way behavioural signals do when the audience is small.

The cost is a conservative bias. Centrality accrues over time, so genuinely new material is under-served by construction, and a discovery feed built on it alone will feel authoritative and slightly stale. Pairing it with a recency preference rather than a recency filter keeps the established work available while letting new work surface.

Widening from a seed beats inventing queries

The hardest part of a recommendation surface is the second step: the user liked this, now what. Generating new queries from the text of the seed is the obvious approach and it produces the characteristic failure of recommendation systems, which is returning things that are lexically similar and substantively the same.

Expanding along relationships the corpus already contains avoids that, because the edges were derived from how the material actually connects rather than from how it is worded. Two practical notes: community assignment is automatic and occasionally splits a field a person would treat as one, which shows up as a discovery feed that is oddly narrow; and a seed from a very small community will widen into a thin set, so it is worth probing the size of the neighbourhood before presenting the result as a recommendation.

Where this is not the right tool

  • Centrality favours established sources, so it under-surfaces genuinely new material. Combine with prefer_recent when novelty matters.
  • Community assignment is automatic and occasionally splits a field that a person would treat as one.

Frequently asked questions

How is centrality different from relevance?

Relevance asks what matches your query. Centrality asks what the corpus treats as load-bearing, independent of the query. For discovery the second is usually the better ordering.

Does similar work across languages?

Yes. The embedding space holds 101 languages, so a German seed passage can surface its English counterparts directly.

Build it on the free tier

10,000 credits a month, no card. Every parameter above works on every plan.

API and MCP reference ↗