AI transparency
1. How CVTailor uses AI
You supply your own career material and a job description. CVTailor sends that material to Anthropic's Claude API, which rewrites and reorders it into a CV tailored to that role, and can write a cover letter and draft answers to application questions.
The system is instructed to work only from what you provide. It reorganises, re-emphasises and rewords your own material rather than inventing experience. That is a design constraint enforced in the prompts and tested in our test suite, not a guarantee about every sentence a language model produces — you should read what it writes before you send it anywhere.
Some parts of the product involve no AI at all: page layout, the section headings in each language, and the ATS score are ordinary code.
2. What we mark
Every CV and cover-letter PDF exported from CVTailor carries machine-readable provenance metadata:
| Where it lives | XMP metadata in the PDF, plus PDF document-information keys as a second layer |
|---|---|
| What it says | The IPTC DigitalSourceType value for content created by a generative model, the tool that wrote it, and when |
| Visible to a reader | No. Nothing is added to the page — no stamp, no watermark, no disclaimer |
| Effect on the document text | None. The text an ATS extracts is byte-for-byte identical to an unmarked export |
| Size cost | About 1.3 KB |
3. What a marking does and does not establish
This is the part most easily overstated, so plainly:
- A marking with a valid signature is the strongest result. It means the marking was written by us and the document's extracted text still matches what we signed. Our verification key is published below, so you do not have to take our word for the check. Note what it does not cover: the signature is over the text, not the file, so images, profile photos and page layout are outside it — a document with identical wording but a different photo would still verify. It confirms the words, not the whole page.
- A marking we could not check means the file is signed but this service could not verify it — no key configured, or the text could not be read within our limits. That is a statement about us, not about the document.
- A marking whose signature does not match means the text has changed since it was generated, or the marking was copied onto a different document. Treat it as unreliable.
- An unsigned marking is metadata alone — nothing binds it to the document's contents and nothing authenticates us as its writer. It can be copied onto another PDF, so treat it as evidence of origin, not proof of it. Documents exported before signing was switched on look like this.
- No marking found is not evidence that a document was written without AI. Printing to PDF, converting to another format, or copying the text into a new document reliably drops the marking; re-saving in a PDF editor may keep it or lose it depending on the tool. And other AI tools do not write this marking at all.
- A marking says nothing about whether the content is true. CVTailor writes from material the applicant supplies; verifying the claims in a CV is the reader's job, as it always was.
Check a document. Upload a PDF and we will tell you whether it carries CVTailor's marking. No account needed. The file is checked in memory and never stored.
Verify a document4. What we deliberately do not do, and why
Two techniques are commonly suggested for this problem, and neither is available to us honestly today.
- C2PA / Content Credentials. The cryptographic provenance standard used for AI images. Its reference implementation cannot currently write PDF — PDF is the one format its own documentation marks read-only, and its writer refuses PDF even for a detached sidecar. We verified this against the library rather than taking a vendor's word for it.
- Invisible text watermarking. This is applied inside a model as it generates, by the party running the model. We call a third-party API and do not operate the model. Applying a watermark afterwards, by substituting characters or spacing, would alter the applicant's own words and break the text extraction that applicant tracking systems depend on.
We would rather say what we do not do than imply a guarantee we cannot keep.
5. Where the law comes into this
The EU AI Act's Article 50(2) requires providers of AI systems that generate text to mark their output in a machine-readable format and to make that marking detectable. CVTailor is operated from the Netherlands, and we treat ourselves as the provider of this AI system — the duty is ours, not something discharged by the company that supplies the underlying model.
The marking described above is the first half of that. The verification page is the second: a marking nobody can check would not be much of a transparency measure.
Article 50 also asks that people are told when they are interacting with an AI system. We do that in the product itself rather than burying it here — CVTailor is described as AI-powered throughout the interface, and the tool that writes your CV is named.
We are describing what we have built, not claiming a clean bill of health. Parts of this regime are new, some of it is genuinely unsettled, and we would rather publish an accurate account of our implementation and improve it than assert a conclusion we are not in a position to certify.
6. Our verification key
Signatures are Ed25519, over a digest of the document's extracted text together with the marking's own fields. We sign the text rather than the raw file so that the signature survives the ordinary handling a document gets — a re-save, a metadata edit — while still breaking if the content changes or the marking is moved to a different document.
Our public key, so you can verify independently:
00c72b93ef1e4c1179c6f0ffbadb83a36ffc6a7feab62e760f7d0ed3cccd00c77. What we are still working on
- Text-level marking. If the provider of the underlying model ships detectable watermarking for generated text and a way to check it, that adds a layer we cannot add ourselves.
8. Questions
If you are a recruiter, an applicant, or a regulator with a question about any of this, use the feedback button in the app or the support page. If something on this page is wrong or out of date, we would genuinely like to know.
See also our Privacy Policy and Terms of Service.