Ingest Web Links
Use this skill when the user already has one or more URLs and wants them pulled into the ScholarAIO library as document-style records.
When to Use
Use this skill when the user wants to:
- ingest a webpage directly into the local knowledge base
- ingest an online PDF or report from a URL
- capture technical documentation, standards, manuals, or web articles as
document items
- route rendered web content through the normal ScholarAIO ingest/index flow
Do not use this skill when:
- the task is only to search the local library; use
search
- the task is mainly about arXiv preprints; use
arxiv
- the user only wants broad web discovery without ingesting; use external web search first, then come back if ingestion is desired
Core Workflow
1. Confirm the source shape
- If the user already provides URL(s), go straight to
scholaraio ingest-link
- If the user only has a topic but no URL, discover URLs first through the host agent's native web search, then ingest selected results
2. Use the CLI entrypoint
Basic ingestion:
scholaraio ingest-link https://example.com/page
scholaraio ingest-link https://example.com/page https://example.com/report.pdf
Preview only:
scholaraio ingest-link https://example.com/page --dry-run
Ingest without rebuilding indexes immediately:
scholaraio ingest-link https://example.com/page --no-index
Force PDF extraction mode when the backend needs a hint:
scholaraio ingest-link https://example.com/report.pdf --pdf
3. Keep the backend model clear
- ScholarAIO does not render webpages itself in this flow
- It depends on an external
qt-web-extractor service
- The value of that service is rendered-content extraction, not just raw HTML download
- Default HTTP endpoint:
http://127.0.0.1:8766
- Preferred MCP endpoint:
http://127.0.0.1:8766/mcp
- Prefer
config.yaml -> webextract.transport: mcp plus webextract.mcp_url / webextract.mcp_tool
- HTTP fallback uses
webextract.base_url / webextract.api_key
- Environment variables
WEBEXTRACT_TRANSPORT, WEBEXTRACT_MCP_URL, WEBEXTRACT_URL, and WEBEXTRACT_API_KEY still work as overrides
4. Understand what gets stored
- The extracted page is written into a temporary document inbox
- ScholarAIO reuses the existing document ingest flow
- Final records stay in the current
document family, not a separate webdocument type
- Provenance fields such as
source_url, source_type, and extraction_method are preserved in meta.json
- If the extractor returns rendered HTML, ScholarAIO discovers image references, downloads reachable images into a local
images/ directory during ingest, and rewrites Markdown links to local relative paths.
- If an image download fails because of access control, SSL, 404, or similar issues, ScholarAIO keeps the original external URL in the Markdown instead of breaking the content.
Practical Heuristics
- Prefer
--no-index when ingesting many links and you plan to rebuild once at the end
- Let the backend auto-detect normal web pages and PDF URLs first; prefer
--pdf only when detection seems unreliable
- If the backend is unavailable, report that clearly instead of pretending ScholarAIO can fetch/render the page alone
Output Style
- Make it clear that the content came from a URL rather than a local file
- Mention the source URL in summaries when it matters
- If ingestion fails, surface the backend/service reason directly
1---2name: ingest-link3description: Use when the user wants to ingest web URLs, online PDFs, rendered web pages, standards, manuals, or articles through qt-web-extractor into the normal document-ingest workflow.4---56# Ingest Web Links78Use this skill when the user already has one or more URLs and wants them pulled into the ScholarAIO library as document-style records.910## When to Use1112Use this skill when the user wants to:1314- ingest a webpage directly into the local knowledge base15- ingest an online PDF or report from a URL16- capture technical documentation, standards, manuals, or web articles as `document` items17- route rendered web content through the normal ScholarAIO ingest/index flow1819Do not use this skill when:2021- the task is only to search the local library; use `search`22- the task is mainly about arXiv preprints; use `arxiv`23- the user only wants broad web discovery without ingesting; use external web search first, then come back if ingestion is desired2425## Core Workflow2627### 1. Confirm the source shape2829- If the user already provides URL(s), go straight to `scholaraio ingest-link`30- If the user only has a topic but no URL, discover URLs first through the host agent's native web search, then ingest selected results3132### 2. Use the CLI entrypoint3334Basic ingestion:3536```bash37scholaraio ingest-link https://example.com/page38scholaraio ingest-link https://example.com/page https://example.com/report.pdf39```4041Preview only:4243```bash44scholaraio ingest-link https://example.com/page --dry-run45```4647Ingest without rebuilding indexes immediately:4849```bash50scholaraio ingest-link https://example.com/page --no-index51```5253Force PDF extraction mode when the backend needs a hint:5455```bash56scholaraio ingest-link https://example.com/report.pdf --pdf57```5859### 3. Keep the backend model clear6061- ScholarAIO does not render webpages itself in this flow62- It depends on an external `qt-web-extractor` service63- The value of that service is rendered-content extraction, not just raw HTML download64- Default HTTP endpoint: `http://127.0.0.1:8766`65- Preferred MCP endpoint: `http://127.0.0.1:8766/mcp`66- Prefer `config.yaml -> webextract.transport: mcp` plus `webextract.mcp_url` / `webextract.mcp_tool`67- HTTP fallback uses `webextract.base_url` / `webextract.api_key`68- Environment variables `WEBEXTRACT_TRANSPORT`, `WEBEXTRACT_MCP_URL`, `WEBEXTRACT_URL`, and `WEBEXTRACT_API_KEY` still work as overrides6970### 4. Understand what gets stored7172- The extracted page is written into a temporary document inbox73- ScholarAIO reuses the existing document ingest flow74- Final records stay in the current `document` family, not a separate `webdocument` type75- Provenance fields such as `source_url`, `source_type`, and `extraction_method` are preserved in `meta.json`76- If the extractor returns rendered HTML, ScholarAIO discovers image references, downloads reachable images into a local `images/` directory during ingest, and rewrites Markdown links to local relative paths.77- If an image download fails because of access control, SSL, 404, or similar issues, ScholarAIO keeps the original external URL in the Markdown instead of breaking the content.7879## Practical Heuristics8081- Prefer `--no-index` when ingesting many links and you plan to rebuild once at the end82- Let the backend auto-detect normal web pages and PDF URLs first; prefer `--pdf` only when detection seems unreliable83- If the backend is unavailable, report that clearly instead of pretending ScholarAIO can fetch/render the page alone8485## Output Style8687- Make it clear that the content came from a URL rather than a local file88- Mention the source URL in summaries when it matters89- If ingestion fails, surface the backend/service reason directly