Install the "academic-research-mapper" agent skill from https://github.com/tinyfish-io/tinyfish-cookbook/tree/main/skills/academic-research-mapper into .claude/skills/academic-research-mapper/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "academic-research-mapper", then confirm the skill loads.
Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Type this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
skills CLI
$ npx skills add tinyfish-io/tinyfish-cookbook --skill academic-research-mapper -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "academic-research-mapper" agent skill from https://github.com/tinyfish-io/tinyfish-cookbook/tree/main/skills/academic-research-mapper into .agents/skills/academic-research-mapper/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "academic-research-mapper", then confirm the skill loads.
Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add tinyfish-io/tinyfish-cookbook --skill academic-research-mapper -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "academic-research-mapper" agent skill from https://github.com/tinyfish-io/tinyfish-cookbook/tree/main/skills/academic-research-mapper into .cursor/skills/academic-research-mapper/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "academic-research-mapper", then confirm the skill loads.
Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add tinyfish-io/tinyfish-cookbook --skill academic-research-mapper -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "academic-research-mapper" agent skill from https://github.com/tinyfish-io/tinyfish-cookbook/tree/main/skills/academic-research-mapper into .gemini/skills/academic-research-mapper/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "academic-research-mapper", then confirm the skill loads.
Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Installs for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
skills CLI
$ npx skills add tinyfish-io/tinyfish-cookbook --skill academic-research-mapper -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "academic-research-mapper" agent skill from https://github.com/tinyfish-io/tinyfish-cookbook/tree/main/skills/academic-research-mapper into .github/skills/academic-research-mapper/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "academic-research-mapper", then confirm the skill loads.
GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add tinyfish-io/tinyfish-cookbook --skill academic-research-mapper -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "academic-research-mapper" agent skill from https://github.com/tinyfish-io/tinyfish-cookbook/tree/main/skills/academic-research-mapper into .opencode/skills/academic-research-mapper/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "academic-research-mapper", then confirm the skill loads.
OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Facts
Skill name
academic-research-mapper
GitHub stars
2.2k
Token cost
~3.5k tokens
SKILL.md length
911 words
Files
1
Skills in repo
28
Repo updated
First seen
Licence
MIT
At a glance
Map the research landscape for any technical or academic topic by searching arXiv, Semantic Scholar, and Google Scholar in parallel.
Works in 4 steps: Derive keywords and build URLs → Search all three sources in parallel → Handle sparse results (if needed) → …
Engineer wants to understand what has been published
SKILL.md covers Pre-flight Check (REQUIRED), What This Skill Does, Core Command and Keyword Strategy, plus 7 more sections
Calls npm; reaches arxiv.org and semanticscholar.org; needs TINYFISH_API_KEY
What it does
Academic Research Mapper is an agent skill from tinyfish-io/tinyfish-cookbook. Map the research landscape for any technical or academic topic by searching arXiv, Semantic Scholar, and Google Scholar in parallel. Use when a developer, researcher, or engineer wants to understand what has been published, who the key authors are, which subtopics are active, and where the gaps still live. Runs parallel TinyFish agents across all three sources, deduplicates results, and synthesizes findings into a structured landscape report with a gap analysis. Trigger this skill whenever someone wants to survey…
Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Research & Science, covering Academic paper search and Literature review. It works with arXiv, Semantic Scholar, Bash and PowerShell. The repository describes itself as: A collection of sample apps and recipes built with the TinyFish web agent. Open-source examples for you to learn & build! The licence is MIT.
When your agent uses it
Engineer wants to understand what has been published
Who the key authors are
Which subtopics are active
Where the gaps still live
Example prompts
“/academic-research-mapper”
Requirements
Node.js
A credential in TINYFISH_API_KEY
Workflow steps
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 292ee62. It shows what the files ask for, not the result of running them.
Tool permissions
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Runs code
Shell commands in SKILL.md call:
npm
From the folder's file list and the shell code blocks in SKILL.md.
Network
Hosts in commands or code, which the agent is likely to contact:
arxiv.org
semanticscholar.org
scholar.google.com
Also links to:
agent.tinyfish.ai
From URLs in SKILL.md, links to its own repository left out.
Credentials
Names these keys or tokens, usually read from environment variables:
TINYFISH_API_KEY
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Context cost
Academic Research Mapper loads about 3.5k tokens when it runs. Until then it costs about 172 tokens; SKILL.md has 911 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~172
When it runs· the whole SKILL.md, loaded when a task matches
~3.5k
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
Safety
Auto-check passed
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
Download SKILL.mdSave it as .claude/skills/academic-research-mapper/SKILL.md (or your agent's skills folder).
name
academic-research-mapper
description
Map the research landscape for any technical or academic topic by searching arXiv, Semantic Scholar, and Google Scholar in parallel. Use when a developer, researcher, or engineer wants to understand what has been published, who the key authors are, which subtopics are active, and where the gaps still live. Runs parallel TinyFish agents across all three sources, deduplicates results, and synthesizes findings into a structured landscape report with a gap analysis. Trigger this skill whenever someone wants to survey a field, prepare a literature review, find underexplored research directions, or understand the state of the art before building something new.
Research Landscape Mapper — Understand a Field Before You Build or Write
You have access to the TinyFish CLI (tinyfish), a tool that runs browser automations from the terminal using natural language goals. This skill uses it to search arXiv, Semantic Scholar, and Google Scholar in parallel, then synthesizes results into a structured landscape report with identified gaps.
Pre-flight Check (REQUIRED)
Before making any TinyFish call, always run BOTH checks:
1. CLI installed?
bash/zsh:
bash
which tinyfish && tinyfish --version || echo "TINYFISH_CLI_NOT_INSTALLED"
PowerShell:
powershell
Get-Command tinyfish; tinyfish --version
If not installed, stop and tell the user:
Install the TinyFish CLI: npm install -g @tiny-fish/cli
Given a research topic (e.g. "retrieval-augmented generation" or "protein structure prediction"), this skill:
Searches arXiv for preprints sorted by most recent — capturing what is being worked on right now
Searches Semantic Scholar for papers ranked by relevance with citation counts — identifying what the field considers important
Searches Google Scholar for broad coverage including published venues not yet on arXiv
It then deduplicates across all three sources by title similarity, clusters papers into subtopics, and synthesizes findings into a structured landscape report: what is well-studied, what is emerging, and where the gaps are.
Core Command
bash
tinyfish agent run --url <url> "<goal>"
Flags
Flag
Purpose
--url <url>
Target website URL for the agent to navigate
--sync
Wait for the full result before returning (required when you need output before next step)
--async
Submit and return a run ID immediately — use when firing parallel agents
--pretty
Human-readable formatted output for debugging
Keyword Strategy
The quality of results depends entirely on your search terms. Before running anything, derive 2–3 keyword variants from the topic. Each source has different vocabulary norms — academic terms work best on Semantic Scholar, shorter compressed terms work best on arXiv.
Topic
Primary keywords
Variant A
Variant B
Retrieval-augmented generation
retrieval augmented generation
RAG language model
dense retrieval QA
Protein structure prediction
protein structure prediction
AlphaFold protein folding
ab initio structure biology
Neural architecture search
neural architecture search
NAS automated machine learning
hyperparameter optimization deep learning
Federated learning privacy
federated learning
federated learning differential privacy
distributed training privacy
Use the primary keywords for the first parallel pass. If any source returns fewer than 5 results, run a second pass with the variant keywords on that source only.
Step-by-Step Workflow
Step 1 — Derive keywords and build URLs
Before running any agents, construct all three search URLs. Do this in your head or in a scratch note — do not make TinyFish calls yet.
Replace <keywords> with URL-encoded primary keywords (spaces become +).
Step 2 — Search all three sources in parallel
Fire all three agents simultaneously. Do NOT wait for one to finish before starting the next.
arXiv — sorted by most recent:
bash
tinyfish agent run --sync \
--url "https://arxiv.org/search/?query=retrieval+augmented+generation&searchtype=all&order=-announced_date_first" \
"Extract the top 15 search results as JSON: [{\"title\": str, \"authors\": [str], \"year\": str, \"abstract_snippet\": str (first 150 chars of abstract), \"arxiv_id\": str, \"url\": str}]. If a result has no year visible, use the submission date year."
Semantic Scholar — sorted by relevance with citation counts:
bash
tinyfish agent run --sync \
--url "https://www.semanticscholar.org/search?q=retrieval+augmented+generation&sort=Relevance" \
"Extract the top 15 search results as JSON: [{\"title\": str, \"authors\": [str], \"year\": str, \"citation_count\": str, \"venue\": str, \"abstract_snippet\": str (first 150 chars), \"url\": str}]. Scroll down to load more results if fewer than 10 are visible."
Google Scholar — broad coverage:
bash
tinyfish agent run --sync \
--url "https://scholar.google.com/scholar?q=retrieval+augmented+generation&as_sdt=0%2C5&hl=en" \
"Extract the top 15 search results as JSON: [{\"title\": str, \"authors\": [str], \"year\": str, \"citation_count\": str, \"venue\": str, \"snippet\": str, \"url\": str}]. Citation count appears after 'Cited by' — extract that number."
Show full SKILL.md (366 more words)Show less
Parallel Execution
All three source searches are fully independent. Always fire them simultaneously.
Good — parallel calls (fire and wait):
bash
tinyfish agent run --sync \
--url "https://arxiv.org/search/?query=retrieval+augmented+generation&searchtype=all&order=-announced_date_first" \
"Extract the top 15 results as JSON: [{\"title\": str, \"authors\": [str], \"year\": str, \"abstract_snippet\": str, \"arxiv_id\": str, \"url\": str}]" > /tmp/arxiv_results.json &
tinyfish agent run --sync \
--url "https://www.semanticscholar.org/search?q=retrieval+augmented+generation&sort=Relevance" \
"Extract the top 15 results as JSON: [{\"title\": str, \"authors\": [str], \"year\": str, \"citation_count\": str, \"venue\": str, \"abstract_snippet\": str, \"url\": str}]" > /tmp/s2_results.json &
tinyfish agent run --sync \
--url "https://scholar.google.com/scholar?q=retrieval+augmented+generation&as_sdt=0%2C5&hl=en" \
"Extract the top 15 results as JSON: [{\"title\": str, \"authors\": [str], \"year\": str, \"citation_count\": str, \"venue\": str, \"snippet\": str, \"url\": str}]" > /tmp/scholar_results.json &
wait
echo "All three sources complete."
Bad — sequential calls:
bash
# Do NOT do this — triples the wait time for no benefit
tinyfish agent run --url "https://arxiv.org/..." "search arxiv, then also search semantic scholar, then also search google scholar"
Each source is always its own separate call. Never combine them into one goal.
Step 3 — Handle sparse results (if needed)
After the parallel run completes, check each result set. If any source returned fewer than 5 papers, run a second pass on that source with variant keywords:
bash
# Example: arXiv returned only 3 results for primary keywords
tinyfish agent run --sync \
--url "https://arxiv.org/search/?query=RAG+language+model&searchtype=all&order=-announced_date_first" \
"Extract the top 15 results as JSON: [{\"title\": str, \"authors\": [str], \"year\": str, \"abstract_snippet\": str, \"arxiv_id\": str, \"url\": str}]"
Do not run second passes if the primary pass was already rich — this wastes steps.
Step 4 — Synthesize into a Landscape Report
Once all three sources have returned results, synthesize findings into this structure. Use only data that TinyFish actually returned — do not hallucinate paper titles, citation counts, or author names.
## Research Landscape: <topic>
### Volume & Coverage
- arXiv: <N> papers found, most recent: <year>
- Semantic Scholar: <N> papers found, highest citations: <N> (paper title)
- Google Scholar: <N> papers found
- Unique papers after deduplication: <N>
### Key Papers (sorted by citation count)
1. <Title> — <Authors>, <Year>, <Venue if known> — <citation_count> citations
<one-sentence summary from abstract snippet>
2. ...
(list top 8–10 unique papers)
### Active Subtopics
Cluster the papers by what they are actually about. Label each cluster with a short name.
- **<Subtopic A>**: <N> papers — <1-sentence description of what this cluster covers>
- **<Subtopic B>**: <N> papers — ...
- **<Subtopic C>**: <N> papers — ...
### Key Authors & Groups
- <Author name> — <N> papers in results, affiliated with <institution if visible>
- ...
(list authors appearing 2+ times across the results)
### Recency Signal
- Papers from last 12 months: <N>
- Papers from last 3 years: <N>
- Oldest paper in results: <year>
- Trend: <accelerating / stable / declining> (infer from year distribution)
### Gaps & Open Directions
Based on what the papers cover and what they do not:
- **Gap 1**: <specific thing that is missing or underexplored>
- **Gap 2**: ...
- **Gap 3**: ...
### Landscape Verdict
<2–3 sentences: is this field crowded or open, mature or nascent, dominated by a few groups or distributed, and what is the single most underexplored angle?>
Deduplication Rules
Papers appear across multiple sources. Before synthesizing, deduplicate using these rules in order:
Exact title match (case-insensitive) → keep one, prefer the Semantic Scholar entry (has citation count)
Title similarity > 85% (same words, different punctuation) → treat as the same paper
Same arXiv ID → always the same paper regardless of title variation
If unsure, keep both and note the possible duplicate in the report
Subtopic Clustering Guide
Group papers by reading their abstract snippets, not just their titles. Common cluster patterns:
If papers discuss...
Cluster label
Benchmarks, evaluation datasets, metrics
"Evaluation & benchmarks"
New model architectures or training methods
"Model architecture"
Application to a specific domain (medical, legal, code)
"Domain adaptation: <domain>"
Efficiency, speed, compression, cost
"Efficiency & scaling"
Safety, alignment, robustness, hallucination
"Safety & reliability"
Surveys, meta-analyses, overviews
"Surveys & overviews"
A paper can belong to at most two clusters. Name the clusters based on what you actually see, not these defaults if the topic warrants different ones.
Managing Runs
bash
# List recent runs (useful if a run takes longer than expected)
tinyfish agent run list
# Get the full output of a specific run by ID
tinyfish agent run get <run_id>
# Cancel a run that is taking too long
tinyfish agent run cancel <run_id>
Output Format
The CLI streams data: {...} SSE lines by default. The final usable result is the event where type == "COMPLETE" and status == "COMPLETED" — the extracted data is in the resultJson field. Read the raw output directly; no script-side parsing is required.
When saving to files with > redirection as shown in the parallel example, the full SSE stream is saved. Extract the JSON by looking for the last line containing "COMPLETED" and parsing the resultJson value from it.
Example: Full Run for "Mixture of Experts"
bash
# Step 1 — fire all three in parallel
tinyfish agent run --sync \
--url "https://arxiv.org/search/?query=mixture+of+experts+transformer&searchtype=all&order=-announced_date_first" \
"Extract top 15 results as JSON: [{\"title\": str, \"authors\": [str], \"year\": str, \"abstract_snippet\": str, \"arxiv_id\": str, \"url\": str}]" \
> /tmp/moe_arxiv.json &
tinyfish agent run --sync \
--url "https://www.semanticscholar.org/search?q=mixture+of+experts+transformer&sort=Relevance" \
"Extract top 15 results as JSON: [{\"title\": str, \"authors\": [str], \"year\": str, \"citation_count\": str, \"venue\": str, \"abstract_snippet\": str, \"url\": str}]" \
> /tmp/moe_s2.json &
tinyfish agent run --sync \
--url "https://scholar.google.com/scholar?q=mixture+of+experts+LLM&as_sdt=0%2C5&hl=en" \
"Extract top 15 results as JSON: [{\"title\": str, \"authors\": [str], \"year\": str, \"citation_count\": str, \"venue\": str, \"snippet\": str, \"url\": str}]" \
> /tmp/moe_scholar.json &
wait
# Step 2 — synthesize
# Read /tmp/moe_arxiv.json, /tmp/moe_s2.json, /tmp/moe_scholar.json
# Deduplicate → cluster → produce landscape report
Academic Research Mapper next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
Academic Research Mapper compared with similar skills
Skill
Stars
Used in
Tokens
Auto-check
Licence
Repo updated
Academic Research Mapper this skilltinyfish-io/tinyfish-cookbook
Default browser automation agent — click, fill forms, navigate, log in, and extract structured data from any website using a natural-language goal, or run the same task across multiple sites in…
Reverse-engineer what a company is building by scraping their job postings, careers page, LinkedIn Jobs, and engineering blog using TinyFish web agents.
Check every dependency in a package.json against live CVE databases and security advisories in real time — specifically targeting vulnerabilities disclosed in the last 48 hours, the window that…
Scrape real developer pain points for any keyword, technology, or problem space from Reddit, Hacker News, dev.to, and GitHub Discussions simultaneously — then group complaints by theme, score them…
Map the research landscape for any technical or academic topic by searching arXiv, Semantic Scholar, and Google Scholar in parallel. Academic Research Mapper is an agent skill from tinyfish-io/tinyfish-cookbook. Map the research landscape for any technical or academic topic by searching arXiv, Semantic Scholar, and Google Scholar in parallel.
When should I use Academic Research Mapper?
Academic Research Mapper fits situations like: engineer wants to understand what has been published; who the key authors are; which subtopics are active; where the gaps still live.
How do I install Academic Research Mapper in Claude Code?
Run `npx skills add tinyfish-io/tinyfish-cookbook --skill academic-research-mapper -a claude-code`. Or copy the skill folder (skills/academic-research-mapper in tinyfish-io/tinyfish-cookbook) into .claude/skills/academic-research-mapper in your project. Claude Code loads it when a task matches its description.
How do I install Academic Research Mapper in Codex?
Run `npx skills add tinyfish-io/tinyfish-cookbook --skill academic-research-mapper -a codex`. Or copy the skill folder (skills/academic-research-mapper in tinyfish-io/tinyfish-cookbook) into .agents/skills/academic-research-mapper in your project. Codex loads it when a task matches its description.
Can I use Academic Research Mapper in Cursor, Gemini CLI or GitHub Copilot?
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add tinyfish-io/tinyfish-cookbook --skill academic-research-mapper -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/academic-research-mapper, .gemini/skills/academic-research-mapper, .github/skills/academic-research-mapper and .opencode/skills/academic-research-mapper in your project.
What does Academic Research Mapper need to run?
Going by SKILL.md and its folder, Academic Research Mapper needs the command-line tools its instructions call (npm) and credentials named TINYFISH_API_KEY. Our summary lists: Node.js; A credential in TINYFISH_API_KEY.
Does Academic Research Mapper access the network?
SKILL.md names 4 domains. In commands or code: arxiv.org, semanticscholar.org and scholar.google.com; the agent is likely to contact these when it follows the instructions. As links in the text: agent.tinyfish.ai. This is read from the text; nothing was executed.
Is Academic Research Mapper safe to install?
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
What licence does Academic Research Mapper use?
Academic Research Mapper is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
How many tokens does Academic Research Mapper use?
About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
What are the alternatives to Academic Research Mapper?
Skills that share tags, products or a category with Academic Research Mapper: Literature Review (neflibata-feng/MyArxiv-Agent, 126 stars), Paper Research on arXiv (XiaomiMiMo/MiMo-Code, 14k stars), Literature Review Agent (Ar9av/PaperOrchestra, 677 stars) and Paper Autoraters (Ar9av/PaperOrchestra, 677 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Academic Research Mapper?
tinyfish-io (a GitHub organization) maintains it in tinyfish-io/tinyfish-cookbook, which has 2,223 GitHub stars. The repository holds 28 skills in this directory. The repository was last updated on October 1, 2026.
Source: tinyfish-io/tinyfish-cookbook on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.