The salary benchmarking feature is an optional layer on top of theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/MadsLorentzen/ai-job-search/llms.txt
Use this file to discover all available pages before exploring further.
/apply fit evaluation. When configured, it shows how a target company’s compensation compares to a baseline — helping you calibrate whether a role is financially competitive before you invest time in a full application. The feature is entirely data-source agnostic: it works with union salary statistics, Glassdoor exports, manually researched figures, or any other benchmark you can express in the expected JSON format.
How It Works
salary_lookup.py reads a salary_data.json file in the repo root and matches company names using fuzzy logic. The matcher handles:
- Danish and Nordic characters —
ø,æ,å,ö,ä,üare matched against their anglicized equivalents (o,ae,aa, etc.) so “Ørsted” matches “Oersted” - Legal suffixes — common Danish corporate suffixes (
A/S,ApS,I/S,P/S,IVS,AMBA) are stripped before matching so “Novo Nordisk A/S” matches “Novo Nordisk” - Noise patterns — geographic suffixes (
Danmark,Denmark,Nordic,Scandinavia), group/holding suffixes, and parenthetical sub-entity labels are stripped before comparison - Partial word overlap — multi-word company names are matched by shared core words, with a minimum score threshold to filter out weak matches
/apply Step 1 (fit evaluation), if salary_data.json exists, Claude runs salary_lookup.py for the target company and includes the result in the fit evaluation output. If the file is missing, the salary step is silently skipped and the rest of the workflow continues normally.
salary_data.json Format
The tool expects a JSON file with ametadata block describing the data source and baseline, and a companies array with one entry per company:
| Field | Required | Description |
|---|---|---|
metadata.source | Yes | Where the data comes from (for reference only) |
metadata.index_baseline | Yes | The baseline value (e.g. 100 for index data, 0 for absolute salaries) |
metadata.index_label | Yes | Label for the index column in output (e.g. "Index" or "Monthly salary (DKK)") |
metadata.baseline_description | No | Human-readable explanation of what the baseline represents |
companies[].company | Yes | Company name as it appears in your source data |
companies[].city | No | City/location — used for the --city filter when multiple entries share a name |
companies[].categories | Yes | Named salary categories, each with count and/or index fields |
all_employees, engineering, etc.) are free-form — use whatever labels match your data source. The display formatter renders them as title-cased strings (All Employees, Engineering).
Setup Options
- Manual
- Excel
- Research template
Create Then paste in the JSON structure shown above and populate the
salary_data.json by hand in the repo root with data from any source — union statistics, Glassdoor, salary surveys, networking conversations, or personal research.companies array with the employers you want to track. You can start with just a handful of companies and add more incrementally.Using the Tool Directly
You can runsalary_lookup.py outside of /apply to look up a company manually:
vs Baseline column shows the percentage difference from index_baseline — a positive value means above the baseline, negative means below.
If no match is found, the tool suggests trying a shorter or different name and notes that entries in the dataset may include legal suffixes.
salary_data.json is listed in .gitignore by default and will not be committed to your fork. Salary data sourced from union statistics or employer agreements is often proprietary or confidential, and keeping it out of version control avoids accidental exposure if you ever make your fork public.If your data is not sensitive and you want to track it in git, remove the salary_data.json entry from .gitignore.