Download icon
Get icon
Script icon
If icon
ChatCompletion icon
GoogleGemini icon
SlackIncomingWebhook icon
Log icon
Set icon
Schedule icon
Webhook icon

arXiv Research Radar with AI Relevance Scoring and a Slack Digest

Fetch new arXiv papers daily, dedupe them in the KV store, score relevance with Gemini against your interests and post a Slack digest.

Categories
AIData

Hundreds of papers land on arXiv every day in busy categories like cs.CL and cs.AI. Keyword alerts are too noisy and reading every abstract does not scale. This blueprint runs a personal research radar: it fetches the newest papers for an arXiv API query, remembers which ones it has already processed, asks Gemini to score each new paper against a plain-English description of what your team cares about, and posts only the relevant ones to Slack.

How it works

  1. fetch_papers downloads the newest papers for search_query from the public arXiv API.
  2. load_seen reads the ids this radar already processed from the Kestra KV store.
  3. parse_new_papers parses the Atom XML with the Python standard library and keeps only unseen papers (new versions of a known paper are not reported again).
  4. if_new_papers stops early when nothing is new, so no LLM call is made.
  5. score_papers sends the titles and abstracts to Gemini, which returns structured JSON with a 1 to 5 relevance score, a short reason and a TL;DR for every paper.
  6. build_digest joins those scores back to the real metadata, so titles, authors and links always come from arXiv and never from the model. Entries with an unknown id, a duplicate id, or a title that does not match the paper are dropped, then the rest are filtered by min_relevance.
  7. if_relevant posts the digest to Slack, or logs that nothing was relevant.
  8. remember_seen stores the processed ids last, so a failed run is retried next time instead of silently skipping papers.
  9. The errors branch posts to Slack if any task fails.

Prerequisites

  • A Google AI Studio API key for Gemini. The free tier covers a daily run of 25 to 50 abstracts.
  • A Slack Incoming Webhook.

Secrets

  • GEMINI_API_KEY: Gemini API key used by score_papers.
  • SLACK_WEBHOOK_URL: Slack Incoming Webhook URL for the digest and failure alerts.

In the open-source edition, secrets are environment variables on the Kestra container, prefixed with SECRET_ and base64-encoded, for example SECRET_GEMINI_API_KEY=$(echo -n "your-key" | base64). See how to manage secrets.

Inputs

  • radar_name (STRING, default llm-agents): letters, digits, - and _. Keys the seen list, so you can run one radar per topic.
  • search_query (STRING): arXiv query, for example cat:cs.CL AND abs:agent or ti:"retrieval augmented". Boolean operators are AND, OR, ANDNOT.
  • research_interest (STRING): what is and is not relevant to your team. This drives the scores, so be concrete.
  • max_results (INT, 1 to 50, default 25): newest papers fetched per run.
  • min_relevance (INT, 1 to 5, default 4): only papers at or above this score are posted.
  • model_name (STRING, default gemini-2.5-flash): Gemini model used for scoring.

Quick start

  1. Add the two secrets.
  2. Edit search_query and research_interest for your field.
  3. Execute the flow. The first run treats every fetched paper as new, so expect a digest.
  4. Execute it again: already-seen papers are skipped and you get "No new papers".
  5. Enable weekday_morning. Change the webhook key before using on_demand.

To reset a radar, delete the KV key arxiv_radar_<radar_name> in the namespace KV store. arXiv asks clients to send at most one request every 3 seconds, which a single scheduled run respects. Do not schedule many radars at the same minute.

Outputs

  • {{ outputs.parse_new_papers.vars.papers }}: the new papers with id, title, authors, date, link and abstract.
  • {{ outputs.score_papers.jsonOutput }}: the raw scores returned by the model.
  • {{ outputs.build_digest.vars.relevant }}: relevant papers with score, reason and TL;DR.
  • Flow outputs new_papers and relevant_papers.

How to extend

  • Add a ForEach over several queries to run one radar per research topic.
  • Store relevant papers in a database or Notion to build a reading list.
  • Download the PDF of 5/5 papers and summarise the full text.

Links

See How

New to Kestra?

Use blueprints to kickstart your first workflows.