Written to be read, not skipped

Privacy policy

A CV is one of the most personal documents most people ever write. This page describes what Tessira actually does with yours — including the one moment when part of it leaves Tessira, and exactly what that part contains.

Last updated: 23 August 2026

The short version. Tessira is built and run by Cubic Pixel, a one-person independent studio. It holds your email address, a one-way hash of your password, and the CVs and job descriptions you create. Your CV and job-description records are encrypted at rest, and each account's data is stored in its own namespace. There is no analytics, no advertising, no tracking and no marketing email. The only cookie is the one that keeps you signed in. Nothing about your CV is sent anywhere for AI review unless you click the button that starts a review — and when you do, an anonymised copy is sent to DeepSeek, an external AI provider, with your name, contact details, photo and employer names taken out first.
Please read this before relying on this page. This policy was written for a small independent product by its maker, not by a lawyer, and it is not legal advice. It describes the software accurately, but it has not been reviewed for compliance with any particular jurisdiction's law. If Tessira is going to be relied on commercially, have a qualified lawyer review this page — and the bracketed items in it — first.

1. Who is responsible for your data

Tessira is a CV builder provided by Cubic Pixel, an independent one-person studio, at www.cubicpixel.co/tessira. For the purposes of data protection law, Cubic Pixel is the controller of the personal data described on this page.

Cubic Pixel does not operate a public office or a phone line. All privacy enquiries, including requests to exercise your rights, are handled by email at privacy@cubicpixel.co. General questions go to hello@cubicpixel.co. [A registered address and, where required, a representative or data protection officer should be added here before commercial launch.]

2. What Tessira collects, and why

Everything below exists because a specific feature needs it. There is no category of data collected "just in case", and there is no profiling of you as a user.

WhatWhy it is heldWhere it lives
Your email address It identifies your account, receives the verification link, and receives a reset code if you forget your password. Your account record in Workers KV.
Your password, as a hash To check your password when you sign in. It is stored as a PBKDF2-SHA256 hash with a salt unique to your account and 100,000 iterations — a one-way transformation. Tessira cannot read your password, and cannot tell you what it was. Your account record.
Account id, sign-up date, optional profile picture To run the account and show your avatar in the app. A picture is optional, is cropped in your browser, and is limited to a JPEG or PNG of 200KB. Your account record.
Session tokens To keep you signed in without asking for your password on every page, and to let a password reset sign every device out. Workers KV, expiring after 30 days.
Your CV content — name, contact details, photo, work history, education, skills, languages, interests, references This is the document you are building. It is what the editor edits, what the templates render, and what the PDF prints. Encrypted at rest in Workers KV, in your account's own namespace.
Job descriptions you save or fetch So a CV can be matched against a specific role you are applying for. Encrypted at rest in Workers KV, in your account's own namespace.
AI results you have run So that reopening a review or a match is instant and costs nothing. Saved on the CV record itself, encrypted with it.
Abuse counters To stop someone using the sign-up and password-reset forms to send mail to an address repeatedly, and to throttle password guessing. These counters are keyed on a hash of your email address and a hash of your IP address — not on the address itself — and they expire within an hour. Workers KV, short-lived.
Cached renders A rendered PDF is cached against a hash of the exact content it was made from, so downloading the same CV twice does not re-render it. An AI result is cached the same way. Both expire after seven days. Workers KV, seven-day expiry.

2.1 Sensitive information in a CV

Tessira never asks you for special-category data. But a CV is free text, and people legitimately put things in one that data protection law treats as sensitive — a health charity you volunteered for, a religious institution you studied at, a trade union role, a political campaign you worked on. If you type it into a CV field, Tessira stores it, and if you then run an AI review it is part of the text that is sent for review.

You decide what goes in. If something does not need to be on the page, leave it off.

2.2 What Tessira does not collect

  • No analytics, page-view tracking, heatmaps, session recording or behavioural profiling.
  • No advertising identifiers, no advertising network, no retargeting.
  • No third-party scripts, fonts, widgets or embeds — every asset on the site is served from Tessira's own domain.
  • No marketing email. Tessira has no mailing list and no newsletter.
  • No payment data of any kind, because Tessira is currently free and has no billing.

3. Lawful bases for using your data

  • Performance of a contract. Creating and holding your account, storing and rendering your CVs and job descriptions, and sending the verification and password-reset emails that make an account usable at all.
  • Legitimate interests. Keeping the service secure and available: throttling sign-in attempts, capping how many emails a form can trigger, blocking cross-origin requests, and expiring stale sessions. The interest is preventing abuse of a free service; the impact on you is minimal, and none of it is used to build a profile.
  • Consent. The AI review and job match. Nothing is sent for review unless you deliberately start a run, each run is a separate act, and you withdraw your consent simply by not starting one. No account is ever reviewed in the background.

4. The AI review and job match — in detail

This is the only feature that sends any part of your CV outside Tessira, so it gets its own section and the most careful wording on the site.

4.1 It only happens when you ask

An AI review runs only when you click the button that starts one, on a CV you chose, in a mode you chose. There is no background scoring, no automatic re-run when you edit, no telemetry, and no request of any kind to the AI provider unless you initiated it. If you never press the button, nothing about your CV is ever sent for review.

4.2 What is sent, and what is not

Before anything is transmitted, Tessira builds a separate, anonymised copy of your CV. The original is not sent; the copy is.

TreatmentFields
Removed entirely Your name, email address, phone number, postal address, website, and photo. Also any contact details typed into the body of your CV — email addresses, links, phone numbers, postcodes, street addresses and social handles are stripped out of your bullets and summary, whoever they belong to.
Replaced with labels Every employer, client and educational institution becomes "Company A", "Client B", "Institution A". The mapping between the label and the real name stays inside Tessira and is used to put the real names back into the response before you read it.
Never sent Your IP address, your device or browser details, your account, your session, and any Tessira identifier such as a CV id. The outbound request is constructed from scratch, so no cookie, referrer or browser header from your visit is passed on; the provider sees Cloudflare's network, not you.
Sent Your job titles, dates, countries, skills, languages, and the wording of your bullets and summary — the text that actually needs reviewing.

Two checks run before transmission and both refuse to send rather than take a chance: one rejects the payload if any profile value, name fragment, address word or un-replaced employer name is still present in it, and one rejects it if anything technical — an IP address, a token, a user agent, an account or CV id, a set of coordinates — appears in the exact text about to leave. If either check fires, the review fails and nothing is sent.

4.3 You can see it before you run it

Tessira can show you the exact anonymised text that would be transmitted, together with the provider's name, the model, and the list of what was removed and what was replaced. Look at it before your first review rather than taking this page's word for it.

4.4 What this does and does not mean

The honest claim is that Tessira removes everything that identifies you and replaces employer names with labels. It is not a claim that the text becomes untraceable. A CV describes one career; someone who already knows you could recognise the shape of it even without a name attached. That is inherent to having a CV reviewed at all, and you deserve to know it rather than be handed a reassuring absolute.

The review is performed by DeepSeek, an external AI provider, at api.deepseek.com. Tessira does not control that provider's systems and does not make claims on its behalf about what it does with the text it receives. If you want to know the provider's own position, read the provider's own current terms. If Tessira ever changes provider, this page changes in the same release.

4.5 Job match

A job match sends the same anonymised copy of your CV plus the job description you selected. The job description is third-party text and often contains a recruiter's name, email or phone number, so contact details are stripped from it before it is sent. The role title and the hiring company named in the posting are sent, because they are the thing being matched against.

4.6 What the result is worth

The result is a machine-generated opinion. It can be wrong, it can miss things, and it is not careers advice, legal advice or any guarantee about your prospects. You remain responsible for everything your CV says. See the terms of service for the full position.

5. Fetching a job posting from a link

If you paste a job advert's URL, Tessira's own server fetches that public page and tries to extract the title, company and body text. This is an ordinary HTTP request, not an AI call. Only https links are fetched, private and internal network addresses are refused, and the request times out rather than hanging. Your browser is not used to make the request, so the site you are fetching from does not see your IP address — it sees Cloudflare's, and a request identifying itself as Tessira. Many large job boards refuse automated requests, which is why pasting the text yourself is always available and always the source of truth.

6. Who else processes your data

Running a hosted service means other companies are involved. These are the only ones, and each has a specific job.

ProviderWhat they doWhat they see
Cloudflare Hosts Tessira. The application runs on Cloudflare Workers, data is stored in Workers KV, and PDFs are printed by Cloudflare's headless-browser rendering service. The connection metadata inherent in serving any website, including your IP address, and the stored data itself — which, for CVs and job descriptions, is encrypted before it is written.
Resend Delivers the two transactional emails Tessira sends: your verification link and your password-reset code. Your email address and the contents of those two emails. Nothing about your CV.
DeepSeek Performs the AI review and the job match, when you start one. The anonymised CV text described in section 4, and the scrubbed job description for a match. No identity, no account, no IP address, no Tessira identifier.

Beyond these, your data is not sold, rented, licensed or handed to advertisers, data brokers, recruiters or job boards. If Tessira is ever legally compelled to disclose something, or if the product were ever transferred to another owner, that would be handled honestly and this page would say so before it happened wherever it is lawful to do so.

7. How long things are kept

DataKept for
Your account, CVs and job descriptionsUntil you delete them, or until you ask for the account to be deleted.
A signed-in session30 days, or until you sign out, or until a password reset revokes it.
Email verification link24 hours.
Password reset code10 minutes, five attempts, single use.
Abuse and rate-limit countersBetween 15 minutes and one hour.
Cached AI results and cached rendered PDFsSeven days, then they expire automatically.
Daily AI request counterTwo days.

One honest wrinkle: deleting a CV removes the record immediately, but a cached PDF or a cached AI result derived from that exact content may sit in the cache until its seven-day expiry runs out. Those caches are keyed by a hash of the content, are not attached to a listing, and are not readable through the app once the CV is gone — but they do exist until they expire, and you should know that rather than find it out.

8. Security, stated honestly

What is in place:

  • Passwords are hashed with PBKDF2-SHA256, 100,000 iterations, and a salt unique to your account, and compared in constant time.
  • Sessions are random tokens held server-side and delivered in a cookie that is HttpOnly, Secure and SameSite=Lax, so page scripts cannot read it and other sites cannot ride it.
  • Account isolation is structural. Your account id is taken only from your session, never from anything the browser sends, and every one of your records is stored under a key namespaced to that id. There is no code path in which one account can address another account's data.
  • Encryption at rest. Your CV and job-description records are sealed with AES-GCM using a random data key belonging only to your account. That key is itself encrypted with a master secret held in Cloudflare's secret store — never in the database, never in the code.
  • Email addresses are not listable. The lookup key that maps an address to an account is a keyed hash, so listing the database's key names does not reveal who has an account.
  • Abuse controls. Sign-in attempts, reset-code guesses and outbound emails are all capped, and requests that change data are refused if they come from another origin.

What this is not:

  • It is not end-to-end encryption, and not zero-knowledge. Tessira holds the master secret, which means Tessira is technically able to decrypt your CVs. This is a deliberate choice, not an oversight: a password-independent key is what makes it possible for a password reset to give you your data back rather than lose it forever. You get recoverability; the cost is that the key exists on this side. Anyone claiming both at once is selling you something.
  • The seven-day caches described above hold rendered output and generated review text, and those are not encrypted with your account key.
  • No system is perfectly secure. Tessira is one person's work, reviewed carefully and tested adversarially, but that is not the same as a certification.

9. Your rights, and how to use them

Depending on where you live, you have some or all of the following rights. Several of them you can exercise yourself, immediately, without asking anyone.

RightHow
Access — see what is held about you Your CVs and job descriptions are visible in the app. For the rest, email privacy@cubicpixel.co.
Portability — take it with you Every CV has an Export JSON action in the editor that downloads the full content as a structured file, no request required.
Rectification — correct it Edit any field in the app; changes save automatically. For your email address, email us.
Erasure — delete it Delete individual CVs and job descriptions in the app. There is currently no self-service button that deletes an entire account; email privacy@cubicpixel.co and the account and everything in it will be deleted.
Objection and restriction Email us. For the AI features specifically, simply not running one is a complete objection — nothing is sent without a click.
Withdraw consent Stop starting AI runs. Existing saved results can be removed on request, or by deleting the CV they belong to.
Complain You can complain to your local data protection authority. Doing so does not require you to contact us first, though it is usually faster if you do.

Requests are answered by one person, so please allow a reasonable time — the aim is within 30 days. To protect you, a request will be answered to the email address on the account.

10. International transfers

Tessira runs on Cloudflare's global network, which means requests are served from wherever you are and stored data may be held outside your own country. The AI provider operates internationally, so running a review or a match may involve the anonymised text being processed outside the UK and the EEA. [The specific transfer mechanism relied on for each provider — standard contractual clauses, adequacy, or otherwise — should be confirmed with each provider's current terms and stated here before commercial launch.]

11. Children

Tessira is a professional tool intended for adults in or entering the job market. It is not designed or marketed for children, and accounts should not be created by anyone under 16. If you believe a child has created an account, email privacy@cubicpixel.co and it will be removed.

12. Cookies

Tessira sets exactly one cookie, and it exists only to keep you signed in. There is no analytics cookie, no advertising cookie, no third-party cookie, and therefore no consent banner. The details are in the cookie policy.

13. Changes to this policy

If what the software does changes, this page changes in the same release — that is a rule the project holds itself to, not a courtesy. The date at the top is the date of the last change. For anything that materially affects how your data is handled, you will be told in the app before it takes effect rather than left to notice a date.

14. Contact

Privacy, data and rights requests: privacy@cubicpixel.co
Anything else: hello@cubicpixel.co

Enquiries are handled by email only. There is no postal address or phone line to publish, and inventing one would be worse than saying so.