Say how single sign-on and invitations treat addresses, and the new skill-group example
Single sign-on matches only an address the local account has verified (postulo/postulo#730),
an email-bound invitation no longer verifies its address (#732), and the skills example is
"Programming languages" (#690).
Refs postulo/postulo#730, postulo/postulo#732, postulo/postulo#690
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Spoken languages are chosen by code, and a CV names them in its own language (#689)
Your career record: the Languages section is a list with Other, what a CV prints, what
happened to entries already typed, the management command, archive and candidate file.
Writing a plugin: Record["languages"] gains an optional code.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Show the interface the pages describe, with pictures generated from a demo instance (#353)
Thirty-four pictures from scripts/screenshots.py in the postulo repository, each with alternative text, placed beside the text that describes it. Never retake one by hand: run the script.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Writing a plugin names MessagingService, MessagingServicePlugin and messaging_service_of
and says the kind registers in postulo.messaging_services. Refs postulo/postulo#682 #672#665#658#656#333
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Say where the help is on Your details, and what it does for 1.4.13 and 3.3.2
Design: what a field's help is, the question mark on a card, and a section on help --
the tooltip, where it is drawn and when it is not, what stays in sight, the drawer, and
help as templates. Accessibility: what a person can expect of it and how it is tested.
A line pointing at each card's help topic where the wiki explains the same thing.
Refs postulo/postulo#302
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Say how an instance defines identifier schemes of its own
Configuration: the JSON, the pattern language and its budget, what is refused and how it
is said, what deleting or changing a scheme does to what is stored, where the text is
kept. Writing a plugin: what a reader of the registry now meets. Design: a dialog with a
page behind it, and a box of code. Backups, the API, Your career record and Tracking
applications: what happens to identifiers of a kind this instance lacks.
Refs postulo/postulo#311
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Say how a telephone number is read against its country's numbering plan
Tracking applications: the telephone section again -- what is put aside before a number
is read, what is refused and what is kept with a warning, how a stored number is marked
and never rewritten, how a number is shown, and the row, with the kind beside the number
on a wide screen. Your career record: what an import and a candidate file do with a
number. The group of two controls and the row's grid in Design, `phone_country` on the
API, and what an importer hands over.
Refs postulo/postulo#304
Refs postulo/postulo#416
Refs postulo/postulo#649
Refs postulo/postulo#650
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Say how a postal address is checked against its country
Your career record: a section on the address rows -- what is refused, that a street is
never required and a town and a country are enough, how a postcode is put right, the
forces and territory forms, and that a stored or imported address is marked and left
alone. The same said shortly in Configuration, Getting started and Backups; the
address-line grid in Design; and in Writing a plugin, what postal-rules governs and
that a word shared with Postulo needs a context.
Refs postulo/postulo#306
Refs postulo/postulo#635
Refs postulo/postulo#458
Refs postulo/postulo#651
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Say that a web link is on a service, and how a plugin adds one
Tracking applications: the service of a link, what its address has to be, Other, and
that nothing has to be chosen; one address under two kinds; what an archive does with
a service. Your career record: a value moved between rows in one save, the candidate
file's format 4 and its claim about a service. Writing a plugin: the link-service
kind, its three names on the surface and a section of its own. The API's web_links
on a contact, and the icon beside a choice in Design.
Refs postulo/postulo#305
Refs postulo/postulo#457
Refs postulo/postulo#461
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Say that each CV chooses which of your details it prints
A menu per kind on a CV's settings, the default following Your details
and a choice pinning a row; the form of address and pronouns printed
only where a CV says so; PATCH /cvs/{id} in the API; and what an archive
carries of the choice.
Refs postulo/postulo#308
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Say how a row leaves Your details, and describe the dialog component
A bin on every saved row asks in a dialog and removes at once; Primary
is a star; the dialog opens without a script as a popover and with one
as a modal.
Refs postulo/postulo#303
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe the form of address, the pronouns, the location rule and the profile calls
Your name gains two optional menus; a blank location prints the primary
address's town and country; the candidate file is format 3; the CV
importer leaves the location to the address; and the API has GET and
PATCH /profile, under read and write.
Refs postulo/postulo#309
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A kind already recorded is greyed out on the other rows, Other excepted,
and Remove frees a kind in the same save.
Refs postulo/postulo#307
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Say how a skill's name is recognised as an ESCO skill, and what a CV prints for it
Your career record gains *Skills the classification knows*: the box
offering the classification's names as you type, what recognition
means and what it never guesses, and skills recorded before it. It
also says a skill the classification knows is the one exception to an
untranslated entry printing its original, and that a candidate file is
now format 2 and carries the identifier without ever reading it back.
CVs says when a CV in another language prints the classification's name
for a skill. Installing Postulo says the classification is two files,
written together or not at all, and Configuration gains the rate limit
on the skill box's suggestions.
Refs postulo/postulo#266
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Say which Europass file to choose now: the PDF, read through the CV inside it
The section on importing a Europass CV said the JSON was what
europass.europa.eu exports today. It was not: the platform gives out a
PDF with the CV attached inside it as XML, in a format the Commission
has published since 2020, and Postulo now reads that. The section says
which file to choose and what not to do to it (print it again, save it
from another program, protect it), which older files still read, that
a section with nowhere to go is named rather than dropped, that a
language's code is named in the CV's own language, and what a PDF is
refused for.
It ends with what is not yet checked against a real download, pointing
at #318, the step only a person can take.
Refs postulo/postulo#244
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Say why an application ended, who put it forward, and how two records become one
Tracking applications gains four sections: why an application ended
(the reason, added then or later, and the last stage read from the
timeline), who referred you and the agency it went through, the notice
of possible duplicates, and merging two companies or two contacts, with
what moves, what the kept record takes and what cannot be undone.
Insights gains the widget *Where and why applications end* and the two
tables *By referrer* and *By agency* under *Where they came from*.
Reports lists the four columns the spreadsheet gains, and why the page
and the PDF do not. The API page names the new fields on an
application, `end_reason` on the status call, and the two ids a new
application may carry. Backups says the archive now holds the people
recorded at no company.
Your career record stops pinning the archive's format number, which
#236 and #239 have both moved since #181 wrote it down.
Refs postulo/postulo#239
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Say how one person's own record is taken out as a file and read back
Your career record gains the section on the candidate file: what it
holds and leaves out, the two steps of putting one back, the rule that
it merges and never replaces, what makes two entries the same entry,
and what it refuses. Its two headings that repeated the Europass
section's are worded apart, so each keeps its own anchor.
Backups and your data points to it from taking everything out, from
bringing a career record in, and from putting an archive back, which
that page does not read. Hardening lists the file's 1 MB cap beside
the other upload caps, and Roadmap keeps the whole-archive importer as
still wanted.
Refs postulo/postulo#181
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The documents Postulo renders are tagged, and stop guessing
*Accessibility* listed untagged PDFs as a known gap, which they no longer are: a
CV, a portfolio, a letter and a report all come out as PDF/UA with a tag tree, so
the language they declare finally reaches a reader and the words come back in the
order they are meant to be read in. The page says so, says why PDF/A is
deliberately not claimed, and *CVs* points at it from the export step.
*Cover letters* gained a sixth placeholder, `{{ contact }}`, and two things the
page could not have described before: the application picker that opens a preview
reading the way the employer will read it, and the marker a placeholder with
nothing behind it shows instead of a blank, with the warning before freezing that
goes with it. The ordering step on *CVs* now describes what the arrows actually
do, which is move an entry past its neighbour.
*Your career record* had the Europass import promising a level for every
language. A file that states none now leaves the language without one, and the
language the file itself is written in is taken as the language of your career
record where you have not chosen one -- which is the setting that decides what
Postulo reports as untranslated.
Refs postulo/postulo#235
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Take the pages over from postulo/wiki, which this repository now replaces
Until now this was a copy of postulo/wiki, refreshed by postulo's
scripts/publish-wiki.sh whenever somebody remembered to run it. The last
time was 5 September (postulo@9645ee1). This brings it to postulo@b6cfb8f7:
- the four pages that never arrived: Accessibility, Hardening, Listings
and Reports;
- the seventeen that had changed since;
- the images, which the script never copied because it copied *.md and
nothing else, so Home has shown its logo and its Buy me a coffee button
broken since the day they were added.
Nothing here was lost: every earlier commit is a publish, and the pages
they left matched postulo/wiki at 9645ee1 exactly.
From here pages are written in this repository and nowhere else.
Refs postulo/postulo#169
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>