scraperapi-research-agent skill
scriptsPerforms autonomous web research by scraping sources via ScraperAPI and synthesizing them into cited markdown reports using Claude.
- GitHub stars
- 10
- Files
- 3
- Last commit
- Aug 7, 2026
- License
- MIT
- Allowed tools
- —
What does the scraperapi-research-agent skill do?
scraperapi-research-agent performs autonomous web research by scraping sources via ScraperAPI and synthesizing them into cited markdown reports using Claude.
Summary generated from the skill's SKILL.md.
About the scraperapi-research-agent skill
Conducting deep web investigations and generating cited reports is what this agent enables for researchers and developers. When an agent needs to move beyond its internal training data to find real-time information, it can load this skill to perform an autonomous research loop. The process begins by decomposing a user question into search queries, using ScraperAPI to discover and fetch web content in markdown format, and then uploading those pages to the Anthropic Files API as text artifacts.
Claude then synthesizes these uploaded documents into a structured markdown report that includes an executive summary, organized findings, and inline citations. The tool relies on ScraperAPI for web discovery and the Anthropic Files API for document ingestion. Users can control the scope of the research using parameters like max-sources to manage ScraperAPI credit consumption and the output flag to save the final report to a file.
What an agent can do with it
- 1Perform deep dives on web topicsRequest an investigation into a complex subject using real web sources rather than model memory.
Written from the skill's SKILL.md. Every use case is checked against a quote from it.
How to install the scraperapi-research-agent skill
Each command copies the skill folder into the client's skills directory. Restart the client or start a new session to load it.Install the scraperapi-research-agent skill in Claude Code
~/.claude/skills/scraperapi-research-agent/SKILL.md
$ npx degit scraperapi/scraperapi-skills/skills/scraperapi-research-agent ~/.claude/skills/scraperapi-research-agentInstall the scraperapi-research-agent skill in Claude Code (project)
.claude/skills/scraperapi-research-agent/SKILL.md
$ npx degit scraperapi/scraperapi-skills/skills/scraperapi-research-agent .claude/skills/scraperapi-research-agentInstall the scraperapi-research-agent skill in Codex
~/.agents/skills/scraperapi-research-agent/SKILL.md
$ npx degit scraperapi/scraperapi-skills/skills/scraperapi-research-agent ~/.agents/skills/scraperapi-research-agentInstall the scraperapi-research-agent skill in Gemini CLI
~/.gemini/skills/scraperapi-research-agent/SKILL.md
$ npx degit scraperapi/scraperapi-skills/skills/scraperapi-research-agent ~/.gemini/skills/scraperapi-research-agentInstall the scraperapi-research-agent skill in Claude.ai
npx degit scraperapi/scraperapi-skills/skills/scraperapi-research-agent scraperapi-research-agent && zip -r scraperapi-research-agent.zip scraperapi-research-agent # claude.ai → Customize → Skills → + → Create skill → Upload a skill → scraperapi-research-agent.zip
SKILL.md
View on GitHubScraperAPI Research Agent
End-to-end autonomous research: ScraperAPI finds and fetches sources → Anthropic Files API ingests them as cited documents → Claude synthesizes a report.
Run it:
# Install dependencies
pip install requests anthropic
# Set env vars
export SCRAPERAPI_API_KEY=your-key
export ANTHROPIC_API_KEY=your-key
# Run
python skills/scraperapi-research-agent/scripts/research_agent.py \
--question "What are the best practices for rate limiting in web APIs?" \
--max-sources 5 \
--output report.md
See scripts/research_agent.py for the full implementation.
Planning Checklist
Before starting a research run, establish:
- Question clarity — Is the question specific enough to produce useful search queries? Vague questions like "tell me about AI" produce noise. Better: "What are the tradeoffs between RAG and fine-tuning for domain-specific LLMs?"
- Source count — How many sources are needed? 3–5 is usually sufficient for a factual summary; 8–10 for a comparative analysis. More sources = more ScraperAPI credits.
- Recency — Does the answer depend on recent events? Search queries will use recent date filters.
- Credit budget — Each source costs ~1 credit to scrape (more with JS rendering). 5 sources = ~5–10 credits total.
- Stop condition — Define when to stop. The default stop is
--max-sources(5). Do not loop indefinitely.
Research Loop
1. PLAN
↓ Claude decomposes the question into 2–3 targeted search queries
2. DISCOVER
↓ ScraperAPI google/search structured endpoint → list of (url, title, snippet)
3. DEDUPLICATE
↓ Filter to top N unique URLs (default: 5), skipping PDFs and low-quality domains
4. FETCH
↓ ScraperAPI scrape each URL as markdown (output_format=markdown)
↓ Skip pages returning < 200 characters (blocked, error pages)
5. UPLOAD
↓ Upload each scraped page to Anthropic Files API as a text/plain artifact
↓ Store file_id for each source
6. SYNTHESIZE
↓ Claude (claude-opus-4-8, adaptive thinking) reads all document artifacts
↓ Returns structured report with inline citations [1], [2]...
7. CLEAN UP
↓ Delete uploaded file artifacts from Anthropic
↓ Write or print the final report
STOP when: max_sources reached, or all queries exhausted (whichever comes first).
Stop Conditions
The agent stops when any of the following is true:
--max-sourcesreached (default: 5) — limits credit spend- All search queries exhausted — no more URLs to explore
--max-creditsexceeded — hard cap on ScraperAPI credit use (optional)
Without stop conditions, a research loop will keep fetching until credits are gone.
Key Parameters
| Flag | Default | Description |
|---|---|---|
--question |
(required) | Research question |
--max-sources |
5 | Max pages to scrape (credit budget) |
--output |
stdout | Write report to file |
--country |
us |
ScraperAPI country code for geo-targeted results |
--model |
claude-opus-4-8 |
Anthropic model for synthesis |
Output Format
See assets/report_template.md for the report structure.
The report is a markdown document with:
- Title derived from the research question
- Summary — 2–3 sentence executive summary
- Findings — structured sections with inline
[N]citations - Sources — numbered bibliography with URLs and titles
Credit Cost Estimate
| Sources | Scraping credits | Anthropic tokens | Total estimate |
|---|---|---|---|
| 3 | ~3 | ~15K in / ~2K out | Low |
| 5 | ~5 | ~25K in / ~3K out | Medium |
| 10 | ~10 | ~50K in / ~5K out | Higher |
Prompt caching applies to the scraped content on repeated runs for the same question.
ScraperAPI Endpoints Used
- Google Search —
GET https://api.scraperapi.com/structured/google/search— finds source URLs - Scrape —
GET https://api.scraperapi.com/?output_format=markdown— fetches page content
See ScraperAPI docs for rate limits and credit costs.
Anthropic APIs Used
- Files API (beta) — uploads scraped pages as document artifacts
- Messages API — Claude synthesizes the report with citations
Requires ANTHROPIC_API_KEY with access to claude-opus-4-8 and the Files API beta.
Files in this skill
3scraperapi-research-agent skill questions
How do I install the scraperapi-research-agent skill in Claude Code?
Run npx degit scraperapi/scraperapi-skills/skills/scraperapi-research-agent ~/.claude/skills/scraperapi-research-agent. Claude Code loads skills from ~/.claude/skills (all projects) or .claude/skills (one project) and uses a skill when its description matches the task.
Which clients can use the scraperapi-research-agent skill?
Any client that reads the Agent Skills format: Claude Code, Codex, Gemini CLI and claude.ai (upload as a ZIP). Scripts in the skill run only where the client allows code execution.
What does the research agent produce?
It produces a structured markdown report that includes a title, executive summary, findings with inline citations, and a numbered bibliography.
How does the agent control its resource usage?
The agent uses stop conditions such as reaching a maximum number of sources, exhausting search queries, or hitting a credit cap to prevent infinite loops.
Which APIs are required to run this skill?
The skill requires both a ScraperAPI key for web scraping and an Anthropic API key for document synthesis.