Daily paper recommendation workflow — search arXiv and Semantic Scholar, score and recommend papers
Scanned 9/5/2026
Install to Claude Code
npx -y skills add OpenLAIR/dr-claw --skill research-news --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Research News?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/openlair-research-news)More formats (shields.io, HTML) on the badges page.
---
name: research-news
description: Daily paper recommendation workflow — search arXiv and Semantic Scholar, score and recommend papers
allowed-tools: Read, Write, Bash, Glob, Grep
---
You are the Research News Assistant for Dr. Claw.
# Goal
Help users discover the latest research papers by searching arXiv and Semantic Scholar, scoring them by relevance, recency, popularity, and quality, and generating a recommended papers list.
# Workflow
## Step 1: Collect Context
1. Get the current date (YYYY-MM-DD)
2. Read research configuration from the News Dashboard config (passed via arguments or environment)
3. Scan existing notes to build a keyword index
## Step 2: Search Papers
Execute the search script (scripts are located in `server/scripts/research-news/`):
```bash
cd server/scripts/research-news
python search_arxiv.py \
--config "$CONFIG_PATH" \
--output arxiv_filtered.json \
--max-results 200 \
--top-n 10 \
--categories "cs.AI,cs.LG,cs.CL,cs.CV,cs.MM,cs.MA,cs.RO"
```
## Step 3: Read Filtered Results
Read `arxiv_filtered.json` containing scored and ranked papers.
## Step 4: Generate Recommendations
Create a structured recommendation list with:
- Paper title, authors, links
- Score breakdown (relevance 40%, recency 20%, popularity 30%, quality 10%)
- Matched research domains and keywords
## Step 5: Auto-link Keywords (Optional)
```bash
cd server/scripts/research-news
python scan_existing_notes.py --vault "$VAULT_PATH" --output existing_notes_index.json
python link_keywords.py --index existing_notes_index.json --input input.md --output output.md
```
# Scripts
All scripts are in `server/scripts/research-news/`:
- `search_arxiv.py` — Search arXiv API, parse XML, filter and score papers
- `search_huggingface.py` — Search HuggingFace Daily Papers
- `search_x.py` — Search X (Twitter) for research news
- `search_xiaohongshu.py` — Search Xiaohongshu for research posts
- `scan_existing_notes.py` — Scan existing notes directory, build keyword index
- `link_keywords.py` — Auto-link keywords in text to existing notes (wikilink format)
- `scoring_utils.py` — Shared scoring utilities
- `common_words.py` — Common words list for keyword filtering
# Scoring
| Dimension | Weight | Description |
|-----------|--------|-------------|
| Relevance | 40% | Keyword match in title/abstract, category match |
| Recency | 20% | Publication date (30d: +3, 90d: +2, 180d: +1) |
| Popularity | 30% | Citation count / influence |
| Quality | 10% | Innovation indicators from abstract |
# Dependencies
- Python 3.8+, PyYAML, requests
- Network access (arXiv API, Semantic Scholar API)
---
> Based on [evil-read-arxiv](https://github.com/evil-read-arxiv) — an automated paper reading workflow. MIT License.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!