Finding specific things
A folder of a hundred PDFs and a phrase you remember — three tools, depending on whether the PDFs have real text.
PDFs with a text layer are content-indexed:
mdfind -onlyin ~/Documents/Papers "tidal subsidy"
Instant, because the text is in the index. Works for born-digital PDFs and OCR'd scans; fails silently on image-only scans.
brew install pdfgrep
pdfgrep -r "tidal subsidy" ~/Documents/Papers
pdfgrep -r -n "clause 7" . # -n shows page numbers
pdfgrep -r -i -C 2 "indemnity" # case-insensitive, 2 lines context
Slower than Spotlight (it reads each file) but needs no index and shows page numbers — better for "which page in which contract".
mdimport -d2 -t scan.pdf | grep kMDItemTextContent | head
Empty means image-only — nothing to search until OCR.
brew install ocrmypdf
ocrmypdf scan.pdf scan-searchable.pdf
Adds an invisible text layer over the images, leaving the pages looking identical but now searchable by every tool above. Batch a folder:
for f in *.pdf; do ocrmypdf --skip-text "$f" "ocr/$f"; done
--skip-text leaves already-text PDFs alone.
For a research or contract archive: OCR everything once (so scans join the searchable set), then rely on Spotlight's content index for instant lookup, with pdfgrep as the page-precise fallback. That combination makes a decade of PDFs answer "which one said this" in seconds.
Spotlight/mdfind for PDFs with a text layer; pdfgrep for on-demand search with page numbers. Image-only scans need OCR first.
ocrmypdf adds an invisible text layer: ocrmypdf scan.pdf out.pdf. Every search tool then finds its text.
Everywhere keeps track of every file on your Mac — including the folders Spotlight hides and drives you have unplugged. Free for a day, then $19 once.
Download for Mac