Commit ·
9671b99
1
Parent(s): 3c5341a
Readme
Browse files
README.md
CHANGED
|
@@ -27,9 +27,9 @@ tags:
|
|
| 27 |
|
| 28 |
# Pay Equity for EU
|
| 29 |
|
| 30 |
-
A grounded, citation-first assistant that answers
|
| 31 |
-
|
| 32 |
-
the law actually let me ask for?"**
|
| 33 |
|
| 34 |
## Why I built this
|
| 35 |
|
|
@@ -53,27 +53,23 @@ in France.
|
|
| 53 |
|
| 54 |
## The problem
|
| 55 |
|
| 56 |
-
In Denmark, salary negotiation is
|
| 57 |
-
what the market pays, and
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
employer for pay information, gender pay-gap reports, and more. The catch: it's
|
| 61 |
-
80 pages of legalese, in 24 languages, and almost no one has read it. So people
|
| 62 |
-
sign offers without knowing either the number or the rights they already have.
|
| 63 |
|
| 64 |
-
This app fixes both, in one chat
|
| 65 |
|
| 66 |
## What it does
|
| 67 |
|
| 68 |
- **Expected pay** — deterministic lookup over parsed IDA *lønstatistik*
|
| 69 |
(salary statistics from the engineers' union), broken down by sector,
|
| 70 |
-
experience, and role.
|
| 71 |
-
union's published tables.
|
| 72 |
- **Your rights** — RAG over the EU Pay Transparency Directive with
|
| 73 |
article-level citations on every claim (e.g. *"You can request the
|
| 74 |
average pay for your role broken down by gender (Art. 7(1))"*). Answers are
|
| 75 |
in **English** in v1; the directive text is already parsed in DA / FR and the
|
| 76 |
-
generation model is multilingual, so localized answers are
|
| 77 |
- **Private document review** — session-only upload of a contract or payslip,
|
| 78 |
never persisted, never sent to a third-party API.
|
| 79 |
|
|
@@ -86,12 +82,11 @@ professional association (*fagforening* is simply Danish for "trade union"). IDA
|
|
| 86 |
surveys its members every year and publishes detailed pay tables by education,
|
| 87 |
sector, region, seniority, role, and gender. Those tables are exactly the
|
| 88 |
ground truth an engineer needs to answer "what should I earn?", so they are the
|
| 89 |
-
foundation here. I started with engineers
|
| 90 |
-
friends are, and because I can judge whether the answers are right.
|
| 91 |
|
| 92 |
## Future goals
|
| 93 |
|
| 94 |
-
|
| 95 |
|
| 96 |
### Extend to Djøf
|
| 97 |
|
|
@@ -108,9 +103,7 @@ huge share of Danish white-collar graduates beyond engineering.
|
|
| 108 |
|
| 109 |
I am also French, and the EU Pay Transparency Directive applies across the whole
|
| 110 |
European Union, not just Denmark. Each member state (including France) must turn
|
| 111 |
-
it into national law by June 2026, so the "what are my rights?"
|
| 112 |
-
generalizes. The next step there is to plug in French salary data sources so a
|
| 113 |
-
French engineer gets the same profile-driven benchmark a Danish one does today.
|
| 114 |
|
| 115 |
## Hackathon track
|
| 116 |
|
|
@@ -126,7 +119,7 @@ for a real circle of people (Danish graduates job-hunting right now).
|
|
| 126 |
| Embeddings | **NVIDIA Nemotron-Embed 1B v2** | Strong multilingual retrieval, ungated |
|
| 127 |
| Retrieval | FAISS IndexFlatIP + per-source top-k + Reciprocal Rank Fusion | Keeps salary numbers and legal text from drowning each other |
|
| 128 |
| Runtime | Gradio Server + ZeroGPU on HF Spaces | FastAPI-style `@app.api` endpoints behind a custom JS frontend |
|
| 129 |
-
| Frontend | **Hand-authored HTML / CSS / JS SPA** (no Gradio Blocks at the root) | Onboarding
|
| 130 |
| Type / palette | Bricolage Grotesque + Inter on a sage / ink Scandinavian palette | Goes well beyond default Gradio look |
|
| 131 |
|
| 132 |
All model revisions are pinned by SHA in `configs/models.yaml`. No `latest`.
|
|
@@ -144,7 +137,7 @@ checked against a citation. A small, transparent stack is the *right* tool for
|
|
| 144 |
|
| 145 |
## Demo video
|
| 146 |
|
| 147 |
-
[Watch the demo](
|
| 148 |
|
| 149 |
## Social post
|
| 150 |
|
|
|
|
| 27 |
|
| 28 |
# Pay Equity for EU
|
| 29 |
|
| 30 |
+
A user-friendly salary expectation tool for (currently) any danish engineers, to get an idea of what they deserve as a salary after suffering years of studies. Embark yourself in my app and see what salary you should be expecting in your future dream job, or even get to know what salary you actually should be having if you currently have a job! In parallel with an accessible salary overview, you can chat with a grounded, citation-first assistant that answers any questions you might have to prepare your next salary-talk or job-interview!
|
| 31 |
+
|
| 32 |
+
**"What pay should I expect?"** and **"What does the law actually let me ask for?"**
|
| 33 |
|
| 34 |
## Why I built this
|
| 35 |
|
|
|
|
| 53 |
|
| 54 |
## The problem
|
| 55 |
|
| 56 |
+
In Denmark, salary negotiation is quite vague. New graduates rarely know
|
| 57 |
+
what the market pays, and how much they are actually worth compared to their peers. On top of that, the EU recently passed the **Pay Transparency
|
| 58 |
+
Directive (2023/970)**, which gives every employee the right to ask their employer for pay information, gender pay-gap reports, and more. But who understands what's written on these reports? So people
|
| 59 |
+
sign offers without knowing either the number or the rights they already have...
|
|
|
|
|
|
|
|
|
|
| 60 |
|
| 61 |
+
This app fixes both, in one chat and an accessible user-salary-creation (do not worry, you will not be disclosing anything private!)
|
| 62 |
|
| 63 |
## What it does
|
| 64 |
|
| 65 |
- **Expected pay** — deterministic lookup over parsed IDA *lønstatistik*
|
| 66 |
(salary statistics from the engineers' union), broken down by sector,
|
| 67 |
+
experience, and role. I use all this metadata to perform precise and effective salary chunk query.
|
|
|
|
| 68 |
- **Your rights** — RAG over the EU Pay Transparency Directive with
|
| 69 |
article-level citations on every claim (e.g. *"You can request the
|
| 70 |
average pay for your role broken down by gender (Art. 7(1))"*). Answers are
|
| 71 |
in **English** in v1; the directive text is already parsed in DA / FR and the
|
| 72 |
+
generation model is multilingual, so localized answers are an easy implementation!
|
| 73 |
- **Private document review** — session-only upload of a contract or payslip,
|
| 74 |
never persisted, never sent to a third-party API.
|
| 75 |
|
|
|
|
| 82 |
surveys its members every year and publishes detailed pay tables by education,
|
| 83 |
sector, region, seniority, role, and gender. Those tables are exactly the
|
| 84 |
ground truth an engineer needs to answer "what should I earn?", so they are the
|
| 85 |
+
foundation here. I started with engineers since I am myself one and I know that salary conversations are always a pain.
|
|
|
|
| 86 |
|
| 87 |
## Future goals
|
| 88 |
|
| 89 |
+
There are two future goals which I would love to extend on:
|
| 90 |
|
| 91 |
### Extend to Djøf
|
| 92 |
|
|
|
|
| 103 |
|
| 104 |
I am also French, and the EU Pay Transparency Directive applies across the whole
|
| 105 |
European Union, not just Denmark. Each member state (including France) must turn
|
| 106 |
+
it into national law by June 2026, so the "what are my rights?" is also a fair question an frenchman could aks himself (that would then be "Quelles sont mes droits?!"). The next step there is to plug in French salary data sources so a French engineer gets the same profile-driven benchmark a Danish one does today.
|
|
|
|
|
|
|
| 107 |
|
| 108 |
## Hackathon track
|
| 109 |
|
|
|
|
| 119 |
| Embeddings | **NVIDIA Nemotron-Embed 1B v2** | Strong multilingual retrieval, ungated |
|
| 120 |
| Retrieval | FAISS IndexFlatIP + per-source top-k + Reciprocal Rank Fusion | Keeps salary numbers and legal text from drowning each other |
|
| 121 |
| Runtime | Gradio Server + ZeroGPU on HF Spaces | FastAPI-style `@app.api` endpoints behind a custom JS frontend |
|
| 122 |
+
| Frontend | **Hand-authored HTML / CSS / JS SPA** (no Gradio Blocks at the root) | Onboarding questionaire → profile-driven dashboard with hand-drawn SVG charts (bell curve, gauge, comparison bars) → contextual rights chat with seeded questions, served on top of `gradio.Server` via the JS client |
|
| 123 |
| Type / palette | Bricolage Grotesque + Inter on a sage / ink Scandinavian palette | Goes well beyond default Gradio look |
|
| 124 |
|
| 125 |
All model revisions are pinned by SHA in `configs/models.yaml`. No `latest`.
|
|
|
|
| 137 |
|
| 138 |
## Demo video
|
| 139 |
|
| 140 |
+
[Watch the demo](https://youtu.be/TulJ8n-uR3A)
|
| 141 |
|
| 142 |
## Social post
|
| 143 |
|