advanced-web-search
Skill2 starsChanged 4 months agoMITView on GitHub
Source discovery - find high-quality candidate URLs with Google operators rendered in a real Chrome session, multi-query strategies, and source-quality triage, emitting deduplicated lead JSON. Use when a task needs to locate official docs, papers, code repositories, community evidence, recent posts, or competitive sources with more precision than a plain keyword search, or when deep-research runs its discovery phase.
In this repository4 other files it gives its agents.
- crawl4aiSkill
- deep-researchSkill
- wiki-ingestSkill
- wiki-lintSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
14 rules. About 0 are common, 10 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈10
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 10
Use this skill to discover high-quality candidate sources.
- Very specific: line 16
Use search operators where supported: site:, filetype:, after:, before:, quoted phrases, boolean OR, exclusions, intitle:, inurl:, and …
- Very specific: line 17
Run broad, primary-source, technical/paper/code, community, risk/counter-evidence, and recent-update queries as relevant.
- Distinctive: line 44
Use Google operators directly in the query:
- Very specific: line 58
When Google operators are too loose, use local URL filters such as --require-url-regex "/(?:status|article)/\\d+" for X post-only result …
- Distinctive: line 61
If OpenCLI is unavailable, say so explicitly and fix/install OpenCLI when possible.
- Distinctive: line 85
Prefer official, primary, and direct sources.
- Distinctive: line 89
After discovery, verify material facts from direct sources whenever possible:
- Distinctive: line 97
If an important source is blocked or JavaScript-only, try an alternate endpoint, browser view, official API, or reader mirror.
- Very specific: line 103
Run scripts/opencli_google_search.py with precise Google operators and --output outputs/<topic>.json.
- Distinctive: line 106
Read the captured raw markdown files.
- Distinctive: line 107
Write the final Hermes brief from the raw evidence.
- Distinctive: line 109
Do not skip the saved JSON handoff when the user asks for deep research or bulk links.
- Distinctive: line 113
Read these only when needed:
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Advanced Web Search
Overview
Use this skill to discover high-quality candidate sources. Use the bundled OpenCLI Google backend by default for repeatable Google-operator discovery and saved JSON output. Other search, browser, HTTP, API, terminal, or MCP tools are fallbacks or verification aids. Search results are discovery leads, not evidence.
Core Workflow
- Clarify the search target, constraints, freshness needs, and source classes.
- Build several targeted query classes instead of one broad query.
- Use search operators where supported:
site:,filetype:,after:,before:, quoted phrases, booleanOR, exclusions,intitle:,inurl:, andintext:. - Run broad, primary-source, technical/paper/code, community, risk/counter-evidence, and recent-update queries as relevant.
- Triage candidate URLs by source type, credibility, relevance, date, and extraction feasibility.
- Hand off the selected source list to direct fetching, crawling, browser inspection, or the
deep-researchskill if synthesis is needed.
Required Search Tool
For repeatable source discovery, use the OpenCLI Google backend by default. Do not use a harness built-in web search as the primary discovery step for deep research when this script is available. Do not rely on terminal JSON redirection; always pass --output <path> so the result file is UTF-8 JSON and can be handed to deep-research.
python scripts/opencli_google_search.py \
--query "Hermes Agent NousResearch site:github.com" \
--max-results 20 \
--pages 6 \
--output outputs/hermes_agent_sources.jsonFiles:
scripts/opencli_google_search.py- default Advanced Web Search backend. It uses OpenCLI's browser bridge to render Google in Chrome, supports Google operators andstart=pagination, deduplicates canonical URLs, and writes clean JSON for any website with best-effort site metadata for common social, news, code, official, and research domains.scripts/opencli_network_probe.py- optional: scores likely JSON/list endpoints behind a dynamic page. Usage inreferences/dynamic-page-loading.md.scripts/opencli_api_paginate.py- optional: paginates a probe-found JSON endpoint in Chrome with cookies. Usage inreferences/dynamic-page-loading.md.scripts/google_opencli_x_search.py- Google result pagination through OpenCLI's logged-in Chrome bridge for X/Twitter result discovery. Use when raw Google HTML is blocked or when you need clean X post JSON with canonical URL, title, approximate likes, and X snowflake timestamp.scripts/operator_registry.py- operator parsing, validation, and query construction.scripts/test_opencli_google_search.py- offline tests for the default OpenCLI Google backend.
The OpenCLI scripts require Python, Node.js, @jackwener/opencli, the OpenCLI Chrome extension, and a passing opencli doctor.
Use Google operators directly in the query:
python scripts/opencli_google_search.py \
--query "hermes agent after:2026-07-04 site:x.com" \
--max-results 20 \
--pages 6 \
--after 2026-07-04 \
--strict-dates \
--output outputs/hermes_agent_x.jsonFor multi-query discovery, pass repeated --query values or a --query-file; --max-results is a global unique-link cap and the script stops as soon as that cap is reached.
The OpenCLI Google helpers request 20 Google results per page by default (--num 20) while advancing Google offsets by 10 by default (--page-stride 10: start=0, start=10, start=20). They stop the current query immediately if Google renders a no-results page.
When Google operators are too loose, use local URL filters such as --require-url-regex "/(?:status|article)/\\d+" for X post-only result sets.
Exit codes: 0 all queries succeeded, 2 Google served a block/challenge page, 3 some queries failed on tool errors. On 2 and 3 the --output JSON is still written with results collected so far; check stderr and record the shortfall.
If OpenCLI is unavailable, say so explicitly and fix/install OpenCLI when possible. Use other harness search tools only as a fallback or for verification, and label that deviation.
Query Classes
- Official/primary:
site:<official-domain> <topic> docs,<product> release notes,<standard> official guidance - Code/project:
site:github.com <topic> README OR docs,<project> issues limitations - Academic/technical:
<topic> paper benchmark evaluation,<topic> arxiv,<topic> methodology dataset - Community/user evidence:
site:reddit.com <topic> experience,site:news.ycombinator.com <topic>,<topic> forum workaround - Risks/counter-evidence:
<topic> limitations,<topic> criticism,<topic> failure cases,<topic> not working - Recent updates:
<topic> after:YYYY-MM-DD,<topic> changelog <year>,<topic> release notes <year> - Competitive/market:
<product> alternatives,<vendor> pricing,<market> vendors comparison
Source Triage
For each useful result, record:
- URL and title
- Source type: official docs, primary data, code repository, paper, standard/regulator, filing, community, news, secondary analysis, SEO/low-quality
- Credibility: high, medium, or low
- Relevance: high, medium, or low
- Date or version signal if freshness matters
- Extraction status: not fetched, fetched, partial, blocked, or low-content
- Reason for inclusion or exclusion
Prefer official, primary, and direct sources. Use SEO pages and AI-generated summaries only as leads.
Direct Verification Handoff
After discovery, verify material facts from direct sources whenever possible:
- GitHub raw files:
https://raw.githubusercontent.com/<org>/<repo>/<branch>/<path> - GitHub releases, issues, commits, and API endpoints for software behavior and dates
- Hugging Face model/dataset APIs for model metadata
- arXiv abstract, HTML, and PDF pages for papers
- Regulator, standards, filing, license, pricing, and official documentation pages
If an important source is blocked or JavaScript-only, try an alternate endpoint, browser view, official API, or reader mirror. Label blocked or partial sources clearly.
Deep Research Handoff
For deep research, the normal pipeline is:
- Run
scripts/opencli_google_search.pywith precise Google operators and--output outputs/<topic>.json. - Confirm the JSON file exists and contains the requested number of unique candidate URLs, or record the shortfall.
- Pass that JSON to
deep-research/scripts/batch_capture.py --search-json <json>. - Read the captured raw markdown files.
- Write the final Hermes brief from the raw evidence.
Do not skip the saved JSON handoff when the user asks for deep research or bulk links.
References
Read these only when needed:
references/operator-guide.mdfor operator syntax and examples.references/opencli-google-backend.mdfor Advanced Web Search 2.0 setup, JSON schema, pagination, site metadata, and limitations.references/dynamic-page-loading.mdfor the fastest safe way to collect full result lists from APIs, paginated pages, or infinite-scroll pages.
Output
For standalone use, return a compact search packet:
## Search strategy
- ...
## Candidate sources
| Source | URL | Type | Credibility | Relevance | Status | Notes |
|---|---|---|---|---|---|---|
## Recommended verification targets
- ...
## Queries run
- ...Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

