Candidate document slots — one per type
From this release, every candidate's documents are organised into document slots. A slot is a single place for one document type on a candidate's profile, for example DBS check or Proof of right to work in the UK, and it holds all the documents of that type.
Nothing has to be re-uploaded and no document has moved on your side. What changed is how Skillo stores and checks those documents behind the scenes, and how the Documents tab presents them.
The short version
✅ One slot per document type per candidate. All documents of that type sit in the same slot.
✅ Expiry is tracked on the slot. The slot's expiry is the latest expiry among its active documents.
✅ Every new upload or external link needs a document type, so every new document lands in a slot.
✅ Registration and planning checks read the slot, not a loose list of documents.
✅ Existing documents keep working. A migration created the slots from your current documents.
Before: a flat list
Previously a candidate's documents were a single flat list. Each document carried its own expiry date and status, and the checks that needed to know whether a candidate had, say, a valid DBS check had to search that list for the right document each time. Documents without a type could also sit in the list, and they were invisible to those checks.
That made three things harder than they should be:
- Finding what is on file. Documents of the same type were scattered through the list, mixed in with documents of other types.
- Knowing whether a requirement is covered. A type was only "covered" if the right document happened to be found by the check, and the answer could be stale between nightly runs.
- Renewals. When a certificate was renewed, the old and new documents were separate rows, and nothing tied them together as "the DBS check".
Now: one slot per document type
Each candidate now has a slot for each document type they have documents for. The slot is the thing that answers the question "does this candidate have a valid document of this type?"
- Uploads and external links are attached to the slot for their type. Changing a document's type moves it to the new slot, and the old slot's expiry is recalculated.
- Expiry is tracked on the slot. The slot takes the latest expiry date among its active documents. A renewal uploaded next to an old certificate is enough to keep the type valid, and the slot is not reported as expired while a newer document is still valid.
- Deleting a document recalculates its slot straight away, so the slot never keeps the expiry of a document that has gone.
- Documents are grouped on the profile. The Documents tab shows one heading per document type, in alphabetical order, with the slot's expiry date and state on the heading. Documents without a type are listed last, without a heading.
Why the document type is now mandatory
A slot is only meaningful if every document belongs to one. So from this release, a document type is required for every file upload (including the direct S3 upload path) and every external link.
Existing documents without a type keep working exactly as before. They are shown on the profile and are not moved, but they do not count towards a slot. We recommend editing them and choosing a type so they are grouped with the rest of the candidate's documents.
Competence documents stay per qualification
Competence documents are deliberately kept out of the slot model. Expiry for competences is checked per qualification, and a single shared slot would collapse several competences into one expiry date. Competence documents continue to work as they did before.
Why this is better
Clearer profiles. Each document type has its own heading with its expiry state. You can see at a glance what is on file, what has expired and what is about to expire, without reading through the full list.
Consistent answers across Skillo. Registration status and the right-to-work and medical assessment checks in planning now read the slot's expiry. Those checks use the same data as the Documents tab, so the profile and the planning checks agree with each other.
Renewals just work. Uploading a renewal is enough. The slot picks up the new expiry date, and the candidate is not flagged because an older certificate of the same type has expired.
Faster checks. Registration status for a batch of candidates is worked out from a small number of grouped queries rather than a query per document, which keeps the registration checks quick as the number of candidates and documents grows.
A foundation for the next steps. Once every type has a slot, Skillo can show empty slots for required documents that a candidate has not uploaded yet, and send expiry notifications per slot. Both are planned, but they are not part of this release. Expiry notifications still run per document for now.
What you may notice
- Documents on a candidate's profile are grouped under headings by type, instead of appearing as one long list.
- Expiry dates on the group headings may differ from the expiry date of an individual document. The heading shows the latest expiry in the group.
- When you upload a document or add an external link, you must choose a document type.
- Registration status can change after this release, as candidates' documents are checked against their slots. If a candidate's status changes unexpectedly, check that their documents have the correct type, and open the Documents tab to see the expiry dates in each group.
For how to upload documents, add external links and read the groups, see Candidate Documents and External Links.