CommunityCoding & Developmentgithub.com

multi-source-extractor

When a user provides a query term (not a specific URL) and requests information from multiple sources to be searched and consolidated. For example: 'Help me find the latest updates on a policy' or 'Compare a certain data point from several sources.' Not applicable when the user already provides a specific URL — that case is handled by web-extractor.

What is multi-source-extractor?

The multi-source-extractor skill enables an AI agent to autonomously search the web for a user-provided query term, fetch content from multiple relevant sources in parallel, and extract structured fields from each page (e.g., date, source name, key facts/numbers). It then consolidates the extracted data into a unified table, highlighting consensus and conflicts across sources. This skill is designed for scenarios where a user wants aggregated, multi-source intelligence (e.g., policy updates, competitor pricing) rather than summarizing a single page. It works with any agent that has `web_search` and `web_fetch` tools and cleanly handles partial failures by reporting missing fields or failed fetches without fabricating data.

Works with~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/dji-sq/DSH-skill/tree/HEAD/multi-source-extractor

Installed? Explore more Coding & Development skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

Multi-Source Field Extraction Process

Step 1: Check Tool Availability

Confirm that the current session has both web_search and web_fetch tools. If either is missing, inform the user which tool is unavailable and stop the process.

Step 2: Search and Filter Sources

Call web_search using the user's original query. From the results, select 3~5 sources, prioritizing:

  • Official sources (government ministry websites, corporate announcements, official statistics pages)
  • Authoritative media (portal news, industry vertical media) Exclude clearly irrelevant ads, forum posts, and aggregator pages.

Step 3: Parallel Fetching

Call web_fetch for each selected URL. Issue all calls concurrently in a single response, not sequentially. If a URL fetch fails, log the failure reason and continue processing the remaining URLs.

Step 4: Extract Fields

From each successfully fetched page, extract the following fields:

  • Date: The date directly related to the query topic (e.g., pricing change date, publication date). Do not extract footer copyright years.
  • Source Name: The institution or media name to which the page belongs.
  • Key Values/Facts: Specific numbers or conclusions directly related to the query topic (e.g., "increased by XX yuan/ton"). If a page lacks a certain field, mark it as "not found" — do not fabricate.

Step 5: Consolidate Output

Output in a table format, one row per source:

SourceDateKey Values/FactsFetch Status

Append after the table: Consensus Information: If multiple sources agree on the same fact, list it. Conflicting Information: If values or dates differ across sources, list them and annotate each with its source.

Boundaries

  • Do not summarize the full page content; only extract fields relevant to the query topic.
  • If all sources fail to fetch, directly report the failure; do not use search result snippets as substitutes for page content.
  • Do not recommend which source the user should consult; only perform information consolidation.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Related Skills