Listings: show which of the listing's skills the person has and which they do not, from ESCO, with no model #1093

Closed
opened 2026-10-30 21:25:13 +00:00 by tiagoagueda · 0 comments
Owner

When a person reads a listing they ask which of its requirements they meet. Postulo knows the person's skills as ESCO skills and holds the ESCO classification. This asks it to put the two side by side, with no model involved.

What exists today

  • Skill.esco_uri (resume/models.py:204) keeps the ESCO skill a typed skill was matched to (#266). jobs/esco.py reads the classification fetched by manage.py fetch_esco, with skills_available() and labels per language.
  • JobPosting.description holds the listing's text, in Markdown since #665.
  • Nothing compares the two.

What would change

  • On a listing and on its application, a skills panel: the ESCO skills named in the listing's text, split into those the person has and those they do not.
  • Optionally, which CV variant covers the most of them.
  • Nothing is fetched from the network.

Decisions

  • Matching. Recommended: ESCO preferred and alternative labels matched over folded text, in the listing's language, as esco.skill_for already does for one skill. No embeddings, no model.
  • Store or compute. Recommended: compute when the page is drawn and cache it; descriptions are short.
  • Without ESCO fetched. The panel is not shown, and the page says how an administrator fetches it, as other ESCO features do.

Checked against main at daee30b15 (2026-10-30). From the status review and feature suggestions of 2026-10-30.

When a person reads a listing they ask which of its requirements they meet. Postulo knows the person's skills as ESCO skills and holds the ESCO classification. This asks it to put the two side by side, with no model involved. ## What exists today - `Skill.esco_uri` (`resume/models.py:204`) keeps the ESCO skill a typed skill was matched to (#266). `jobs/esco.py` reads the classification fetched by `manage.py fetch_esco`, with `skills_available()` and labels per language. - `JobPosting.description` holds the listing's text, in Markdown since #665. - Nothing compares the two. ## What would change - On a listing and on its application, a skills panel: the ESCO skills named in the listing's text, split into those the person has and those they do not. - Optionally, which CV variant covers the most of them. - Nothing is fetched from the network. ## Decisions - **Matching.** Recommended: ESCO preferred and alternative labels matched over folded text, in the listing's language, as `esco.skill_for` already does for one skill. No embeddings, no model. - **Store or compute.** Recommended: compute when the page is drawn and cache it; descriptions are short. - **Without ESCO fetched.** The panel is not shown, and the page says how an administrator fetches it, as other ESCO features do. Checked against `main` at `daee30b15` (2026-10-30). From the status review and feature suggestions of 2026-10-30.
tiagoagueda added this to the 0.6.0 milestone 2026-10-30 21:25:13 +00:00
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#1093
No description provided.