Find missing metadata
The problem
Section titled “The problem”Half your library is missing abstracts, a chunk has no DOI, and some items have no date at all — which breaks sorting, citation, and search. Zotero has no built-in “show me everything missing field X,” and its own empty-field search is unreliable (Zotero doesn’t store an unset field as an empty string, so the obvious search returns zero).
Via an AI agent
Section titled “Via an AI agent”“Which items in To Read are missing a DOI or an abstract? Fill in the DOIs from Crossref, dry-run first.”
The agent audits the collection, reports the gaps, previews the enrichment, and applies it undoably.
Via the CLI
Section titled “Via the CLI”Audit first — zot missing uses a reliable getField check, not the
empty-string search condition:
zot missing abstract --collection SS5MVVB6 # items with no abstractzot missing doi # library-widezot missing datezot lint # full data-quality reportThen enrich from an external source:
zot enrich --field doi --source crossref --dry-run # previewzot enrich --field doi --source crossref # apply (undoable)zot enrich --field abstract --source openalexzot enrich --field date --source crossrefSafety net
Section titled “Safety net”zot backupzot enrich --field doi --source crossref --dry-run # see exactly what would fillzot enrich --field doi --source crossref # snapshots firstzot undo last # roll back if a match was wrongzot enrich snapshots the affected items before writing, so zot undo fully
reverses it — useful when an external source returns a wrong match. Scope with
--collection and dry-run before running across the whole library.