Automated research paper discovery via Google Scholar, PDF monitoring, and AI-powered summarization for academic and technical literature.
The Research System automates your research workflow in a simple daily cycle:
- Automated Discovery - The system searches Google Scholar based on your topic/keyword list and creates a daily digest
- Review & Save - You review the digest and download PDFs of interesting papers to your topic's
Sources/folder - Automatic Summarization - The system detects new PDFs and generates summaries in the
Notes/folder
Sample Daily Workflow:
- Morning (Automated): System searches for new papers and creates today's digest
- When you start work: Run
/research-system:generate-research-digestto see today's papers and any new summaries - Throughout the day: Review digest, download interesting PDFs to
[Topic]/Sources/ - Evening (Automated): System detects new PDFs and queues them for summarization
- Next day: Run
/research-system:generate-research-digestagain to get today's papers + yesterday's summaries
Note: Timing is fully customizable during setup.
- Google Scholar Discovery: Daily searches with configurable frequency
- PDF Monitoring: Automatically detects new PDFs you save to Sources/ folders
- AI Summarization: Generates concise bullet-point summaries with semantic tags
- Large PDF Handling: Automatically splits papers >= 5 MB into sections to avoid context overflow
- Conference Proceedings Support: Extract individual papers from multi-paper proceedings
- Intelligent Filtering: Removes irrelevant papers based on your business focus
- Flexible Integration: Works standalone or with task management systems
- Markdown-based: Works with any markdown editor (Obsidian support built-in)
- Secure API Keys: Supports
SERPAPI_KEYenvironment variable (recommended) or config file - Config Validation: Built-in validation script to check your setup
cd ~/.claude/plugins/
git clone https://github.com/daiki-tadokoro/research-system.gitpip3 install -r ~/.claude/plugins/research-system/requirements.txtGet a free key from serpapi.com (250 searches/month on free tier).
Option A: Environment variable (recommended)
export SERPAPI_KEY=your_key_hereOption B: Config file
Set serpapi.api_key in your config.yaml during setup.
In Claude Code:
/research-system:setup-research-automation
The wizard will guide you through:
- Configuring research directory location
- Setting up research topics and keywords
- Configuring filter criteria
- Setting up automated cron jobs
python3 ~/.claude/plugins/research-system/scripts/utilities/validate_config.pyPapers are fetched automatically by cron job, or run manually:
/research-system:fetch-papers
/research-system:generate-research-digest
- Paper Discovery: Searches Google Scholar daily (or weekly, configurable), creates digest in
daily-digests/YYYY-MM-DD.md - PDF Monitoring: Scans for new PDFs you've saved, queues them for summarization
- Run
/research-system:generate-research-digestto generate summaries and create research-today.md - Review the digest and download interesting PDFs to topic folders
- Run
/research-system:filter-research-digestto remove irrelevant papers - Run
/research-system:update-research-filtersto refine criteria iteratively
/research-system:about- Show documentation and usage information/research-system:generate-research-digest- Generate summaries and create today's digest/research-system:research-summary- Generate summary for a single PDF/research-system:split-conference-pdf- Split conference proceedings into individual papers/research-system:filter-research-digest- Filter digest by relevance/research-system:update-research-filters- Interactively refine filter criteria/research-system:setup-research-automation- Configuration wizard/research-system:fix-scheduled-scripts- Repair cron jobs after plugin directory changes/research-system:fetch-papers- Manually run paper fetching/research-system:monitor-sources- Scan for new PDFs and add to summarization queue/research-system:check-logs- View recent log entries to diagnose issues
The system automatically handles large papers (>= 5 MB) by:
- Detecting file size before processing
- Splitting into sections using PDF structure
- Processing each section separately to avoid context overflow
- Cleaning up temporary files after summarization
This happens automatically - no action needed.
- Split the proceedings:
/research-system:split-conference-pdf - Review extracted papers in the output directory
- Copy desired papers to your topic's
Sources/folder - Run
/research-system:generate-research-digestto summarize them
Note: Conference splitting requires the PDF to have embedded bookmarks/table of contents.
research-directory/
├── research-today.md # Your daily starting point
├── research-today-archive/ # Historical daily digests
├── daily-digests/ # Daily paper discovery results
│ ├── 2025-11-04.md
│ └── 2025-11-03.md
├── .research-data/ # Tracking files and logs
│ ├── .research-queue.json
│ ├── .seen_scholar_papers.json
│ ├── .processed_pdfs.json
│ ├── keywords.md
│ ├── fetch_papers.log
│ └── monitor_sources.log
└── [Topic Folders]/ # One per research topic
├── Sources/ # Put PDFs here
└── Notes/ # Auto-generated summaries
Run /research-system:setup-research-automation to configure interactively, or manually create ~/.claude/research-system-config/config.yaml (see config/config.template.yaml).
python3 path/to/research-system/scripts/utilities/validate_config.pyThis checks config file format, required fields, paths, API keys, and keywords file.
- Python 3.8+
- Claude Code (for summarization)
- SerpAPI key for Google Scholar (free tier: 250 searches/month)
- Google Scholar (via SerpAPI): Free tier allows 250 searches/month
- Default: daily searches
- Configurable: set
search_frequency: "weekly"to search only on Sundays - With 10 topics x 3 keywords x 30 days = ~900 searches/month (consider weekly mode for many keywords)
- Start with 3-5 topics with 3-5 keywords each
- Use weekly mode if you have many keywords to conserve API quota
- Refine filter criteria iteratively using
/research-system:update-research-filters - Check logs if papers stop appearing: run
/research-system:check-logs - Validate config after changes:
python3 scripts/utilities/validate_config.py
Run /research-system:fix-scheduled-scripts to repair the symlink and update crontab.
- Run
/research-system:check-logsto see errors - Run
/research-system:fetch-papersto manually trigger - Run
/research-system:fix-scheduled-scriptsif cron paths are broken - Verify SerpAPI key:
python3 scripts/utilities/validate_config.py
- Run
/research-system:monitor-sourcesto scan for new PDFs - Run
/research-system:generate-research-digestto process queued PDFs - Verify PDFs exist in your topic's
Sources/folders
- Run
/research-system:filter-research-digeston large digests - Run
/research-system:update-research-filtersto refine criteria
MIT
Originally based on ttorres33/research-system by Teresa Torres. Improved with skills migration, Google Scholar focus, config validation, and security enhancements.