A lot of real work lives across two files rather than one: orders that reference customers, transactions that reference a chart of accounts, leads that reference a territory map. The spreadsheet answer is VLOOKUP or its newer cousins, and on small tidy data it is fine — but it grows fragile exactly as the data grows. A non-exact match returns the wrong row, a re-sorted reference tab breaks the formula, a key with a trailing space silently fails, and recalculating across hundreds of thousands of rows can lock the sheet for minutes.
CSVPrune treats this as a first-class operation. You load a second reference CSV into the same session and either enrich — pull matching columns from the reference into your working set by a shared key — or diff the two files to see what is new, missing, or changed between them. The matching happens in the Rust backend against the full datasets, so it stays fast on large files, and the resulting columns join your working data immediately, ready to be cleaned, have formulas applied, or be exported. Like every other operation, an enrichment can live inside a recipe, so a recurring join — this week's orders against the current customer master — becomes a repeatable step rather than a formula you rebuild each time. It effectively turns CSVPrune into a lightweight, private data workbench for the everyday two-file problems that would otherwise mean a database or a brittle spreadsheet.