Franskaman110 commited on
Commit
9671b99
·
1 Parent(s): 3c5341a
Files changed (1) hide show
  1. README.md +15 -22
README.md CHANGED
@@ -27,9 +27,9 @@ tags:
27
 
28
  # Pay Equity for EU
29
 
30
- A grounded, citation-first assistant that answers two questions Danish
31
- graduates ask every job offer: **"What pay should I expect?"** and **"What does
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 famously opaque. New graduates rarely know
57
- what the market pays, and the data that *does* exist sits behind union paywalls
58
- in long PDFs. On top of that, the EU recently passed the **Pay Transparency
59
- Directive (2023/970)**, which gives every employee the right to ask their
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. No hallucinations: numbers come straight from the
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 a fast follow.
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 because that is who I am and who my
90
- friends are, and because I can judge whether the answers are right.
91
 
92
  ## Future goals
93
 
94
- The plumbing is general; the data is what's scoped. Two clear extensions:
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?" half already
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 wizard → 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 |
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](TODO_YOUTUBE_URL)
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