I built semantic-relevance while trying to solve a problem I kept running into with my own feeds.
I follow Hacker News, GitHub Trending, Reddit, Lobsters, and a few RSS feeds. Even though the content is high quality, most of it is still noise for my current context. Popularity does not equal relevance, and the same items keep resurfacing because they are always trending.
This library treats signal as the intersection of three things:
Relevance: semantic similarity to a user-defined context
Novelty: decay-based tracking so repeat items fade over time
Classification: lightweight labels explaining why something surfaced
It is intentionally a small, embeddable primitive, not a feed reader or a recommender system. You give it items plus a markdown description of what you care about, and it returns scored “signals.”
Under the hood it uses:
Local embeddings (MiniLM via @xenova/transformers, no APIs)
Cosine similarity
Simple decay math for novelty
Explainable scoring instead of learned ranking
I’m using it as a building block inside a larger project, but the library itself is standalone and reusable.