Plugin idea: salary and market reference data per occupation and country #1257

Open
opened 2026-11-13 10:51:54 +00:00 by tiagoagueda · 0 comments
Owner

Idea

On an offer or a listing, show where the salary stands: a reference range for the occupation and country, from public statistics (Eurostat earnings by occupation, national statistical offices, the minimum wage, collective-agreement tables where published). The person types nothing; the plugin matches the listing's occupation (ESCO) and place to a range and shows its source and year.

What to settle

  • Data with a licence that allows reuse, and the grain (ISCO unit group by country is what Eurostat publishes; finer data is rare). Never present a range as the person's own offer or as a recommendation to negotiate a figure.
  • Currency and period conversion (monthly, yearly, gross, net) and how the person's own salary note is compared; wording that says what the figure is (a median of a statistic, not a promise).
  • Offline data file per country, refreshed by a command, like the other reference vocabularies (#1252).

Wanted

A feasibility note (which countries have usable open data), the display in the offer and listing pages, and a reference plugin for one country.

Rules that apply to every plugin

  • Off until the person enables it; a plugin that calls a service names the host and the data it sends in its manifest and on the consent screen (plugins/consent.py); nothing is fetched on page load.
  • Core keeps no import of it: the application runs with it absent, and data it created stays readable as plain data when it is removed.
  • The plugin surface (plugins/api.py, the published postulo.plugins.testing check) gets a contract test for any new kind; the plugin ships its own translation catalogues (the plugin locale rule); strings go through Weblate only.
  • Its own repository if it is not bundled (see the plugin repositories and #1170's shared CI).

Filed as an idea after a discussion on plugin kinds, with #1252 (reference data and lookups as plugins). Not started; the maintainer decides if and when.

## Idea On an offer or a listing, show where the salary stands: a reference range for the occupation and country, from public statistics (Eurostat earnings by occupation, national statistical offices, the minimum wage, collective-agreement tables where published). The person types nothing; the plugin matches the listing's occupation (ESCO) and place to a range and shows its source and year. ## What to settle - Data with a licence that allows reuse, and the grain (ISCO unit group by country is what Eurostat publishes; finer data is rare). Never present a range as the person's own offer or as a recommendation to negotiate a figure. - Currency and period conversion (monthly, yearly, gross, net) and how the person's own salary note is compared; wording that says what the figure is (a median of a statistic, not a promise). - Offline data file per country, refreshed by a command, like the other reference vocabularies (#1252). ## Wanted A feasibility note (which countries have usable open data), the display in the offer and listing pages, and a reference plugin for one country. ## Rules that apply to every plugin - Off until the person enables it; a plugin that calls a service names the host and the data it sends in its manifest and on the consent screen (`plugins/consent.py`); nothing is fetched on page load. - Core keeps no import of it: the application runs with it absent, and data it created stays readable as plain data when it is removed. - The plugin surface (`plugins/api.py`, the published `postulo.plugins.testing` check) gets a contract test for any new kind; the plugin ships its own translation catalogues (the plugin locale rule); strings go through Weblate only. - Its own repository if it is not bundled (see the plugin repositories and #1170's shared CI). Filed as an idea after a discussion on plugin kinds, with #1252 (reference data and lookups as plugins). **Not started; the maintainer decides if and when.**
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Postulo/postulo#1257
No description provided.