Import a career record from the European Union's XML format #54

Closed
opened 2026-09-06 15:46:49 +00:00 by tiagoagueda · 0 comments
Owner

Observation

abble to import cv details using the european union xml stantard

Why

Anybody who has applied to an EU institution, or through a national employment service,
already has a Europass CV, and it exports as XML. Typing that career record into Postulo a
second time is exactly the work Postulo exists to remove, and the format is published,
stable, and free of licence questions.

What exists today

A career record is typed in section by section (resume/), or arrives inside a Postulo
export. There is no way in from anybody else's format. core/csv_import.py shows the shape
an import takes here: read, map, show for review, then save.

Shape

  • manage.py import_europass, and a page under Documents → Your career record:
    choose the file, see what was found, confirm before anything is written. The same rule as
    capture and as suggestions — nothing is saved on a guess.
  • What maps: personal details to the profile (name, address, telephone, email, website);
    WorkExperience to Experience; Education to Education; LinguisticSkill with its
    CEFR levels to LanguageSkill, whose proficiencies are CEFR already; skill blocks to
    skill groups; achievements and publications to projects or links (#28); an ORCID, if the
    file carries one, to #46.
  • Two formats, and this is the trap. The original Europass XML (urn:europass:xml:…,
    from the 2004 CV editor) is what old files are in; the current Europass platform exports
    JSON. The issue asks for the XML and that is the target, but the reader should be one
    mapping behind two front doors, and this is not finished if a file downloaded from
    Europass today produces an error.
  • Parse defensively. It is XML from somewhere else: defusedxml or the standard parser
    with entity resolution off, a size cap, and no network access for schema resolution,
    ever.
  • Never overwrite. An import adds entries; it does not replace a career record.
    Duplicates are the person's to delete, and are far better than something lost.

Classification

Enhancement. Not breaking: a new way in, and nothing changed for anybody who does not use
it.

Depends on

Nothing hard. #46 for the ORCID field and #28 for links, but neither blocks a first
version.

Open questions

  1. Export as well? A Europass file out of Postulo is the obvious other half, and some
    applications ask for exactly that. Proposal: import first, export as its own issue if
    anybody wants it.
  2. Which versions are supported? Proposal: whatever a file from the current Europass and a
    file from the 2004 editor actually contain, tested against real examples rather than
    against the schema alone.
## Observation > abble to import cv details using the european union xml stantard ## Why Anybody who has applied to an EU institution, or through a national employment service, already has a Europass CV, and it exports as XML. Typing that career record into Postulo a second time is exactly the work Postulo exists to remove, and the format is published, stable, and free of licence questions. ## What exists today A career record is typed in section by section (`resume/`), or arrives inside a Postulo export. There is no way in from anybody else's format. `core/csv_import.py` shows the shape an import takes here: read, map, show for review, then save. ## Shape - **`manage.py import_europass`, and a page under *Documents → Your career record***: choose the file, see what was found, confirm before anything is written. The same rule as capture and as suggestions — **nothing is saved on a guess**. - **What maps**: personal details to the profile (name, address, telephone, email, website); `WorkExperience` to `Experience`; `Education` to `Education`; `LinguisticSkill` with its CEFR levels to `LanguageSkill`, whose proficiencies are CEFR already; skill blocks to skill groups; achievements and publications to projects or links (#28); an ORCID, if the file carries one, to #46. - **Two formats, and this is the trap.** The original Europass XML (`urn:europass:xml:…`, from the 2004 CV editor) is what old files are in; the current Europass platform exports JSON. The issue asks for the XML and that is the target, but the reader should be one mapping behind two front doors, and this is not finished if a file downloaded from Europass today produces an error. - **Parse defensively.** It is XML from somewhere else: `defusedxml` or the standard parser with entity resolution off, a size cap, and no network access for schema resolution, ever. - **Never overwrite.** An import adds entries; it does not replace a career record. Duplicates are the person's to delete, and are far better than something lost. ## Classification Enhancement. Not breaking: a new way in, and nothing changed for anybody who does not use it. ## Depends on Nothing hard. #46 for the ORCID field and #28 for links, but neither blocks a first version. ## Open questions 1. Export as well? A Europass file *out* of Postulo is the obvious other half, and some applications ask for exactly that. Proposal: import first, export as its own issue if anybody wants it. 2. Which versions are supported? Proposal: whatever a file from the current Europass and a file from the 2004 editor actually contain, tested against real examples rather than against the schema alone.
tiagoagueda added this to the 0.2.0 milestone 2026-09-06 15:46:49 +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.

Reference
Postulo/postulo#54
No description provided.