Skip to main content
Batch mode lets you resolve an entire hiring pipeline at once. Point GitResolve at a CSV of portfolio links and a folder of PDF resumes, and it will process every candidate, aggregate results from multiple sources, and either print a summary table or write per-candidate JSON files to disk.

Batch Flags

Running gitresolve with no URL argument and none of these flags defaults to --all.

Default Data Paths

Custom Paths

Portfolio CSV Format

The CSV must contain a column that GitResolve can use as the URL source. Column names are checked in the following priority order:
  1. url
  2. URL
  3. link
  4. Link
  5. First column (fallback — used if none of the above are present)
GitResolve applies the same URL normalization used in single-URL mode. Bare domains like janedoe.dev in the CSV are automatically prefixed with https:// before processing.
If your CSV column is named something other than the four supported names, rename the column or rely on the first-column fallback:

Resumes Directory Format

GitResolve scans the target directory and processes every file with a .pdf extension. Subdirectories are not traversed — all PDFs must be in the top-level folder.
Non-PDF files in the same directory are silently ignored.

Step-by-Step Setup

1

Create the data folders

Create the default directory structure in your project root.
2

Add portfolio links

Create data/portfolio_links.csv with a url column.
3

Add resume PDFs

Copy or move candidate resume PDFs into data/resumes/.
4

Run the batch command

Process all inputs with a single command.
To save results to disk instead of (or in addition to) the terminal:

Candidate Aggregation

When two or more sources — for example, a portfolio link from the CSV and a PDF resume — both resolve to the same Git username, GitResolve automatically merges them into a single AggregatedResult. Duplicate links are deduplicated by URL, and all source references are tracked in the sources and sourceTypes arrays.

Example Aggregated Output

Candidates whose sources cannot be resolved to any Git username are written to unresolved/ with a sanitized filename rather than a username. See Output Options for the full directory structure.

Privacy

All processing happens locally on your machine. No candidate data — portfolio URLs, resume text, or resolved profiles — is sent to any external server by GitResolve. The only outbound network requests are the page fetches to the candidate URLs themselves.
It is good practice to add your data directories to .gitignore so that candidate materials are not accidentally committed to version control: