---
title: "Self-Hosted AI News Search: Karakeep, RSS, Jev | BudgetWorks"
description: "A practical guide to organizing AI news: Karakeep bookmarks, RSS ingest, Jev auto-tagging and searches by topic, with costs and limits."
url: https://www.budgetapp.works/en/blog/karakeep-ai-news-search-with-jev
canonical_url: https://www.budgetapp.works/en/blog/karakeep-ai-news-search-with-jev
last_updated: 2026-10-12
---

[ Back to Blog](/en/blog)

 October 3, 2026 30 views

# How we keep AI news searchable with Karakeep and Jev

![How we keep AI news searchable with Karakeep and Jev](/cdn-cgi/image/width=1536,quality=80,format=auto/https://public-api.budgetapp.works/api/public/media/1b6623cb-6fc5-41fe-8ccb-e6df054e6f82)

AI news moves faster than anyone can read it. A new agent framework on Monday, a protocol change on Wednesday, a security advisory on Friday. We stopped trying to _remember_ it and built a small system that makes it _findable_ instead. This is how we use Karakeep, a self-hosted bookmark manager, and Jev, our classification model, to keep that news searchable.

## The rule: one place for outside reading, another for our own knowledge

We keep two stores on purpose:

|                | Karakeep (outside reference)          | BudgetWorks Docs (our knowledge)            |
| -------------- | ------------------------------------- | ------------------------------------------- |
| What goes in   | Articles, feeds, PDFs, clips we found | What our team and clients wrote and decided |
| Who owns it    | One owner, one workspace              | Each customer, isolated per tenant          |
| Access control | None needed (single owner)            | Roles, project members, revisions           |
| Direction      | Read from it                          | Write to it                                 |

Mixing them is how reference material ends up in front of customers, so the boundary is strict: if something from Karakeep should reach a customer, we **promote** it by copying it into Docs. Until then it stays outside.

## From feed to answer

```mermaid
flowchart LR
    A[RSS feeds
from sites we trust] --> B[Karakeep
saves + indexes full text]
    B --> C{New post without
a topic tag?}
    C -- yes --> D[Jev picks a topic]
    C -- no --> F
    D -- confident --> E[Topic tag added]
    D -- unsure --> G[Review tag
a human decides]
    E --> F[Smart lists + search]
    G --> F

```

1. **Collect.** Karakeep follows RSS feeds. Each new post arrives as a bookmark with its full text, and the search index is built as it is saved.
2. **Sort.** Every 30 minutes a small job on our server looks for posts that have no topic tag yet. If there are none, it does nothing. If there are some, it asks Jev which topic each one belongs to, up to 20 posts in one request.
3. **Trust, but only when it is sure.** A confident answer becomes a tag such as `topic-ai-agents`. If Jev is not confident enough, we do **not** let it guess. The post gets a `topic-review` tag and waits for a human. Nothing is ever removed, and a post we have already tagged is never asked about again.
4. **Find.** Smart lists read those tags, so a post appears in its list on its own.

## Our lists

| List             | What it shows                                                    |
| ---------------- | ---------------------------------------------------------------- |
| RSS news         | Everything that arrived by feed                                  |
| AI agents & MCP  | Agents, the Model Context Protocol, LLM tooling and agent safety |
| Infra & data     | Databases, proxies, security and operations                      |
| Self-hosted apps | Open-source alternatives to SaaS products                        |
| Digests          | Weekly roundups and release lists                                |

Our first batch was 15 posts from one self-hosting blog. Jev placed most of them with 84 to 100 percent confidence, and the two least certain ones (an audit-log tool for AI agents and a rate limiter for AI crawlers) are exactly the ones a person would also hesitate over, because they genuinely belong in two lists.

## Searching it

Three habits cover almost everything:

* **Plain words.** Type what you remember. Search runs on the full text of the saved article, not just the title.
* **By topic.** `#topic-ai-agents` lists everything filed under agents; `#topic-review` lists what still needs a human.
* **By origin.** `source:rss` limits results to feed items, which keeps your own notes out of the way.

We also keep our own decision notes in Karakeep, in a separate list, with the date at the start of each title. "Why did we choose X" then becomes a search instead of a memory.

## What it costs

The check every 30 minutes only reads from our own Karakeep, which is free. The model is called only when there is something new, so a quiet day costs nothing and a busy day costs one request per batch of 20 posts. If a feed gets noisy, we lengthen the interval instead of adding people.

## What we would tell you if you copy this

* **Keep the boundary.** Outside reading and customer knowledge are different jobs.
* **Make the model say "I don't know".** A low-confidence bucket for a person is cheaper than a wrong list nobody notices.
* **Let a model choose, not write.** We use Jev to _select_ from a fixed set of topics, which is easy to check. We wrote about that idea in [How we use Jev: select, don't generate](/blog/how-we-use-jev-select-dont-generate).
* **Start with one feed.** Add the next one once the first one feels useful.

If you want a setup like this around your own reading, or a knowledge base for your team that stays separate from it, [get in touch](/contact).

 #karakeep #rss feed #ai news #self-hosted bookmark manager #jev #auto tagging #smart lists #full-text search

### Want to see it in action?

Learn how BudgetWorks OS can transform your business operations.

[Try Live Demo](/en/try)

---
Site map for agents: [llms.txt](https://www.budgetapp.works/llms.txt) · [sitemap.md](https://www.budgetapp.works/sitemap.md)
