killerwaz GitHub avatar

research-overseer

killerwaz

Research Overseer is a self-hosted research discovery pipeline that searches, scrapes, scores documents against a defined beat using a local 9B model, and answers questions via Telegram, built on n8n, LM Studio, and Supabase.

Stars

3

7-day growth

No data

Forks

0

Open issues

0

License

No data

Last updated

2026-07-29

AI repository intelligence
FR-AI / ANALYSIS

Why it is worth attention

It solves the problem of LLM scoring being useless by splitting relevance into two independent axes (specificity and angle strength) and making the model write its angle before rating it, achieving meaningful discrimination that a single 1–5 score could not.

Who it is for

  • Individual researchers or analysts tracking multiple verticals
  • Developers building self-hosted RAG or research pipelines
  • Privacy-conscious users who want to avoid per-document API costs
  • n8n users interested in reproducible, unit-tested workflow generation

Use cases

  • Daily monitoring of funding rounds across industries with automatic extraction of company, sector, investors
  • Answering ad-hoc questions about a stored corpus by combining multiple triaged documents
  • Running a fully local research feed that filters out irrelevant articles using a small model on a 12GB GPU

Strengths

  • Unit-tested workflow generation prevents silent data loss bugs (e.g., n8n’s sub-workflow default dropped 38% of a corpus)
  • Two-axis scoring (specificity and angle strength) provides useful ranking versus a single relevance score that collapsed to 5 for 71% of items
  • Runs entirely on self-hosted hardware with a 9B model, avoiding per-document API costs and keeping data private
  • Pipeline is designed to be auditable: failures are kept visible, and recency is handled by arithmetic rather than a lossy model call

Considerations

  • RSS items get no structured extraction (no country/instrument fields), so they cannot group into certain views
  • Most items (204 of 261) predate the two-axis scoring and carry only the old useless relevance score
  • 10 items are marked TRIAGE_FAILED and kept visible rather than dropped, which may clutter the data

README quick start

Research Overseer

A research discovery pipeline that runs on my own hardware. It searches (Exa, Tavily, Brave), watches RSS, scrapes what it finds, scores every document against a defined beat using a local 9B model, stores the results in Postgres, and answers questions about them over Telegram.

Built on self-hosted n8n, with LM Studio serving the triage model and Supabase for storage. One Telegram chat is the entire interface.

The repo is the source of truth. Build scripts generate the workflow JSON, so editing a workflow in the n8n UI gets overwritten on the next build. The pure logic they inline is unit-tested.

What it looks like

Asking for a recap of the week. The company names, round sizes and investors are fields the triage step extracted into a structured column when each article was first read, so building the recap is a query over that column rather than a second pass over the articles.

Asking a question the stored feed can answer. The figures come from several separately triaged documents, pulled together at query time.

Why I built this

I read across six verticals and most of what arrives is unusable. The obvious fix is an LLM that reads everything and flags what matters. That fix failed in a specific way: ask a model "is this relevant, 1 to 5" and it answers 5. On one live query, ten of ten articles scored exactly 5. The filter discriminated nothing.

Getting useful judgment out of a small local model took three changes. I split the single score into two independent axes. I made the model write its angle before rating that angle. And I reordered the response schema, because grammar-constrained decoding emits properties in schema order, so each field conditions the next.

Then there was n8n itself, which fails silently in ways you only catch by auditing the data. One sub-workflow default wrote every result against the first document and dropped 38% of a corpus. It ran that way for days.

So nothing here is hand-edited in a UI. Scripts generate the workflows, and the logic they inline is unit-tested. It runs on a 12 GB card with a 9B model, because per-document API costs would have killed the habit of running it at all.

Where the model actually is

Two of the ten pipeline stages call a model. Everything else is code, which is why the test suite covers the parts that matter an

Description

Self-hosted research discovery pipeline on n8n. Searches, scrapes and scores documents against a defined beat with a local 9B model, then answers questions over Telegram.

Related repositories

Similar projects matched by category, topics, and programming language.

uzairansaruzi
Featured
uzairansaruzi GitHub avatar

hermex

Hermex is a native SwiftUI iPhone app that lets you control a self-hosted Hermes AI agent directly from your phone, with no subscriptions, tracking, or third-party relay.

AI & Machine LearningLarge Language Models
941
deerwork-ai
Featured
deerwork-ai GitHub avatar

deer-workflow

An open-source Dynamic Workflow runtime that combines deterministic TypeScript orchestration with replaceable Agent runtimes.

AI & Machine LearningLarge Language Models
312
makecindy
Featured
makecindy GitHub avatar

cindy

Cindy is an open-source AI agent that runs locally on your machine, integrates multiple AI harnesses and models, and provides memory, skills, and automation to perform real work in your projects and apps.

AI & Machine LearningLarge Language Models
958