semantic-scholar
Search published venue papers (IEEE, ACM, Springer, etc.) via Semantic Scholar API. Complements /arxiv (preprints) with citation counts, venue metadata, and TLDR. Use when user says "search semantic scholar", "find IEEE papers", "find journal papers", "venue papers", "citation search", or wants publ
By wanshuiyin · 460 installs
npx skills add wanshuiyin/auto-claude-code-research-in-sleep --skill semantic-scholar
Source repository · Upstream listing
Semantic Scholar Paper Search
Search topic or paper ID: $ARGUMENTS
Role & Positioning
This skill is the published venue counterpart to /arxiv :
Skill Source Best for
/arxiv arXiv API Latest preprints, cutting edge unrefereed work
/semantic scholar Semantic Scholar API Published journal/conference papers (IEEE, ACM, Springer, etc.) with citation counts, venue info, TLDR
Do NOT duplicate arXiv's job. If results contain an externalIds.ArXiv field, the paper is also on arXiv — note this but do not re fetch from arXiv.
Constants
MAX RESULTS = 10 — Default number of search results.
S2 FETCHER — canonical name semantic scholar fetch.py , resolved per
[ shared references/integration contract.md ](../shared references/integration contract.md) §2
(Policy D1 — primary + fallback cascade). If unresolved (canonical
chain exhausted), fall back to the inline Python alternative
documented in Step 2.
DEFAULT FILTERS — For general research queries, apply these by default to reduce noise:
fields of study "Computer Science,Engineering"
publication types JournalArticle,Conference
Overrides (append to arguments):
/semantic scholar "topic" max: 20 — return up to 20 results
/semantic scholar "topic" type: journal — only journal articles
/semantic scholar "topic" type: conference — only conference papers
/semantic scholar "topic" min citations: 50 — only highly cited papers
/semantic scholar "topic" year: 2022 — papers from 2022 onward
/semantic scholar "topic" fields: all — remove default field of study filter
/semantic scholar "topic" sort: citations — bulk search sorted by citation count
/semantic scholar "DOI:10.1109/..." — fetch a single paper by DOI
Workflow
Step 1: Parse Arguments
Parse $ARGUMENTS for directives:
Query or ID : main search term, or a paper identifier:
DOI: 10.1109/TWC.2024.1234567
Semantic Scholar ID: f9314fd99be5f2b1b3efcfab87197d578160d553
ArXiv: ARXIV:2006.10685
Corpus: CorpusId:219792180
max: N : override MAX RESULTS
type: journal conference review all : map to publication types
min citations: N : map to min citations
year: RANGE : map to year (e.g. 2022 , 2020 2024 )
fields: FIELDS : override fields of study (use all to remove filter)
sort: citations date : use search bulk with sort citationCount:desc or publicationDate:desc
If the argument matches a DOI pattern ( 10.XXXX/... ), a Semantic Scholar ID (40 char hex), or a prefixed ID ( ARXIV:... , CorpusId:... ), skip search and go directly to Step 3.
Step 2: Search Papers
Resolve $S2 FETCHER via the canonical strict safe chain (see
[ shared references/integration contract.md ](../shared references/integration contract.md) §2):
Standard search (default — relevance ranked):
Bulk search (when sort: is specified, or MAX RESULTS 100):
If $S2 FETCHER is empty (Policy D1 cascade), fall back to inline Python using urllib against https://api.semanticscholar.org/graph/v1/paper/search .
Recommended filter combos (from testing):
Goal Flags
High quality journal papers publication types JournalArticle min citations 10
CS/EE papers, recent fields of study "Computer Science,Engineering" year "2022 "
Foundational / high impact search bulk sort citationCount:desc fields of study "Computer Science"
Conference papers only publication types Conference
Note : venue requires exact venue names (e.g. "IEEE Transactions on Signal Processing"), not partial matches like "IEEE". Avoid using venue in automated flows — prefer publication types + fields of study .
Step 3: Fetch Details for a Specific Paper
When a single paper ID is requested:
Where PAPER ID can be:
DOI: 10.1109/TSP.2021.3071210
ArXiv: ARXIV:2006.10685
CorpusId: CorpusId:219792180
S2 ID: f9314fd99be5f2b1b3efcfab87197d578160d553
Step 4: De duplicate Against arXiv
For each result, check externalIds.ArXiv :
If present → paper is also on arXiv. Note this in output but do NOT re fetch via /arxiv .
If absent → paper is venue only (e.g. IEEE without preprint). This is the unique value of this skill.
Step 5: Present Results
Present results as a table:
For each paper, also show:
DOI link : https://doi.org/DOI (for IEEE/ACM papers, this is the canonical link)
Open Access PDF : if openAccessPdf.url is non empty, show it
TLDR : if available, show the one line summary
Also on arXiv : if externalIds.ArXiv exists, note the arXiv ID
Step 6: Detailed Summary
For each paper (or top 5 if many results):
Step 7: Update Research Wiki (if active)
Required when research wiki/ exists in the project ; skip silently
otherwise. When the wiki dir exists, resolve $WIKI SCRIPT per the
canonical chain at
[ shared references/wiki helper resolution.md ](../shared references/wiki helper resolution.md)
(Variant B — warn and skip). For results with an externalIds.ArXiv
field, use arxiv id ; for venue only papers (no arXiv mirror —
common for IEEE/ACM), fall back to manual metadata:
The helper handles slug / dedup / page / index / log — do not
handwrite papers/<slug .md . See
[ shared references/integration contract.md ](../shared references/integration contract.md).
Backfill with /research wiki sync arxiv ids <id1 ,<id2 ,... for
arXiv available papers.
Step 8: Final Output
Summarize what was done:
Found N published papers for "query"
Filters applied: [publication types, fields, year range, etc.]
N papers are venue only (not on arXiv)
Wiki ingested N papers (if research wiki/ was present)
Suggest follow up skills:
Key Rules
Default to filtered search : Always apply fields of study and publication types unless user says fields: all . Without filters, S2 returns cross discipline noise (linguistics, psychology, etc.).
Citation count is gold : S2's citation data is its main advantage over arXiv. Always show citationCount prominently and use it to rank/prioritize results.
Venue metadata matters : Show venue and publicationVenue.type (journal vs conference) — this helps users assess paper quality.
DOI is the canonical ID for published papers : Always show DOI links for IEEE/ACM/Springer papers.
Rate limiting : S2 API without key is heavily rate limited (~1 req/s, strict cooldown). If HTTP 429 occurs, wait and retry. Recommend users set SEMANTIC SCHOLAR API KEY env var for higher limits (free at https://www.semanticscholar.org/product/api api key form).
TLDR may be null : Some publishers (notably IEEE) elide the TLDR field. Fall back to showing the first sentence of the abstract.
openAccessPdf may be empty : Many IEEE papers are closed access. Always provide the DOI link as fallback.
If the S2 API is unreachable, suggest using /arxiv or /research lit "topic" sources: web as fallback.