kthorn/research-superpower/searching-literature
Claude Code and agent skill by kthorn/research-superpower
- community
Checking that the SKILL.md file is still in the repository.
PubMed search with keyword optimization, result parsing, and metadata extraction
Install
npx vskill@latest install kthorn/research-superpower/searching-literatureSKILL.md
Searching Scientific Literature
Overview
Search PubMed for scientific literature using optimized queries. Extract metadata and prepare papers for relevance evaluation.
Core principle: Cast a wide enough net to find relevant papers, but use targeted keywords to keep results manageable.
When to Use
Use this skill when:
- Starting a new research question
- User asks "find papers about..."
- Need initial paper set for evaluation
- Searching for specific methods, compounds, diseases, techniques
Search Strategy
1. Parse User Query
Extract:
- Keywords: Main concepts (e.g., "BTK inhibitor", "selectivity", "kinase")
- Data types: What user needs (IC50 values, methods, structures, results)
- Constraints: Date ranges, specific journals, author names
- Synonyms: Alternative terms (e.g., "Bruton's tyrosine kinase" = "BTK")
2. Construct PubMed Query
Boolean operators:
- AND - narrow results (must have both terms)
- OR - broaden results (either term)
- NOT - exclude terms
Example queries:
Field tags:
[Title/Abstract]- search title and abstract only[Title]- title only (more precise)[Author]- specific author[Journal]- specific journal[Date]- date range
3. Execute Search
API endpoint:
Parameters:
db=pubmed- search PubMed databaseterm=- your query (URL encode spaces and special chars)retmax=100- max results (start with 100)retmode=json- return JSONsort=relevance- most relevant first (orpub_datefor newest)
Example bash:
Response format:
4. Fetch Paper Metadata
API endpoint:
Extract from response:
- Title
- Authors (list)
- Journal name
- Publication date
- Abstract (via separate efetch call or use esummary)
- PMID
- DOI (if available in
articleids)
Getting DOI from PMID:
If DOI missing:
- Use PMID as fallback identifier
- Try to resolve DOI via PubMed Central or publisher APIs later
Output Format
Create list of paper objects:
Error Handling
Rate limits (CRITICAL - shared across all processes/subagents):
- No API key: 3 requests/second (official limit)
- With API key: 10 requests/second
- Single agent/script: Use 500ms delays (2 req/sec, safe margin)
- 350ms is theoretically sufficient but causes ~20% HTTP 429 errors in practice
- Multiple parallel subagents: Use longer delays to share capacity
- 2 parallel: 1 second each (2 total req/sec)
- 3 parallel: 1.5 seconds each (2 total req/sec)
- 5 parallel: 2.5 seconds each (2 total req/sec)
- Formula:
delay_seconds = (num_parallel / rate_limit) + safety_margin - If you get HTTP 429 errors: Wait 5 seconds, resume with doubled delays
Empty results:
- Try broader terms
- Remove field tags
- Check for typos
- Use OR to add synonyms
Too many results (>500):
- Add more specific terms
- Use field tags to narrow
- Add date constraints
- Consider splitting into sub-queries
Integration with Other Skills
After search completes:
- Save results to research folder as
initial-search-results.json - For each paper, call
evaluating-paper-relevanceskill - Track in
papers-reviewed.json(use DOI as key, fallback to PMID)
Quick Reference
| Task | Command | |
|---|---|---|
| Search PubMed | curl "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&term=QUERY&retmax=100&retmode=json" | |
| Get metadata | curl "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=pubmed&id=PMID1,PMID2&retmode=json" | |
| URL encode query | Replace spaces with +, special chars with %XX | |
| Narrow results | Use AND, add field tags, more specific terms | |
| Broaden results | Use OR, remove field tags, add synonyms |
Common Mistakes
Too narrow: Only 5 results → Use OR, remove constraints Too broad: 5000 results → Add AND terms, use field tags Missing abstracts: Use efetch instead of esummary for full abstract text DOI not found: Many older papers lack DOI - use PMID as fallback Rate limiting: Add 500ms delays (single agent) or longer (parallel subagents sharing rate limit)
Next Steps
After completing search:
- Announce: "Found N papers matching query"
- Begin evaluation using
skills/research/evaluating-paper-relevance - Update user with progress as papers are screened
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/research/searching-literature/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/kthorn/research-superpower/searching-literature)