research-corpus-search

Search thousands of PDFs for terms and named entities using PyMuPDF, outputting matches.csv and report.txt.

Updated Jun 10, 2026
One-click install
npx skills add https://github.com/david-bieri/bieri-ai --skill research-corpus-search
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: research-corpus-search
Source: https://github.com/david-bieri/bieri-ai/tree/main/skills/research-corpus-search
Command: npx skills add https://github.com/david-bieri/bieri-ai --skill research-corpus-search

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires pymupdf, tqdm, and includes scripts (resource) components.

What problem does it solve?

This skill enables rapid, scalable searching of large PDF archives to locate mentions of terms or named entities, producing structured results and human-readable summaries.

Core Features & Use Cases

  • Parallel text search across thousands of PDFs using PyMuPDF, with per-file summaries and disambiguation.
  • Output artifacts: matches.csv, report.txt, and unreadable.txt for OCR candidates.
  • Use Case: Find all mentions of a person in a 12,000-document corpus and export a per-document hits report for citation tracking.

Quick Start

Run the search_corpus.py script against your PDF root with one or more terms and optional excludes; specify an output directory to generate the CSV and report.

Frequently Asked Questions about research-corpus-search

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I search for specific terms across thousands of PDF files?

To search a large PDF archive, run the search script against a root PDF folder with your target terms. It processes thousands of PDFs in parallel and outputs a structured matches.csv, report.txt, and unreadable.txt.

What is disambiguation in PDF corpus search?

Disambiguation in PDF corpus search distinguishes actual mentions of target named entities from false positives across thousands of PDFs. This ensures the structured matches.csv and report.txt contain only accurate hits.

Can I use PyMuPDF to extract text and find named entities in a large document corpus?

Yes, PyMuPDF is used for fast text extraction to locate mentions of terms or named entities across thousands of PDFs. The skill operates in parallel using this dependency to process a large document corpus.

How do I track which PDFs failed text extraction during a parallel search?

You can track PDFs that failed text extraction during a parallel search by checking the unreadable.txt output file. This artifact lists OCR candidates that could not be processed by PyMuPDF.

What is the best way to export per-document hits for citation tracking from a PDF archive?

The best way to export per-document hits is to run a parallel corpus search that generates a structured matches.csv file. This records every mention of your terms across the PDF archive for citation tracking.

Do I need OCR to search a PDF corpus with PyMuPDF?

You do not need OCR to search a PDF corpus with PyMuPDF, but scanned documents will fail text extraction. The skill logs these unreadable PDFs in unreadable.txt so you can identify OCR candidates.