docs(template): propose European chronology layout (#3475)

* docs: research Europass mapping and visual proposal

* docs: remediate Europass overflow artifacts
This commit is contained in:
Amruth Pillai
2026-09-05 20:09:13 -07:00
committed by GitHub
parent 97f34b7ccd
commit 578cb496aa
10 changed files with 1333 additions and 0 deletions
+120
View File
@@ -0,0 +1,120 @@
# Europass research and visual proposal — Plan 33A
Status: **research complete; visual and naming approval pending**. No renderer, template ID, gallery entry,
schema change, or import/export integration is included. This proposal does not resolve issue #2689.
## Review package
- [Reference comparison](artifacts/reference-comparison.svg): analytical redraw of the selected official
reference beside the mapped proposal. The redraw excludes branding and source-specific recruitment text.
- [One-page proposal](artifacts/one-page.svg): canonical static layout with exact synthetic field sources.
- Overflow proposal: [page 1](artifacts/overflow-1.svg), [page 2](artifacts/overflow-2.svg),
[page 3](artifacts/overflow-3.svg). These are one document, not three template options.
- [Generated concept](artifacts/concept-one-page.png): supplementary visual exploration, not the field or
geometry contract. The SVGs take precedence.
- [Field mapping and behavior](mapping.md), [synthetic fixture records](synthetic-fixtures.json), and
[generation provenance](artifacts/PROVENANCE.md).
Open SVGs directly in a browser. They contain their text and geometry, require no application server,
and load no external images, fonts or scripts. A local sans-serif font is sufficient. The JSON contains
two complete ResumeData objects under `onePage` and `overflow`; neither is an official Europass file.
## Authority and repository revalidation
Access/revalidation date: **2026-09-06**. Research base: `b85d285b69843612e9d7f0ab802248982e7bf0ea`.
Planning authority: commit `a2557b2ad40e06e1e63eb655f286e6a78fe6bf0d`,
[Plan 33](https://github.com/amruthpillai/reactive-resume/blob/a2557b2ad40e06e1e63eb655f286e6a78fe6bf0d/plans/33-europass-template.md)
and its recorded decisions. Approval covers this research/proposal unit; concrete visual approval remains open.
Read-only `gh issue view 2689` confirmed the [issue](https://github.com/amruthpillai/reactive-resume/issues/2689)
is open, last updated 2026-08-16. Its request for a built-in option is relevant; assertions about compulsory
formats are not adopted. The linked community converter remains third-party work, not an import contract.
The complete open-PR list returned four PRs: [#3455](https://github.com/amruthpillai/reactive-resume/pull/3455)
(planning), [#3456](https://github.com/amruthpillai/reactive-resume/pull/3456) (execution ledger),
[#3467](https://github.com/amruthpillai/reactive-resume/pull/3467) (authored-page guidance), and
[#3468](https://github.com/amruthpillai/reactive-resume/pull/3468) (stylesheet diagnostics).
None proposed a Europass renderer. Pagination guidance is adjacent work; no shared source is changed here.
The schema still has 15 template IDs and no Europass ID. The plan's targeted drift check from `7a98f6662`
found only changes to an unrelated rich-text table integration test. Current ResumeData and shared filtering
were read directly; no `.codegraph/` directory was present. Intent inventory returned
“No intent-enabled packages found,” so no matching local package skill was available to load.
## Official evidence register
All sources below were accessed on **2026-09-06**. Only EU/Europass first-party material informs external
claims. Copyright attribution for summarized Europass information: **© European Union**. The independent
synthetic examples and diagrams are adaptations for discussion, not official Europass output.
| ID | Source | Supported finding and limit |
| --- | --- | --- |
| S1 | [Create your Europass CV](https://europass.europa.eu/en/create-europass-cv) | Current guidance offers a choice of designs and selected profile content. It recommends clear, tailored descriptions and reverse chronology. Its photograph advice is guidance, not evidence of a universal required field. No single fixed layout is specified here. |
| S2 | [Europass FAQ, page 1](https://europass.europa.eu/en/faq?page=1) | CV sections can be added, removed, moved and renamed; several templates exist. Current saving guidance specifies Europass PDF. Information reuse is allowed with source acknowledgement. This is not proof of a logo licence or compatibility of third-party PDFs with the editor. |
| S3 | [Europass FAQ, page 2](https://europass.europa.eu/en/faq?page=2) | The profile FAQ says name and surname are mandatory and users choose other sections. Initial web extraction failed; a direct HTTPS fetch subsequently verified the live page text. This concerns the profile, not a separately tested CV-editor validation contract. |
| S4 | [EEAS-hosted Europass CV form](https://www.eeas.europa.eu/sites/default/files/documents/2025/Europass-cv-en%20template_0.pdf) | Stable public two-page blank form, inspected as PDF and raster. It contains a legacy © European Union 2002–2018 footer and recruitment-specific text. Its 2025 URL does not make its design a current universal specification. Headings are optional in this form. This is the selected visual reference. |
| S5 | [Europass terms of use](https://europass.europa.eu/en/node/2161) | Terms govern platform use and prohibit misleading content and intellectual-property violations. No explicit third-party template-branding permission was found in this page. |
| S6 | [European Commission legal notice](https://commission.europa.eu/legal-notice_en) | The general policy permits reuse of covered EU-owned website content with credit and indication of changes, but excludes protected names, logos and other industrial-property material. It is not a blanket licence for every asset hosted by another EU institution. |
### Reference selection and current guidance
S4 provides an inspectable visual anchor: a narrow label/date area at reading start, wider detail area,
blue headings and rules, employment and education entries, a language matrix, and running page metadata.
The comparison redraw records these observations; measurements in the proposal are our design decisions.
We do not redistribute the original PDF or its mark. Reviewers can open the first-party PDF through S4.
S1/S2 are the current behavioral guidance. They support flexible content and multiple layouts; they do not
establish S4 as today's sole layout. The proposed document therefore takes the chronology structure from
S4 while adapting it to existing data and the current guidance. No official live-editor CV was exported
or uploaded, and no account or personal data was used.
An EEA search result for historic CV instructions redirected to the agency's general About page when
opened. That result is not used as evidence. Historic XML documentation also surfaced but is not used to
promise current export formats or interoperability. No secondary-source claims were adopted.
## Material visual and reuse decisions
Recommended working title: **European chronology**. Do not register a product ID yet. “Europass” is the
research topic; use as a public template name remains an explicit maintainer decision with an unresolved
rights basis. The design contains no Europass wordmark, EU flag, emblem, endorsement, official copyright
footer, or interoperability badge. General website information reuse does not settle branding rights.
The proposed default is A4, white background, dark blue `#1e5580`, charcoal `#20262b`, 36 pt side margins,
a 128 pt label/date area and 16 pt gap, with details beginning at x = 180 pt. Body text is 10.5 pt sans-serif,
headings are 10 pt bold, and the name is 23 pt. The line and color choices are proposals, not official tokens.
The static one-page drawing uses more deliberate section spacing than the dense overflow study.
Deviations requiring approval:
1. An independent unbranded design, with neutral provisional name, instead of an exact official clone.
2. A chronology gutter for dates and headings, coordinated with Plan 24 rather than introducing a new
date-column schema here. Empty date cells keep alignment; periods are never parsed or normalized.
3. Plain language/fluency text instead of the five-dimensional language grid. Numeric levels are not CEFR
evidence. Skill ratings are hidden by the fixture's existing design setting.
4. No compulsory photo or personal attributes. Photo-free examples reserve no blank frame. Optional photo
placement and mixed-script examples still need a separate visual pass before renderer approval.
5. Existing section titles and custom sections remain available. The concept does not force a fixed set of
official headings or discard additional resume sections.
6. Continuation pages retain only a small name/running header and page number, with content flowing below.
The synthetic approval watermark is an artifact annotation, not proposed resume output.
## Unresolved claims and handoff gate
- Permission to ship the Europass name, logo, exact branded template or official-looking footer is **not
established**. No such permission is inferred from S2 or S6. If maintainers require branding or an exact
clone, resolve rights and reference choice before any implementation.
- The chosen legacy structure is documented, but whether it satisfies the request for a current built-in
Europass option needs maintainer review of these actual artifacts. A current editor design would be a
different reference-selection task, not a silent replacement.
- Mandatory CV-editor fields, exact language availability, and export embedding details were not validated
interactively. Official pages vary in language counts; this proposal makes no count or import promise.
- Structured CEFR dimensions, mother-tongue flags and qualification-framework levels are absent from
current ResumeData. They are omissions, not guessed values. See the complete mapping.
- Renderer pagination, links, fonts, RTL shaping, tagged accessibility and machine extraction are untested
for this proposal. Static artifacts are not evidence that a future PDF renderer implements those behaviors.
- This task stops at the planned concrete-design gate. Approval must identify the canonical SVG set,
public naming/branding choice and accepted data omissions; it cannot be inferred from general plan approval.
Follow-up implementation remains conditional. It would require the plan's schema, semantic manifest,
gallery, renderer, pagination, extraction, localization, typecheck, build and boundary checks after the
maintainer approves the design. No implementation, push, PR creation, issue comment or issue closure occurred here.
@@ -0,0 +1,53 @@
# Visual artifact provenance
Created 2026-09-06 for Plan 33A. All biographical content, organizations, qualifications and achievements are
synthetic. `example.invalid` links are intentionally nonresolving test data. No personal files, CVs, account
data or real portrait were used.
## Canonical static artifacts
`one-page.svg` and `overflow-1.svg` through `overflow-3.svg` are editable static drawings with text traced
to [fixture](../synthetic-fixtures.json) paths using `data-source`. They are research artifacts, not a resume
renderer or template implementation. SVG source is the reproducible artifact; raster previews are optional.
`reference-comparison.svg` juxtaposes an original analytical schematic with the one-page SVG. The schematic
describes the selected [official EEAS reference](https://www.eeas.europa.eu/sites/default/files/documents/2025/Europass-cv-en%20template_0.pdf),
© European Union, accessed 2026-09-06. It is not a screenshot or faithful reproduction, omits the mark and
recruitment-specific content, and labels the legacy provenance. Original reference remains on its official host.
The static drawings use sans-serif text and editable geometry. Browser rendering may select a different
installed font. They are intentionally independent of the app, and include no network resource dependencies.
An isolated PyMuPDF environment was used to rasterize the drawings for visual inspection. No raster screenshot
is evidence of Reactive Resume's PDF behavior.
To regenerate a raster from the canonical SVG without application dependencies:
```sh
uv run --with pymupdf python - <<'PY'
from pathlib import Path
import pymupdf
source = Path("docs/research/europass/artifacts/one-page.svg")
image = pymupdf.open("svg", source.read_bytes())
pdf = pymupdf.open("pdf", image.convert_to_pdf())
pdf[0].get_pixmap(matrix=pymupdf.Matrix(2, 2)).save("one-page-review.png")
PY
```
## Supplementary image generation
`concept-one-page.png` was generated with the built-in image generation tool. No CLI/API fallback was used.
The selected output was copied into this repository; review does not require the tool's private output folder.
It is a visual exploration only. Its name is positioned farther right, rules span both columns, some typography
and spacing differ, and it adds minor presentational punctuation/“area” wording. These differences are not
approved specification changes. The mapped SVGs and fixture take precedence over generated pixels.
Exact prompt:
```text
Use case: productivity-visual. Asset type: static CV design proposal, one portrait A4 page, straight-on flat white document, no desk or mockup shadows. Independent unbranded European chronological CV concept, not an official document. Exact synthetic content only. Header at upper right of broad content column: Alex Marin in large dark blue sans serif, below it Research coordinator; below: Brussels, Belgium | alex.marin@example.invalid. Narrow reading-start column for dates and section labels (about 27 percent), broad content column 73 percent, thin blue horizontal section rules. Airy white page, charcoal 10.5pt-equivalent body, dark blue uppercase section headings. No photograph and no placeholder box. Sections exact text: ABOUT ME: Research coordinator building clear public-service guidance. WORK EXPERIENCE: date 2023 – Present, title Research coordinator, organisation Civic Atlas Lab, Brussels, Belgium. Two bullets: Coordinated multilingual guidance reviews. Published accessible research summaries. EDUCATION AND TRAINING: date 2019 – 2022, title BA Social Research, organisation Northbridge Institute, area Public policy. LANGUAGE SKILLS: English — Native; French — B2 (self-assessed). SKILLS: Research — Advanced; Interviews, synthesis, documentation. PROJECTS: date 2025, title Open Guidance Map; Mapped public learning resources. OTHER ACTIVITIES: Community workshops and peer mentoring. Footer small: SYNTHETIC DESIGN PROPOSAL · NOT APPROVED, with 1 / 1 at right. No logos, EU flag, stars, Europass wordmark, compliance claims, nationality, date of birth, QR codes, extra personal facts, ratings or CEFR matrix. All text legible. This is concept direction only; deterministic separate artifacts will govern exact mapping.
```
This image was inspected for recognizable text, missing sections, branding and private-data leakage. All seven
intended sections are present and no official mark or portrait appears. No image-generation claim is used as
evidence about official guidance, reuse rights, application behavior or field support.
Binary file not shown.

After

Width:  |  Height:  |  Size: 941 KiB

@@ -0,0 +1,44 @@
<svg xmlns="http://www.w3.org/2000/svg" width="595.28pt" height="841.89pt" viewBox="0 0 595.28 841.89" role="img" aria-labelledby="title desc"><title id="title">One-page visual proposal</title><desc id="desc">Synthetic ResumeData illustration. Static layout, not renderer output. See mapping.md.</desc><g font-family="Helvetica"><rect width="595.28" height="841.89" fill="white"/>
<text font-family="sans-serif" x="180" y="62" font-size="23" fill="#1e5580" font-weight="700" data-source="basics.name">Alex Marin</text>
<text font-family="sans-serif" x="180" y="88" font-size="10.5" fill="#20262b" font-weight="400" data-source="basics.headline">Research coordinator</text>
<text font-family="sans-serif" x="180" y="109" font-size="10.5" fill="#20262b" font-weight="400" data-source="basics.location">Brussels, Belgium</text>
<text font-family="sans-serif" x="180" y="126" font-size="10.5" fill="#20262b" font-weight="400" data-source="basics.email">alex.marin@example.invalid</text>
<text font-family="sans-serif" x="36" y="168" font-size="10" fill="#1e5580" font-weight="700" data-source="summary.title">ABOUT ME</text>
<path d="M180 165 H559" stroke="#1e5580" stroke-width="0.8"/>
<text font-family="sans-serif" x="180" y="190" font-size="10.5" fill="#20262b" font-weight="400" data-source="summary.content">Research coordinator building clear public-service guidance.</text>
<text font-family="sans-serif" x="36" y="231" font-size="10" fill="#1e5580" font-weight="700" data-source="sections.experience.title">WORK EXPERIENCE</text>
<path d="M180 228 H559" stroke="#1e5580" stroke-width="0.8"/>
<text font-family="sans-serif" x="36" y="254" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.experience.items[0].period">2023 – Present</text>
<text font-family="sans-serif" x="180" y="254" font-size="10.5" fill="#20262b" font-weight="700" data-source="sections.experience.items[0].position">Research coordinator</text>
<text font-family="sans-serif" x="180" y="272" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.experience.items[0].company">Civic Atlas Lab</text>
<text font-family="sans-serif" x="180" y="289" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.experience.items[0].location">Brussels, Belgium</text>
<text font-family="sans-serif" x="180" y="309" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.experience.items[0].description">• Coordinated multilingual guidance reviews.</text>
<text font-family="sans-serif" x="180" y="326" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.experience.items[0].description">• Published accessible research summaries.</text>
<text font-family="sans-serif" x="36" y="367" font-size="10" fill="#1e5580" font-weight="700" data-source="sections.education.title">EDUCATION AND</text>
<text font-family="sans-serif" x="36" y="380" font-size="10" fill="#1e5580" font-weight="700" data-source="sections.education.title">TRAINING</text>
<path d="M180 364 H559" stroke="#1e5580" stroke-width="0.8"/>
<text font-family="sans-serif" x="36" y="401" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.education.items[0].period">2019 – 2022</text>
<text font-family="sans-serif" x="180" y="401" font-size="10.5" fill="#20262b" font-weight="700" data-source="sections.education.items[0].degree">BA Social Research</text>
<text font-family="sans-serif" x="180" y="419" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.education.items[0].school">Northbridge Institute</text>
<text font-family="sans-serif" x="180" y="436" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.education.items[0].area">Public policy</text>
<text font-family="sans-serif" x="36" y="477" font-size="10" fill="#1e5580" font-weight="700" data-source="sections.languages.title">LANGUAGE SKILLS</text>
<path d="M180 474 H559" stroke="#1e5580" stroke-width="0.8"/>
<text font-family="sans-serif" x="180" y="500" font-size="10.5" fill="#20262b" font-weight="700" data-source="sections.languages.items[0].language">English</text>
<text font-family="sans-serif" x="270" y="500" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.languages.items[0].fluency">Native</text>
<text font-family="sans-serif" x="180" y="521" font-size="10.5" fill="#20262b" font-weight="700" data-source="sections.languages.items[1].language">French</text>
<text font-family="sans-serif" x="270" y="521" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.languages.items[1].fluency">B2 (self-assessed)</text>
<text font-family="sans-serif" x="36" y="562" font-size="10" fill="#1e5580" font-weight="700" data-source="sections.skills.title">SKILLS</text>
<path d="M180 559 H559" stroke="#1e5580" stroke-width="0.8"/>
<text font-family="sans-serif" x="180" y="585" font-size="10.5" fill="#20262b" font-weight="700" data-source="sections.skills.items[0].name">Research</text>
<text font-family="sans-serif" x="270" y="585" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.skills.items[0].proficiency">Advanced</text>
<text font-family="sans-serif" x="180" y="606" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.skills.items[0].keywords">Interviews, synthesis, documentation</text>
<text font-family="sans-serif" x="36" y="647" font-size="10" fill="#1e5580" font-weight="700" data-source="sections.projects.title">PROJECTS</text>
<path d="M180 644 H559" stroke="#1e5580" stroke-width="0.8"/>
<text font-family="sans-serif" x="36" y="670" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.projects.items[0].period">2025</text>
<text font-family="sans-serif" x="180" y="670" font-size="10.5" fill="#20262b" font-weight="700" data-source="sections.projects.items[0].name">Open Guidance Map</text>
<text font-family="sans-serif" x="180" y="690" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.projects.items[0].description">Mapped public learning resources.</text>
<text font-family="sans-serif" x="36" y="731" font-size="10" fill="#1e5580" font-weight="700" data-source="customSections[0].title">OTHER ACTIVITIES</text>
<path d="M180 728 H559" stroke="#1e5580" stroke-width="0.8"/>
<text font-family="sans-serif" x="180" y="754" font-size="10.5" fill="#20262b" font-weight="400" data-source="customSections[0].items[0].content">Community workshops and peer mentoring.</text>
<text font-family="sans-serif" x="36" y="808" font-size="8" fill="#56636d" font-weight="400" data-source="proposal.annotation">SYNTHETIC DESIGN PROPOSAL · NOT APPROVED</text>
<text font-family="sans-serif" x="526" y="808" font-size="8" fill="#56636d" font-weight="400" data-source="proposal.annotation">1 / 1</text></g></svg>

After

Width:  |  Height:  |  Size: 6.6 KiB

@@ -0,0 +1,50 @@
<svg xmlns="http://www.w3.org/2000/svg" width="595.28pt" height="841.89pt" viewBox="0 0 595.28 841.89" role="img" aria-labelledby="title desc"><title id="title">overflow visual proposal, page 1</title><desc id="desc">Synthetic ResumeData illustration. Static pagination, not renderer output. See mapping.md.</desc><g font-family="Helvetica"><rect width="595.28" height="841.89" fill="white"/>
<text font-family="sans-serif" x="180.00" y="59.00" font-size="23" fill="#1e5580" font-weight="700" data-source="basics.name">Alexandra Noor Marin-López</text>
<text font-family="sans-serif" x="180.00" y="86.00" font-size="10.5" fill="#1e5580" font-weight="400" data-source="basics.headline">Research coordinator for multilingual public-service information</text>
<text font-family="sans-serif" x="180.00" y="103.70" font-size="10.5" fill="#20262b" font-weight="400" data-source="basics.location">Brussels, Belgium</text>
<text font-family="sans-serif" x="180.00" y="121.40" font-size="10.5" fill="#20262b" font-weight="400" data-source="basics.email">alex.marin@example.invalid</text>
<text font-family="sans-serif" x="180.00" y="139.10" font-size="10.5" fill="#20262b" font-weight="400" data-source="basics.website.label">Research portfolio</text>
<text font-family="sans-serif" x="180.00" y="156.80" font-size="10.5" fill="#20262b" font-weight="400" data-source="basics.customFields[0].text">Available for cross-border project work</text>
<text font-family="sans-serif" x="36.00" y="190.50" font-size="10" fill="#1e5580" font-weight="700" data-source="sections.profiles.title">PROFILES</text>
<path d="M180 187.50 H559" stroke="#1e5580" stroke-width="0.8"/>
<text font-family="sans-serif" x="180.00" y="210.50" font-size="10.5" fill="#1e5580" font-weight="700" data-source="sections.profiles.items[0].network">Portfolio</text>
<text font-family="sans-serif" x="180.00" y="228.20" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.profiles.items[0].username">alexandra</text>
<text font-family="sans-serif" x="180.00" y="245.90" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.profiles.items[0].website.label">Selected writing</text>
<text font-family="sans-serif" x="36.00" y="282.60" font-size="10" fill="#1e5580" font-weight="700" data-source="summary.title">ABOUT ME</text>
<path d="M180 279.60 H559" stroke="#1e5580" stroke-width="0.8"/>
<text font-family="sans-serif" x="180.00" y="302.60" font-size="10.5" fill="#20262b" font-weight="400" data-source="summary.content">Research coordinator building clear public-service guidance.</text>
<text font-family="sans-serif" x="36.00" y="333.30" font-size="10" fill="#1e5580" font-weight="700" data-source="sections.experience.title">WORK EXPERIENCE</text>
<path d="M180 330.30 H559" stroke="#1e5580" stroke-width="0.8"/>
<text font-family="sans-serif" x="36.00" y="353.30" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.experience.items[0].period">2023 – Present</text>
<text font-family="sans-serif" x="180.00" y="353.30" font-size="10.5" fill="#1e5580" font-weight="700" data-source="sections.experience.items[0].position">Research coordinator</text>
<text font-family="sans-serif" x="180.00" y="371.00" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.experience.items[0].company">Civic Atlas Lab</text>
<text font-family="sans-serif" x="180.00" y="388.70" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.experience.items[0].location">Brussels, Belgium</text>
<text font-family="sans-serif" x="180.00" y="406.40" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.experience.items[0].description">Supported a distributed team producing accessible guidance for community</text>
<text font-family="sans-serif" x="180.00" y="421.10" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.experience.items[0].description">learning programmes.</text>
<text font-family="sans-serif" x="36.00" y="439.80" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.experience.items[0].roles[0].period">September 2024 –</text>
<text font-family="sans-serif" x="36.00" y="454.50" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.experience.items[0].roles[0].period">Present</text>
<text font-family="sans-serif" x="36.00" y="469.20" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.experience.items[0].roles[0].period">(part-time)</text>
<text font-family="sans-serif" x="180.00" y="439.80" font-size="10.5" fill="#20262b" font-weight="700" data-source="sections.experience.items[0].roles[0].position">Programme lead</text>
<text font-family="sans-serif" x="180.00" y="483.90" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.experience.items[0].roles[0].description">Led editorial planning across four working languages.</text>
<text font-family="sans-serif" x="36.00" y="502.60" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.experience.items[0].roles[1].period">January 2023 – August</text>
<text font-family="sans-serif" x="36.00" y="517.30" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.experience.items[0].roles[1].period">2024</text>
<text font-family="sans-serif" x="180.00" y="502.60" font-size="10.5" fill="#20262b" font-weight="700" data-source="sections.experience.items[0].roles[1].position">Research associate</text>
<text font-family="sans-serif" x="180.00" y="532.00" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.experience.items[0].roles[1].description">Built an evidence catalogue for public learning services.</text>
<text font-family="sans-serif" x="36.00" y="557.70" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.experience.items[1].period">Autumn 2021 – Summer</text>
<text font-family="sans-serif" x="36.00" y="572.40" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.experience.items[1].period">2022</text>
<text font-family="sans-serif" x="180.00" y="557.70" font-size="10.5" fill="#1e5580" font-weight="700" data-source="sections.experience.items[1].position">Research assistant</text>
<text font-family="sans-serif" x="180.00" y="575.40" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.experience.items[1].company">Open Learning Observatory</text>
<text font-family="sans-serif" x="180.00" y="593.10" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.experience.items[1].location">Leuven, Belgium</text>
<text font-family="sans-serif" x="180.00" y="610.80" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.experience.items[1].description">Collected public documentation and organised findings for volunteer reviewers.</text>
<text font-family="sans-serif" x="36.00" y="648.50" font-size="10" fill="#1e5580" font-weight="700" data-source="sections.education.title">EDUCATION AND</text>
<text font-family="sans-serif" x="36.00" y="661.50" font-size="10" fill="#1e5580" font-weight="700" data-source="sections.education.title">TRAINING</text>
<path d="M180 645.50 H559" stroke="#1e5580" stroke-width="0.8"/>
<text font-family="sans-serif" x="36.00" y="680.50" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.education.items[0].period">2019 – 2022</text>
<text font-family="sans-serif" x="180.00" y="680.50" font-size="10.5" fill="#1e5580" font-weight="700" data-source="sections.education.items[0].degree">BA Social Research</text>
<text font-family="sans-serif" x="180.00" y="698.20" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.education.items[0].school">Northbridge Institute</text>
<text font-family="sans-serif" x="180.00" y="715.90" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.education.items[0].area">Public policy</text>
<text font-family="sans-serif" x="180.00" y="733.60" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.education.items[0].grade">Distinction</text>
<text font-family="sans-serif" x="180.00" y="751.30" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.education.items[0].location">Leuven, Belgium</text>
<text font-family="sans-serif" x="36.00" y="808.00" font-size="8" fill="#56636d" font-weight="400" data-source="proposal.annotation">SYNTHETIC DESIGN PROPOSAL · NOT APPROVED</text>
<text font-family="sans-serif" x="526.00" y="808.00" font-size="8" fill="#56636d" font-weight="400" data-source="proposal.annotation">1 / 3</text></g></svg>

After

Width:  |  Height:  |  Size: 8.4 KiB

@@ -0,0 +1,45 @@
<svg xmlns="http://www.w3.org/2000/svg" width="595.28pt" height="841.89pt" viewBox="0 0 595.28 841.89" role="img" aria-labelledby="title desc"><title id="title">overflow visual proposal, page 2</title><desc id="desc">Synthetic ResumeData illustration. Static pagination, not renderer output. See mapping.md.</desc><g font-family="Helvetica"><rect width="595.28" height="841.89" fill="white"/>
<text font-family="sans-serif" x="36.00" y="42.00" font-size="11" fill="#1e5580" font-weight="700" data-source="basics.name">Alexandra Noor Marin-López</text>
<text font-family="sans-serif" x="420.00" y="42.00" font-size="9" fill="#1e5580" font-weight="400" data-source="proposal.annotation">Continuation</text>
<path d="M36 52 H559" stroke="#c2cdd5"/><text font-family="sans-serif" x="36" y="76" font-size="10" fill="#1e5580" data-source="proposal.annotation">EDUCATION</text><text font-family="sans-serif" x="36" y="89" font-size="10" fill="#1e5580" data-source="proposal.annotation">CONTINUED</text><text font-family="sans-serif" x="180" y="76" font-size="10.5" data-source="sections.education.items[0].description">Studied research methods, plain-language writing and collaborative</text><text font-family="sans-serif" x="180" y="90.7" font-size="10.5" data-source="sections.education.items[0].description">service design.</text>
<text font-family="sans-serif" x="36.00" y="153.70" font-size="10" fill="#1e5580" font-weight="700" data-source="sections.projects.title">PROJECTS</text>
<path d="M180 150.70 H559" stroke="#1e5580" stroke-width="0.8"/>
<text font-family="sans-serif" x="36.00" y="173.70" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.projects.items[0].period">2025</text>
<text font-family="sans-serif" x="180.00" y="173.70" font-size="10.5" fill="#1e5580" font-weight="700" data-source="sections.projects.items[0].name">Open Guidance Map</text>
<text font-family="sans-serif" x="180.00" y="191.40" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.projects.items[0].description">Mapped public learning resources.</text>
<text font-family="sans-serif" x="180.00" y="210.10" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.projects.items[0].description">Reviewed regional catalogues with volunteers, comparing the</text>
<text font-family="sans-serif" x="180.00" y="224.80" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.projects.items[0].description">clarity of eligibility, learning outcomes and application</text>
<text font-family="sans-serif" x="180.00" y="239.50" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.projects.items[0].description">guidance. Each record includes an attributed source and an</text>
<text font-family="sans-serif" x="180.00" y="254.20" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.projects.items[0].description">editorial review date.</text>
<text font-family="sans-serif" x="180.00" y="272.90" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.projects.items[0].description">Documented ambiguous wording without guessing the</text>
<text font-family="sans-serif" x="180.00" y="287.60" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.projects.items[0].description">provider’s intent. Workshop participants tested revised</text>
<text font-family="sans-serif" x="180.00" y="302.30" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.projects.items[0].description">navigation labels and contributed examples of questions</text>
<text font-family="sans-serif" x="180.00" y="317.00" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.projects.items[0].description">that the directory should answer.</text>
<text font-family="sans-serif" x="180.00" y="335.70" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.projects.items[0].description">Prepared a maintenance guide so future editors can update</text>
<text font-family="sans-serif" x="180.00" y="350.40" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.projects.items[0].description">links, preserve context and flag missing evidence. The guide</text>
<text font-family="sans-serif" x="180.00" y="365.10" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.projects.items[0].description">separates direct source statements from editorial</text>
<text font-family="sans-serif" x="180.00" y="379.80" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.projects.items[0].description">interpretations.</text>
<text font-family="sans-serif" x="180.00" y="405.50" font-size="10.5" fill="#1e5580" font-weight="700" data-source="sections.projects.items[1].name">Undated community handbook</text>
<text font-family="sans-serif" x="180.00" y="423.20" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.projects.items[1].website.url">https://example.invalid/learning/resources/</text>
<text font-family="sans-serif" x="180.00" y="437.90" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.projects.items[1].website.url">community-handbook/review-notes</text>
<text font-family="sans-serif" x="180.00" y="455.60" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.projects.items[1].description">Collected workshop notes without inventing a project date.</text>
<text font-family="sans-serif" x="36.00" y="493.30" font-size="10" fill="#1e5580" font-weight="700" data-source="sections.languages.title">LANGUAGE SKILLS</text>
<path d="M180 490.30 H559" stroke="#1e5580" stroke-width="0.8"/>
<text font-family="sans-serif" x="180.00" y="513.30" font-size="10.5" fill="#1e5580" font-weight="700" data-source="sections.languages.items[0].language">English</text>
<text font-family="sans-serif" x="180.00" y="531.00" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.languages.items[0].fluency">Native</text>
<text font-family="sans-serif" x="180.00" y="555.70" font-size="10.5" fill="#1e5580" font-weight="700" data-source="sections.languages.items[1].language">French</text>
<text font-family="sans-serif" x="180.00" y="573.40" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.languages.items[1].fluency">B2 (self-assessed)</text>
<text font-family="sans-serif" x="36.00" y="610.10" font-size="10" fill="#1e5580" font-weight="700" data-source="sections.skills.title">SKILLS</text>
<path d="M180 607.10 H559" stroke="#1e5580" stroke-width="0.8"/>
<text font-family="sans-serif" x="180.00" y="630.10" font-size="10.5" fill="#1e5580" font-weight="700" data-source="sections.skills.items[0].name">Research</text>
<text font-family="sans-serif" x="180.00" y="647.80" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.skills.items[0].proficiency">Advanced</text>
<text font-family="sans-serif" x="180.00" y="665.50" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.skills.items[0].keywords">Interviews, synthesis, documentation</text>
<text font-family="sans-serif" x="36.00" y="702.20" font-size="10" fill="#1e5580" font-weight="700" data-source="sections.awards.title">AWARDS</text>
<path d="M180 699.20 H559" stroke="#1e5580" stroke-width="0.8"/>
<text font-family="sans-serif" x="36.00" y="722.20" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.awards.items[0].date">2025</text>
<text font-family="sans-serif" x="180.00" y="722.20" font-size="10.5" fill="#1e5580" font-weight="700" data-source="sections.awards.items[0].title">Community research recognition</text>
<text font-family="sans-serif" x="180.00" y="739.90" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.awards.items[0].awarder">Civic Learning Forum</text>
<text font-family="sans-serif" x="180.00" y="757.60" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.awards.items[0].description">Recognised collaborative documentation work.</text>
<text font-family="sans-serif" x="36.00" y="808.00" font-size="8" fill="#56636d" font-weight="400" data-source="proposal.annotation">SYNTHETIC DESIGN PROPOSAL · NOT APPROVED</text>
<text font-family="sans-serif" x="526.00" y="808.00" font-size="8" fill="#56636d" font-weight="400" data-source="proposal.annotation">2 / 3</text></g></svg>

After

Width:  |  Height:  |  Size: 8.2 KiB

@@ -0,0 +1,32 @@
<svg xmlns="http://www.w3.org/2000/svg" width="595.28pt" height="841.89pt" viewBox="0 0 595.28 841.89" role="img" aria-labelledby="title desc"><title id="title">overflow visual proposal, page 3</title><desc id="desc">Synthetic ResumeData illustration. Static pagination, not renderer output. See mapping.md.</desc><g font-family="Helvetica"><rect width="595.28" height="841.89" fill="white"/>
<text font-family="sans-serif" x="36.00" y="42.00" font-size="11" fill="#1e5580" font-weight="700" data-source="basics.name">Alexandra Noor Marin-López</text>
<text font-family="sans-serif" x="420.00" y="42.00" font-size="9" fill="#1e5580" font-weight="400" data-source="proposal.annotation">Continuation</text>
<path d="M36 52 H559" stroke="#c2cdd5"/>
<text font-family="sans-serif" x="36.00" y="76.00" font-size="10" fill="#1e5580" font-weight="700" data-source="sections.certifications.title">CERTIFICATIONS</text>
<path d="M180 73.00 H559" stroke="#1e5580" stroke-width="0.8"/>
<text font-family="sans-serif" x="36.00" y="96.00" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.certifications.items[0].date">2024</text>
<text font-family="sans-serif" x="180.00" y="96.00" font-size="10.5" fill="#1e5580" font-weight="700" data-source="sections.certifications.items[0].title">Accessible writing workshop</text>
<text font-family="sans-serif" x="180.00" y="113.70" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.certifications.items[0].issuer">Open Training Collective</text>
<text font-family="sans-serif" x="36.00" y="166.00" font-size="10" fill="#1e5580" font-weight="700" data-source="sections.publications.title">PUBLICATIONS</text>
<path d="M180 163.00 H559" stroke="#1e5580" stroke-width="0.8"/>
<text font-family="sans-serif" x="36.00" y="186.00" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.publications.items[0].date">2025</text>
<text font-family="sans-serif" x="180.00" y="186.00" font-size="10.5" fill="#1e5580" font-weight="700" data-source="sections.publications.items[0].title">A practical guide to learning directories</text>
<text font-family="sans-serif" x="180.00" y="203.70" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.publications.items[0].publisher">Community Methods Review</text>
<text font-family="sans-serif" x="36.00" y="240.40" font-size="10" fill="#1e5580" font-weight="700" data-source="sections.volunteer.title">VOLUNTEERING</text>
<path d="M180 237.40 H559" stroke="#1e5580" stroke-width="0.8"/>
<text font-family="sans-serif" x="36.00" y="260.40" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.volunteer.items[0].period">2022 – Present</text>
<text font-family="sans-serif" x="180.00" y="260.40" font-size="10.5" fill="#1e5580" font-weight="700" data-source="sections.volunteer.items[0].organization">Neighbourhood Learning Circle</text>
<text font-family="sans-serif" x="180.00" y="278.10" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.volunteer.items[0].location">Brussels, Belgium</text>
<text font-family="sans-serif" x="180.00" y="295.80" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.volunteer.items[0].description">Facilitated peer mentoring sessions.</text>
<text font-family="sans-serif" x="36.00" y="333.50" font-size="10" fill="#1e5580" font-weight="700" data-source="sections.interests.title">INTERESTS</text>
<path d="M180 330.50 H559" stroke="#1e5580" stroke-width="0.8"/>
<text font-family="sans-serif" x="180.00" y="353.50" font-size="10.5" fill="#1e5580" font-weight="700" data-source="sections.interests.items[0].name">Walking</text>
<text font-family="sans-serif" x="180.00" y="371.20" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.interests.items[0].keywords">Urban history, public spaces</text>
<text font-family="sans-serif" x="36.00" y="407.90" font-size="10" fill="#1e5580" font-weight="700" data-source="sections.references.title">REFERENCES</text>
<path d="M180 404.90 H559" stroke="#1e5580" stroke-width="0.8"/>
<text font-family="sans-serif" x="180.00" y="427.90" font-size="10.5" fill="#1e5580" font-weight="700" data-source="sections.references.items[0].name">Available upon request</text>
<text font-family="sans-serif" x="36.00" y="464.60" font-size="10" fill="#1e5580" font-weight="700" data-source="customSections[0].title">OTHER ACTIVITIES</text>
<path d="M180 461.60 H559" stroke="#1e5580" stroke-width="0.8"/>
<text font-family="sans-serif" x="180.00" y="484.60" font-size="10.5" fill="#20262b" font-weight="400" data-source="customSections[0].items[0].content">Community workshops and peer mentoring.</text>
<text font-family="sans-serif" x="36.00" y="808.00" font-size="8" fill="#56636d" font-weight="400" data-source="proposal.annotation">SYNTHETIC DESIGN PROPOSAL · NOT APPROVED</text>
<text font-family="sans-serif" x="526.00" y="808.00" font-size="8" fill="#56636d" font-weight="400" data-source="proposal.annotation">3 / 3</text></g></svg>

After

Width:  |  Height:  |  Size: 4.9 KiB

@@ -0,0 +1,88 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1320" height="1150" viewBox="0 0 1320 1150" role="img" aria-labelledby="title desc"><title id="title">Official reference structure and independent proposal</title><desc id="desc">Left is an analytical schematic of the legacy EEAS-hosted Europass form, not a reproduction. Right is the synthetic proposal. See README.md for source and reuse limits.</desc><rect width="1320" height="1150" fill="#edf1f4"/>
<text x="40" y="45" font-family="sans-serif" font-size="26" fill="#20262b">REFERENCE → PROPOSAL</text>
<text x="40" y="77" font-family="sans-serif" font-size="16" fill="#20262b">Plan 33A · research only · synthetic content · visual approval pending</text>
<text x="40" y="119" font-family="sans-serif" font-size="19" fill="#20262b">Observed legacy structure — analytical schematic</text>
<text x="680" y="119" font-family="sans-serif" font-size="19" fill="#20262b">European chronology — mapped proposal</text>
<rect x="40" y="140" width="595" height="842" fill="white"/>
<text x="70" y="178" font-family="sans-serif" font-size="13" fill="#20262b">Legacy source: EEAS PDF, © European Union</text>
<text x="70" y="199" font-family="sans-serif" font-size="13" fill="#20262b">2002–2018 document; 2025 hosting path</text>
<text x="70" y="227" font-family="sans-serif" font-size="12" fill="#56636d">Brand mark intentionally not reproduced</text>
<text x="70" y="280" font-family="sans-serif" font-size="13" fill="#1e5580">Personal information</text>
<path d="M245 275 H605" stroke="#1e5580"/>
<text x="245" y="304" font-family="sans-serif" font-size="13" fill="#20262b">Name and contacts</text>
<text x="70" y="395" font-family="sans-serif" font-size="13" fill="#1e5580">Work experience</text>
<path d="M245 390 H605" stroke="#1e5580"/>
<text x="245" y="419" font-family="sans-serif" font-size="13" fill="#20262b">Position · employer · responsibilities</text>
<text x="70" y="423" font-family="sans-serif" font-size="12" fill="#20262b">Date range</text>
<text x="70" y="510" font-family="sans-serif" font-size="13" fill="#1e5580">Education and training</text>
<path d="M245 505 H605" stroke="#1e5580"/>
<text x="245" y="534" font-family="sans-serif" font-size="13" fill="#20262b">Qualification · institution · subjects</text>
<text x="70" y="538" font-family="sans-serif" font-size="12" fill="#20262b">Date range</text>
<text x="70" y="625" font-family="sans-serif" font-size="13" fill="#1e5580">Personal skills</text>
<path d="M245 620 H605" stroke="#1e5580"/>
<text x="245" y="649" font-family="sans-serif" font-size="13" fill="#20262b">Mother tongue; five language dimensions</text>
<rect x="245" y="674" width="70" height="42" fill="none" stroke="#b1bcc4"/>
<text x="252" y="700" font-family="sans-serif" font-size="12" fill="#20262b">1</text>
<rect x="315" y="674" width="70" height="42" fill="none" stroke="#b1bcc4"/>
<text x="322" y="700" font-family="sans-serif" font-size="12" fill="#20262b">2</text>
<rect x="385" y="674" width="70" height="42" fill="none" stroke="#b1bcc4"/>
<text x="392" y="700" font-family="sans-serif" font-size="12" fill="#20262b">3</text>
<rect x="455" y="674" width="70" height="42" fill="none" stroke="#b1bcc4"/>
<text x="462" y="700" font-family="sans-serif" font-size="12" fill="#20262b">4</text>
<rect x="525" y="674" width="70" height="42" fill="none" stroke="#b1bcc4"/>
<text x="532" y="700" font-family="sans-serif" font-size="12" fill="#20262b">5</text>
<text x="245" y="739" font-family="sans-serif" font-size="12" fill="#20262b">No conversion from a single numeric rating</text>
<text x="70" y="790" font-family="sans-serif" font-size="13" fill="#1e5580">Other skills</text>
<path d="M245 785 H605" stroke="#1e5580"/>
<text x="245" y="814" font-family="sans-serif" font-size="13" fill="#20262b">Communication · organisation · job skills</text>
<text x="70" y="943" font-family="sans-serif" font-size="12" fill="#56636d">Structure only; source-specific recruitment text omitted</text>
<g><title id="proposal-title">One-page visual proposal</title><desc id="proposal-desc">Synthetic ResumeData illustration. Static layout, not renderer output. See mapping.md.</desc><g font-family="Helvetica"><rect x="680" y="140" width="595.28" height="841.89" fill="white"/>
<text font-family="sans-serif" x="860.00" y="202.00" font-size="23" fill="#1e5580" font-weight="700" data-source="basics.name">Alex Marin</text>
<text font-family="sans-serif" x="860.00" y="228.00" font-size="10.5" fill="#20262b" font-weight="400" data-source="basics.headline">Research coordinator</text>
<text font-family="sans-serif" x="860.00" y="249.00" font-size="10.5" fill="#20262b" font-weight="400" data-source="basics.location">Brussels, Belgium</text>
<text font-family="sans-serif" x="860.00" y="266.00" font-size="10.5" fill="#20262b" font-weight="400" data-source="basics.email">alex.marin@example.invalid</text>
<text font-family="sans-serif" x="716.00" y="308.00" font-size="10" fill="#1e5580" font-weight="700" data-source="summary.title">ABOUT ME</text>
<path d="M860 305.00 H1239" stroke="#1e5580" stroke-width="0.8"/>
<text font-family="sans-serif" x="860.00" y="330.00" font-size="10.5" fill="#20262b" font-weight="400" data-source="summary.content">Research coordinator building clear public-service guidance.</text>
<text font-family="sans-serif" x="716.00" y="371.00" font-size="10" fill="#1e5580" font-weight="700" data-source="sections.experience.title">WORK EXPERIENCE</text>
<path d="M860 368.00 H1239" stroke="#1e5580" stroke-width="0.8"/>
<text font-family="sans-serif" x="716.00" y="394.00" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.experience.items[0].period">2023 – Present</text>
<text font-family="sans-serif" x="860.00" y="394.00" font-size="10.5" fill="#20262b" font-weight="700" data-source="sections.experience.items[0].position">Research coordinator</text>
<text font-family="sans-serif" x="860.00" y="412.00" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.experience.items[0].company">Civic Atlas Lab</text>
<text font-family="sans-serif" x="860.00" y="429.00" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.experience.items[0].location">Brussels, Belgium</text>
<text font-family="sans-serif" x="860.00" y="449.00" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.experience.items[0].description">• Coordinated multilingual guidance reviews.</text>
<text font-family="sans-serif" x="860.00" y="466.00" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.experience.items[0].description">• Published accessible research summaries.</text>
<text font-family="sans-serif" x="716.00" y="507.00" font-size="10" fill="#1e5580" font-weight="700" data-source="sections.education.title">EDUCATION AND</text>
<text font-family="sans-serif" x="716.00" y="520.00" font-size="10" fill="#1e5580" font-weight="700" data-source="sections.education.title">TRAINING</text>
<path d="M860 504.00 H1239" stroke="#1e5580" stroke-width="0.8"/>
<text font-family="sans-serif" x="716.00" y="541.00" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.education.items[0].period">2019 – 2022</text>
<text font-family="sans-serif" x="860.00" y="541.00" font-size="10.5" fill="#20262b" font-weight="700" data-source="sections.education.items[0].degree">BA Social Research</text>
<text font-family="sans-serif" x="860.00" y="559.00" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.education.items[0].school">Northbridge Institute</text>
<text font-family="sans-serif" x="860.00" y="576.00" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.education.items[0].area">Public policy</text>
<text font-family="sans-serif" x="716.00" y="617.00" font-size="10" fill="#1e5580" font-weight="700" data-source="sections.languages.title">LANGUAGE SKILLS</text>
<path d="M860 614.00 H1239" stroke="#1e5580" stroke-width="0.8"/>
<text font-family="sans-serif" x="860.00" y="640.00" font-size="10.5" fill="#20262b" font-weight="700" data-source="sections.languages.items[0].language">English</text>
<text font-family="sans-serif" x="950.00" y="640.00" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.languages.items[0].fluency">Native</text>
<text font-family="sans-serif" x="860.00" y="661.00" font-size="10.5" fill="#20262b" font-weight="700" data-source="sections.languages.items[1].language">French</text>
<text font-family="sans-serif" x="950.00" y="661.00" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.languages.items[1].fluency">B2 (self-assessed)</text>
<text font-family="sans-serif" x="716.00" y="702.00" font-size="10" fill="#1e5580" font-weight="700" data-source="sections.skills.title">SKILLS</text>
<path d="M860 699.00 H1239" stroke="#1e5580" stroke-width="0.8"/>
<text font-family="sans-serif" x="860.00" y="725.00" font-size="10.5" fill="#20262b" font-weight="700" data-source="sections.skills.items[0].name">Research</text>
<text font-family="sans-serif" x="950.00" y="725.00" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.skills.items[0].proficiency">Advanced</text>
<text font-family="sans-serif" x="860.00" y="746.00" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.skills.items[0].keywords">Interviews, synthesis, documentation</text>
<text font-family="sans-serif" x="716.00" y="787.00" font-size="10" fill="#1e5580" font-weight="700" data-source="sections.projects.title">PROJECTS</text>
<path d="M860 784.00 H1239" stroke="#1e5580" stroke-width="0.8"/>
<text font-family="sans-serif" x="716.00" y="810.00" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.projects.items[0].period">2025</text>
<text font-family="sans-serif" x="860.00" y="810.00" font-size="10.5" fill="#20262b" font-weight="700" data-source="sections.projects.items[0].name">Open Guidance Map</text>
<text font-family="sans-serif" x="860.00" y="830.00" font-size="10.5" fill="#20262b" font-weight="400" data-source="sections.projects.items[0].description">Mapped public learning resources.</text>
<text font-family="sans-serif" x="716.00" y="871.00" font-size="10" fill="#1e5580" font-weight="700" data-source="customSections[0].title">OTHER ACTIVITIES</text>
<path d="M860 868.00 H1239" stroke="#1e5580" stroke-width="0.8"/>
<text font-family="sans-serif" x="860.00" y="894.00" font-size="10.5" fill="#20262b" font-weight="400" data-source="customSections[0].items[0].content">Community workshops and peer mentoring.</text>
<text font-family="sans-serif" x="716.00" y="948.00" font-size="8" fill="#56636d" font-weight="400" data-source="proposal.annotation">SYNTHETIC DESIGN PROPOSAL · NOT APPROVED</text>
<text font-family="sans-serif" x="1206.00" y="948.00" font-size="8" fill="#56636d" font-weight="400" data-source="proposal.annotation">1 / 1</text></g></g>
<text x="40" y="1022" font-family="sans-serif" font-size="17" fill="#20262b">Keep: chronological gutter, blue section rules, broad content column.</text>
<text x="40" y="1054" font-family="sans-serif" font-size="17" fill="#20262b">Change: neutral identity, optional personal fields, plain-text fluency, user-authored sections.</text>
<text x="40" y="1086" font-family="sans-serif" font-size="15" fill="#20262b">Current Europass offers several layouts; this legacy structure is not a universal current specification.</text>
<text x="40" y="1120" font-family="sans-serif" font-size="13" fill="#20262b">Reference URL, access date, exact field mapping and unresolved reuse decisions: ../README.md and ../mapping.md</text>
</svg>

After

Width:  |  Height:  |  Size: 11 KiB

+133
View File
@@ -0,0 +1,133 @@
# Existing ResumeData to proposed visual fields
Read against `b85d285b69843612e9d7f0ab802248982e7bf0ea`. The source of truth is
[data.ts](../../../packages/schema/src/resume/data.ts), with existing defaults in
[default.ts](../../../packages/schema/src/resume/default.ts) and visibility behavior in
[shared filtering](../../../packages/pdf/src/templates/shared/filtering.ts).
This document proposes presentation; it adds no fields or renderer behavior.
Both fixture records were validated against the current Zod `resumeDataSchema`. The checked-in generated
`packages/schema/schema.json` rejects the current `picture.fit` field; it is stale relative to `data.ts` at
this revision. That unrelated generated-schema mismatch is recorded, not repaired in this research unit.
The canonical SVG text nodes carry `data-source` paths into the matching object in
[synthetic-fixtures.json](synthetic-fixtures.json). Wrapped text uses the same path on each line.
Section titles are shown in uppercase in these English drawings; source strings retain their original case.
`proposal.annotation` means review metadata, not ResumeData: synthetic watermark, continuation labels and
page numbers. The repeated running name still comes from `basics.name`.
## Header and shared fields
| Proposed display | Existing path | Rule / absence behavior |
| --- | --- | --- |
| Name and running name | `basics.name` | Preserve full name; do not split first/last names or reorder culturally. Wrap long names. Empty name renders no invented label. |
| Professional headline | `basics.headline` | Optional text, wraps within the detail width. It is not an official occupational code. |
| Contact location | `basics.location` | One free string; no parsing into country/address. Do not invent a full postal address. |
| Email and phone | `basics.email`, `basics.phone` | Omit empty values and separators. Phone is empty in both fixtures; no number is fabricated. Future renderer uses existing link handling. |
| Personal website | `basics.website.url`, `.label` | Nonempty URL uses label when provided, URL otherwise. Overflow displays “Research portfolio.” SVGs illustrate text only; hyperlink behavior needs implementation checks. |
| Other personal detail | `basics.customFields[].text`, `.link`, `.icon` | Display user-authored text/link in order. Overflow shows availability. No semantic inference from text. There is no per-field hidden flag; empty text yields no visual row. |
| Optional photo | `picture.url`, `.hidden`, `.fit`, `.size`, `.rotation`, `.aspectRatio`, border/shadow fields | Both fixtures have no URL and `hidden: true`; no frame is displayed. Future visible photo uses existing upload/picture contract and preserves cover/contain choice. Suggested reading-start header frame is not visually approved. Failed image handling needs future verification. |
| Section heading | `summary.title`, `sections.<type>.title`, `customSections[].title` | Use authored title; empty title uses existing localized fallback. Do not replace custom titles with fixed Europass labels. |
| Section presence/order | `metadata.layout.pages[].main`, `.sidebar`, `sections.*.hidden`, `customSections[].hidden`, `summary.hidden` | Respect authored page/column order and visibility. Missing-from-layout is distinct from hidden. Fixtures choose one authored full-width page; physical overflow is illustrated separately. |
| Date gutter | Item `.period` or `.date` | Verbatim free text, including role periods. Wrap to fixed gutter; keep undated details aligned. No automatic chronological sort. The fixture itself is authored newest-first. |
| Rich description | Item `.description`, summary `.content`, custom summary item `.content` | Preserve supported paragraphs, lists, emphasis and links. These drawings only exercise paragraphs/lists. No HTML tags printed; no arbitrary HTML discarded by proposed renderer. Unsupported-rich-text handling remains implementation work. |
| Item website | Item `.website.url`, `.label`, `.inlineLink` | Preserve URL target; label or raw URL as display text. Inline-link preference must remain honored in future renderer. Fixture links all use `inlineLink: false`. |
| Icons and colors | Section `.icon`; profile/skill/interest `.icon`, `.iconColor`; `metadata.page.hideIcons`, `.hideSectionIcons` | Default proposal is quiet/text-led. Fixture icons are absent or suppressed. Nondefault icon settings are not demonstrated and must be tested before implementation approval. |
## Built-in sections
Each `items[]` entry also has `id` and `hidden`; identifiers never print. A section with no visible valid
items is omitted with its heading and rule. The table lists every content field, including blank optional fields.
| Proposed section | Paths under `sections.<type>.items[]` | Presentation / fixture coverage |
| --- | --- | --- |
| Profiles | `profiles`: `network`, `username`, `website`, `icon`, `iconColor` | Network, user name, website label. Present only in overflow. Keep within section, do not duplicate in header. |
| Work experience | `experience`: `position`, `company`, `location`, `period`, `description`, `website`, `roles[]` | Position then organization/location, period in gutter. Overflow retains overall title/tenure and both individual roles. |
| Individual experience role | `experience.roles[]`: `id`, `position`, `period`, `description` | Role heading, independent period, description. No role hidden flag exists. Existing shared filtering excludes blank-position roles; parent visibility still applies. |
| Education and training | `education`: `degree`, `school`, `area`, `grade`, `location`, `period`, `description`, `website` | Qualification then institution, subject, supplied grade and location. Overflow includes all optional text fields except website. Grade is not an EQF level. |
| Projects | `projects`: `name`, `period`, `description`, `website` | Named project, date gutter, rich narrative. Overflow adds a long multi-paragraph project and an undated project with raw long URL. |
| Language skills | `languages`: `language`, `fluency`, `level` | Show language and supplied fluency verbatim. English/Native and French/B2 (self-assessed) are synthetic user-entered strings. No conversion from `level` to fluency or CEFR. |
| Skills | `skills`: `name`, `proficiency`, `level`, `keywords`, `icon`, `iconColor` | Show name, proficiency, comma-separated keywords. Keyword strings/order retained. Levels are intentionally hidden via existing `metadata.design.level.type: hidden`; no proficiency inferred. |
| Awards | `awards`: `title`, `awarder`, `date`, `description`, `website` | Title, awarder, supplied date, description. Overflow only. |
| Certifications | `certifications`: `title`, `issuer`, `date`, `description`, `website` | Title, issuer and supplied date; empty description/link omitted. Overflow only. No accreditation claim. |
| Publications | `publications`: `title`, `publisher`, `date`, `description`, `website` | Title, publisher and supplied date. Overflow only. No DOI field invented. |
| Volunteering | `volunteer`: `organization`, `location`, `period`, `description`, `website` | Organization, place, period and description. There is no dedicated role-title field; do not infer one. Overflow only. |
| Interests | `interests`: `name`, `keywords`, `icon`, `iconColor` | Name and keyword text, with configured icon behavior. Overflow only. |
| References | `references`: `name`, `position`, `phone`, `description`, `website` | Existing user-authored “Available upon request” string in overflow; no contact is invented. There is no structured reference-email field. |
| About me | `summary.content`, `.title`, `.hidden` | Existing summary supports optional narrative. Present in both records. This is separate from experience descriptions. |
## Custom sections, omitted and unsupported fields
| Concern | Existing representation | Decision |
| --- | --- | --- |
| Custom typed sections | `customSections[]`: `id`, `type`, shared section fields, `items[]` matching type | Same mapping as the matching built-in type. Preserve own title and authored layout ID. All 12 built-in types are structurally available as custom types; this fixture demonstrates a custom summary, not every custom variant. |
| Other activities | Custom `type: summary`, `items[].content` | Both records display community workshops and peer mentoring. No fabricated employer or dates. |
| Cover letter | Custom `type: cover-letter`, `items[].recipient`, `.content` | Supported by current model but outside this CV visual proposal; fixtures contain none. A future template must preserve existing cover-letter behavior or explicitly gate selection; silently dropping a visible cover letter is not acceptable. |
| Structured nationality, birth date/place, sex/gender, full address components, second phone/fax, driving licence | No dedicated typed fields in `basics` | Omitted from examples, not required. A user can author free text in `customFields`, but that is not a typed equivalent or automatic mapping. Never infer from names, photos, location or language. |
| Mother-tongue boolean or multiple structured native languages | `languages[].fluency` is free text only | No separate mother-tongue group inferred from “Native.” Keep supplied text alongside language. |
| Five CEFR dimensions: listening, reading, spoken interaction, spoken production, writing | No fields | Omit official reference matrix. A scalar `level` or single fluency text cannot populate it faithfully. |
| Language certificate linked to particular language/dimension | General certifications exist, no structured association | Keep as separate certification if user authored one. Do not guess association. |
| EQF/NQF/ISCED level, qualification IDs, occupation codes, business sector | No dedicated typed fields | Omit unless user explicitly wrote free text in existing description/area/custom content. No equivalence inferred from degree or grade. |
| Attachments, signed declaration, consent block, official Europass identifiers, XML payload, verification QR | No corresponding proposed CV field | Omitted. Existing website links do not establish attached documents, signatures or official interoperability. |
| Official branding/copyright footer | Not ResumeData | Omitted; reuse permission not established. Source attribution belongs in research note, not masquerading as official CV provenance. |
| Notes | `metadata.notes` | Never print. Overflow contains `PRIVATE_NOTES_SENTINEL` to make accidental disclosure detectable. |
## Visibility, empty content and layout controls
Existing filtering is the behavioral baseline: skip hidden sections/items, title-backed entries without their
required primary title, and blank-position experience roles. Those primary fields are `network`, `company`,
`school`, `name` (projects/skills/interests/references), `language`, `title` (awards/certifications/publications)
and `organization`. A missing optional field alone must not hide an otherwise valid item.
Summary visibility currently checks nonempty trimmed content, not semantic emptiness of HTML. Do not claim
that `<p></p>` is already filtered correctly; future proposal tests must include it and settle any desired
change separately. The fixtures use populated summaries and empty item arrays, not malformed imported data.
Overflow includes a hidden experience item, a hidden custom section and private notes. Their `HIDDEN_*` and
`PRIVATE_NOTES_*` tokens must not occur in any visual artifact. One-page empty sections do not render headings.
Separators and rules belong to visible content only. Blank date cells stay blank, never show “Present” or a dash.
`columns`, `keepTogether`, `startOnNewPage`, `skills.layout`, authored pages/full-width/sidebar settings,
typography, colors, page format/margins/gaps, hyphenation and style rules already exist. The fixture explicitly
chooses a full-width A4 page, single-column sections, ordinary flow and no style rules. It retains the valid
existing `metadata.template: onyx` only to remain schema-compatible: importing this fixture currently selects
Onyx, **not this proposal**. No new template ID, date-width option or stylesheet behavior is encoded.
## Pagination and long text proposal
One-page and overflow SVGs are manual, deterministic illustrations. They do not exercise `packages/pdf`.
The three overflow drawings illustrate one authored page flowing onto physical pages, not editable per-page
overflow settings. No fixed page count or exact future line break is promised.
Dates wrap inside a 128 pt reading-start gutter; detail starts remain aligned. Keep entry title with its first
detail line, and section heading with its first item. Allow a long entry to continue across pages without
truncation or repeated body text. In the study, the education description continues on page 2 as a complete
two-line paragraph; a continuation label is review metadata. Page 3 carries remaining sections without shrinking
font size to force two pages. Repeated running names/page numbers are intentional, not duplicated body content.
Long names, headings, free-text dates, paragraphs and URLs must wrap; do not ellipsize, parse or normalize them.
The overflow contains an accented long name, wrapped role dates and undated project. Long unbroken URL glyphs
need break opportunities while retaining the original link target. Future renderer tests must add a single
entry longer than a page, bullets across breaks, manual page starts, nondefault columns and keep-together
settings. These cases are specified here but not established by the static study.
## Localization, RTL, photo and accessibility review limits
Use `metadata.page.locale` for existing translated fallback headings; preserve user-authored text, date strings
and titles. Do not translate content or uppercase text in languages where that harms meaning or shaping.
The proposal's uppercase English labels are a visual choice, not a localization algorithm. Font selection and
fallback should stay with existing PDF font registration, not be bundled into this research.
RTL proposal: put label/date gutter at reading start (right), mirror alignment and optional photo placement,
keep email/URL/phone runs in their natural direction, and preserve logical source order. Current model has no
new direction field here; reuse the existing locale/direction contract after validating it. Arabic/Hebrew shaping,
mixed-direction punctuation, CJK glyphs and translated long headings need their own rendered fixtures before
implementation approval. The Latin-script drawings do not prove RTL or full localization coverage.
No synthetic portrait was needed for the photo-free design. Before implementing the optional-photo variation,
review a visible-photo artifact using nonprivate synthetic imagery, both cover and contain, and long names
beside the frame. No stock/person photo or user upload was used in this package.
Keep semantic section labels and logical extraction order even if visual arrangement changes. Tagged PDF,
screen-reader behavior, contrast under user colors and link semantics require Plan 31 coordination and real
export checks. Plain SVG text readability does not establish document accessibility conformance.
@@ -0,0 +1,768 @@
{
"onePage": {
"picture": {
"hidden": true,
"fit": "cover",
"url": "",
"size": 80,
"rotation": 0,
"aspectRatio": 1,
"borderRadius": 0,
"borderColor": "rgba(0, 0, 0, 0.5)",
"borderWidth": 0,
"shadowColor": "rgba(0, 0, 0, 0.5)",
"shadowWidth": 0
},
"basics": {
"name": "Alex Marin",
"headline": "Research coordinator",
"email": "alex.marin@example.invalid",
"phone": "",
"location": "Brussels, Belgium",
"website": {
"url": "",
"label": ""
},
"customFields": []
},
"summary": {
"title": "About me",
"icon": "article",
"columns": 1,
"hidden": false,
"keepTogether": false,
"startOnNewPage": false,
"content": "<p>Research coordinator building clear public-service guidance.</p>"
},
"sections": {
"profiles": {
"title": "",
"icon": "messenger-logo",
"columns": 1,
"hidden": false,
"keepTogether": false,
"startOnNewPage": false,
"items": []
},
"experience": {
"title": "Work experience",
"icon": "none",
"columns": 1,
"hidden": false,
"keepTogether": false,
"startOnNewPage": false,
"items": [
{
"id": "exp-1",
"hidden": false,
"company": "Civic Atlas Lab",
"position": "Research coordinator",
"location": "Brussels, Belgium",
"period": "2023 – Present",
"website": {
"url": "",
"label": "",
"inlineLink": false
},
"description": "<ul><li>Coordinated multilingual guidance reviews.</li><li>Published accessible research summaries.</li></ul>",
"roles": []
}
]
},
"education": {
"title": "Education and training",
"icon": "none",
"columns": 1,
"hidden": false,
"keepTogether": false,
"startOnNewPage": false,
"items": [
{
"id": "edu-1",
"hidden": false,
"school": "Northbridge Institute",
"degree": "BA Social Research",
"area": "Public policy",
"grade": "",
"location": "",
"period": "2019 – 2022",
"website": {
"url": "",
"label": "",
"inlineLink": false
},
"description": ""
}
]
},
"projects": {
"title": "Projects",
"icon": "none",
"columns": 1,
"hidden": false,
"keepTogether": false,
"startOnNewPage": false,
"items": [
{
"id": "project-1",
"hidden": false,
"name": "Open Guidance Map",
"period": "2025",
"website": {
"url": "",
"label": "",
"inlineLink": false
},
"description": "<p>Mapped public learning resources.</p>"
}
]
},
"skills": {
"title": "Skills",
"icon": "none",
"columns": 1,
"hidden": false,
"keepTogether": false,
"startOnNewPage": false,
"items": [
{
"id": "skill-1",
"hidden": false,
"icon": "",
"iconColor": "",
"name": "Research",
"proficiency": "Advanced",
"level": 0,
"keywords": ["Interviews", "synthesis", "documentation"]
}
],
"layout": "default"
},
"languages": {
"title": "Language skills",
"icon": "none",
"columns": 1,
"hidden": false,
"keepTogether": false,
"startOnNewPage": false,
"items": [
{
"id": "lang-1",
"hidden": false,
"language": "English",
"fluency": "Native",
"level": 0
},
{
"id": "lang-2",
"hidden": false,
"language": "French",
"fluency": "B2 (self-assessed)",
"level": 0
}
]
},
"interests": {
"title": "",
"icon": "football",
"columns": 1,
"hidden": false,
"keepTogether": false,
"startOnNewPage": false,
"items": []
},
"awards": {
"title": "",
"icon": "trophy",
"columns": 1,
"hidden": false,
"keepTogether": false,
"startOnNewPage": false,
"items": []
},
"certifications": {
"title": "",
"icon": "certificate",
"columns": 1,
"hidden": false,
"keepTogether": false,
"startOnNewPage": false,
"items": []
},
"publications": {
"title": "",
"icon": "books",
"columns": 1,
"hidden": false,
"keepTogether": false,
"startOnNewPage": false,
"items": []
},
"volunteer": {
"title": "",
"icon": "hand-heart",
"columns": 1,
"hidden": false,
"keepTogether": false,
"startOnNewPage": false,
"items": []
},
"references": {
"title": "",
"icon": "phone",
"columns": 1,
"hidden": false,
"keepTogether": false,
"startOnNewPage": false,
"items": []
}
},
"customSections": [
{
"title": "Other activities",
"icon": "none",
"columns": 1,
"hidden": false,
"keepTogether": false,
"startOnNewPage": false,
"items": [
{
"id": "custom-item-1",
"hidden": false,
"content": "<p>Community workshops and peer mentoring.</p>"
}
],
"id": "other-activities",
"type": "summary"
}
],
"metadata": {
"template": "onyx",
"layout": {
"sidebarWidth": 35,
"pages": [
{
"fullWidth": true,
"main": ["summary", "experience", "education", "languages", "skills", "projects", "other-activities"],
"sidebar": []
}
]
},
"page": {
"gapX": 4,
"gapY": 18,
"marginX": 36,
"marginY": 36,
"format": "a4",
"locale": "en-US",
"hideLinkUnderline": false,
"hideIcons": false,
"hideSectionIcons": true
},
"design": {
"colors": {
"primary": "rgba(30, 85, 128, 1)",
"text": "rgba(32, 38, 43, 1)",
"background": "rgba(255, 255, 255, 1)"
},
"level": {
"icon": "star",
"type": "hidden"
}
},
"typography": {
"body": {
"fontFamily": "Arial",
"fontWeights": ["400"],
"fontSize": 10.5,
"lineHeight": 1.4
},
"heading": {
"fontFamily": "Arial",
"fontWeights": ["700"],
"fontSize": 10,
"lineHeight": 1.3
}
},
"notes": "",
"styleRules": []
}
},
"overflow": {
"picture": {
"hidden": true,
"fit": "cover",
"url": "",
"size": 80,
"rotation": 0,
"aspectRatio": 1,
"borderRadius": 0,
"borderColor": "rgba(0, 0, 0, 0.5)",
"borderWidth": 0,
"shadowColor": "rgba(0, 0, 0, 0.5)",
"shadowWidth": 0
},
"basics": {
"name": "Alexandra Noor Marin-López",
"headline": "Research coordinator for multilingual public-service information",
"email": "alex.marin@example.invalid",
"phone": "",
"location": "Brussels, Belgium",
"website": {
"url": "https://example.invalid/alexandra/research",
"label": "Research portfolio"
},
"customFields": [
{
"id": "availability",
"icon": "",
"text": "Available for cross-border project work",
"link": ""
}
]
},
"summary": {
"title": "About me",
"icon": "article",
"columns": 1,
"hidden": false,
"keepTogether": false,
"startOnNewPage": false,
"content": "<p>Research coordinator building clear public-service guidance.</p>"
},
"sections": {
"profiles": {
"title": "Profiles",
"icon": "none",
"columns": 1,
"hidden": false,
"keepTogether": false,
"startOnNewPage": false,
"items": [
{
"id": "profile-1",
"hidden": false,
"network": "Portfolio",
"username": "alexandra",
"icon": "",
"iconColor": "",
"website": {
"url": "https://example.invalid/alexandra",
"label": "Selected writing",
"inlineLink": false
}
}
]
},
"experience": {
"title": "Work experience",
"icon": "none",
"columns": 1,
"hidden": false,
"keepTogether": false,
"startOnNewPage": false,
"items": [
{
"id": "exp-1",
"hidden": false,
"company": "Civic Atlas Lab",
"position": "Research coordinator",
"location": "Brussels, Belgium",
"period": "2023 – Present",
"website": {
"url": "",
"label": "",
"inlineLink": false
},
"description": "<p>Supported a distributed team producing accessible guidance for community learning programmes.</p>",
"roles": [
{
"id": "role-1",
"position": "Programme lead",
"period": "September 2024 – Present (part-time)",
"description": "<p>Led editorial planning across four working languages.</p>"
},
{
"id": "role-2",
"position": "Research associate",
"period": "January 2023 – August 2024",
"description": "<p>Built an evidence catalogue for public learning services.</p>"
}
]
},
{
"id": "exp-2",
"hidden": false,
"company": "Open Learning Observatory",
"position": "Research assistant",
"location": "Leuven, Belgium",
"period": "Autumn 2021 – Summer 2022",
"website": {
"url": "",
"label": "",
"inlineLink": false
},
"roles": [],
"description": "<p>Collected public documentation and organised findings for volunteer reviewers.</p>"
},
{
"id": "exp-hidden",
"hidden": true,
"company": "HIDDEN_ITEM_SENTINEL",
"position": "",
"location": "",
"period": "",
"website": {
"url": "",
"label": "",
"inlineLink": false
},
"roles": [],
"description": ""
}
]
},
"education": {
"title": "Education and training",
"icon": "none",
"columns": 1,
"hidden": false,
"keepTogether": false,
"startOnNewPage": false,
"items": [
{
"id": "edu-1",
"hidden": false,
"school": "Northbridge Institute",
"degree": "BA Social Research",
"area": "Public policy",
"grade": "Distinction",
"location": "Leuven, Belgium",
"period": "2019 – 2022",
"website": {
"url": "",
"label": "",
"inlineLink": false
},
"description": "<p>Studied research methods, plain-language writing and collaborative service design.</p>"
}
]
},
"projects": {
"title": "Projects",
"icon": "none",
"columns": 1,
"hidden": false,
"keepTogether": false,
"startOnNewPage": false,
"items": [
{
"id": "project-1",
"hidden": false,
"name": "Open Guidance Map",
"period": "2025",
"website": {
"url": "",
"label": "",
"inlineLink": false
},
"description": "<p>Mapped public learning resources.</p><p>Reviewed regional catalogues with volunteers, comparing the clarity of eligibility, learning outcomes and application guidance. Each record includes an attributed source and an editorial review date.</p><p>Documented ambiguous wording without guessing the provider’s intent. Workshop participants tested revised navigation labels and contributed examples of questions that the directory should answer.</p><p>Prepared a maintenance guide so future editors can update links, preserve context and flag missing evidence. The guide separates direct source statements from editorial interpretations.</p>"
},
{
"id": "project-2",
"hidden": false,
"name": "Undated community handbook",
"period": "",
"website": {
"url": "https://example.invalid/learning/resources/community-handbook/review-notes",
"label": "",
"inlineLink": false
},
"description": "<p>Collected workshop notes without inventing a project date.</p>"
}
]
},
"skills": {
"title": "Skills",
"icon": "none",
"columns": 1,
"hidden": false,
"keepTogether": false,
"startOnNewPage": false,
"items": [
{
"id": "skill-1",
"hidden": false,
"icon": "",
"iconColor": "",
"name": "Research",
"proficiency": "Advanced",
"level": 0,
"keywords": ["Interviews", "synthesis", "documentation"]
}
],
"layout": "default"
},
"languages": {
"title": "Language skills",
"icon": "none",
"columns": 1,
"hidden": false,
"keepTogether": false,
"startOnNewPage": false,
"items": [
{
"id": "lang-1",
"hidden": false,
"language": "English",
"fluency": "Native",
"level": 0
},
{
"id": "lang-2",
"hidden": false,
"language": "French",
"fluency": "B2 (self-assessed)",
"level": 0
}
]
},
"interests": {
"title": "Interests",
"icon": "none",
"columns": 1,
"hidden": false,
"keepTogether": false,
"startOnNewPage": false,
"items": [
{
"id": "int-1",
"hidden": false,
"name": "Walking",
"icon": "",
"iconColor": "",
"keywords": ["Urban history", "public spaces"]
}
]
},
"awards": {
"title": "Awards",
"icon": "none",
"columns": 1,
"hidden": false,
"keepTogether": false,
"startOnNewPage": false,
"items": [
{
"id": "award-1",
"hidden": false,
"title": "Community research recognition",
"awarder": "Civic Learning Forum",
"date": "2025",
"website": {
"url": "",
"label": "",
"inlineLink": false
},
"description": "<p>Recognised collaborative documentation work.</p>"
}
]
},
"certifications": {
"title": "Certifications",
"icon": "none",
"columns": 1,
"hidden": false,
"keepTogether": false,
"startOnNewPage": false,
"items": [
{
"id": "cert-1",
"hidden": false,
"title": "Accessible writing workshop",
"issuer": "Open Training Collective",
"date": "2024",
"website": {
"url": "",
"label": "",
"inlineLink": false
},
"description": ""
}
]
},
"publications": {
"title": "Publications",
"icon": "none",
"columns": 1,
"hidden": false,
"keepTogether": false,
"startOnNewPage": false,
"items": [
{
"id": "pub-1",
"hidden": false,
"title": "A practical guide to learning directories",
"publisher": "Community Methods Review",
"date": "2025",
"website": {
"url": "",
"label": "",
"inlineLink": false
},
"description": ""
}
]
},
"volunteer": {
"title": "Volunteering",
"icon": "none",
"columns": 1,
"hidden": false,
"keepTogether": false,
"startOnNewPage": false,
"items": [
{
"id": "vol-1",
"hidden": false,
"organization": "Neighbourhood Learning Circle",
"location": "Brussels, Belgium",
"period": "2022 – Present",
"website": {
"url": "",
"label": "",
"inlineLink": false
},
"description": "<p>Facilitated peer mentoring sessions.</p>"
}
]
},
"references": {
"title": "References",
"icon": "none",
"columns": 1,
"hidden": false,
"keepTogether": false,
"startOnNewPage": false,
"items": [
{
"id": "ref-1",
"hidden": false,
"name": "Available upon request",
"position": "",
"phone": "",
"website": {
"url": "",
"label": "",
"inlineLink": false
},
"description": ""
}
]
}
},
"customSections": [
{
"title": "Other activities",
"icon": "none",
"columns": 1,
"hidden": false,
"keepTogether": false,
"startOnNewPage": false,
"items": [
{
"id": "custom-item-1",
"hidden": false,
"content": "<p>Community workshops and peer mentoring.</p>"
}
],
"id": "other-activities",
"type": "summary"
},
{
"title": "HIDDEN_SECTION_SENTINEL",
"icon": "none",
"columns": 1,
"hidden": true,
"keepTogether": false,
"startOnNewPage": false,
"items": [
{
"id": "hidden-custom",
"hidden": false,
"content": "<p>HIDDEN_CONTENT_SENTINEL</p>"
}
],
"id": "hidden-section",
"type": "summary"
}
],
"metadata": {
"template": "onyx",
"layout": {
"sidebarWidth": 35,
"pages": [
{
"fullWidth": true,
"main": [
"profiles",
"summary",
"experience",
"education",
"projects",
"languages",
"skills",
"awards",
"certifications",
"publications",
"volunteer",
"interests",
"references",
"other-activities",
"hidden-section"
],
"sidebar": []
}
]
},
"page": {
"gapX": 4,
"gapY": 18,
"marginX": 36,
"marginY": 36,
"format": "a4",
"locale": "en-US",
"hideLinkUnderline": false,
"hideIcons": false,
"hideSectionIcons": true
},
"design": {
"colors": {
"primary": "rgba(30, 85, 128, 1)",
"text": "rgba(32, 38, 43, 1)",
"background": "rgba(255, 255, 255, 1)"
},
"level": {
"icon": "star",
"type": "hidden"
}
},
"typography": {
"body": {
"fontFamily": "Arial",
"fontWeights": ["400"],
"fontSize": 10.5,
"lineHeight": 1.4
},
"heading": {
"fontFamily": "Arial",
"fontWeights": ["700"],
"fontSize": 10,
"lineHeight": 1.3
}
},
"notes": "PRIVATE_NOTES_SENTINEL",
"styleRules": []
}
}
}