Privacy notice
This describes what CareerOS actually does with your information, written against the code rather than from a template. Where something is weaker than you might assume, it says so.
Who is responsible
CareerOS is operated from the United Arab Emirates and served from careeros.ae. Every right described below can be exercised without asking anyone: the privacy page inside your account holds the export and the deletion, and both act immediately. For anything else, including a question about this notice, write to hello@careeros.ae.
What is collected, and why
Your account
Your name, email address, chosen language, and a hash of your password. The password hash is produced with scrypt and cannot be reversed, including by us. We also keep session records so you can see and end your own sessions, and a log of when each account signed in.
Your career record
Everything you enter or upload: roles, employers, dates, scope, achievements, skills, education, compensation, goals, applications, interviews, offers, contacts, and the CV files you upload along with the text extracted from them. This is the product. Without it there is nothing to reason about.
Declarations you choose to make
Work authorisation, sponsorship situation, and whether Emiratisation programmes apply to you. These are held in a separate table that no scoring, matching or recommendation engine reads. That is a structural guarantee, not a policy: the code that produces recommendations does not import them.
Usage events
First-party events, in our own database, recording that an action happened and when. No third-party analytics script runs on this site, there is no advertising pixel, and nothing about your behaviour is sent anywhere else.
What is encrypted, and what is not
This is the part most notices are vague about, so here it is precisely, field by field against what the code actually does.
Encrypted at rest with AES-256-GCM, as individual columns in the database: the text extracted from the documents you upload; role descriptions and achievement text; compensation notes, offer notes and your negotiation script; interview prep notes, interview write-ups, your interview stories and your rehearsed answers; cover letters; the text of job postings you save and the notes you keep on each application; your LinkedIn summary, posts drafted here, contact notes and interaction summaries; outreach and influence message bodies, including the preview of anything waiting for your approval; notes on the recruiters representing you and the standard answers you keep for them; feedback comments; bug reports you send us; pages and email snippets the automation fetches on your behalf; and every credential you connect, meaning your API key, OAuth access and refresh tokens, the LinkedIn browser session, and the LinkedIn password if you choose to store one.
Not encrypted: the uploaded file itself. When you upload a CV, the text pulled out of it is encrypted in the database, but the original PDF or Word file is written to the server’s disk as it arrived. It is restricted by file permissions to the account the application runs as, it is never on a public path, and reading it back goes through a route that checks you own it. What it is not is encrypted. Anyone with access to that disk can open it. If you read the paragraph above and assumed the file was covered too, it is not, and that is why this paragraph exists.
Not encrypted: what the product derives from your CV. The structured result of reading a CV, the CVs this product generates for you, and the findings of a CV audit are stored as structured data in the clear. They are built from the encrypted text but they are not themselves encrypted, so the protection you get on the extracted text does not carry through to them.
Not encrypted: structured fields, such as salary amounts, employer names, job titles, dates and the declarations above. They are in the clear because the engines have to filter, sort and aggregate on them, and encrypting them would break the arithmetic the product exists to do. The practical consequence is that anyone who obtained both the database and the server would be able to read your compensation history. Access is controlled and the database is not reachable from the internet, but you should know which half of your record is protected by cryptography and which half is protected by access control.
Who else can see it
Nobody, by default. There is no data sharing, no sale, and no third-party processor in the normal running of the product. Three exceptions exist and all three are switched on by you.
- Anthropic, if you paste your own API key or opt into the shared one. Only the specific text needed for that feature is sent, each call is recorded so you can see what was sent and what it cost, and every AI feature has a deterministic fallback that works without any key at all.
- Google, if you connect Gmail or Calendar. The connection uses OAuth, the refresh token is encrypted at rest, and the scopes requested are listed on the connections page before you approve them. You can revoke it from your Google account at any time without telling us.
- LinkedIn, if you turn on automation. This one carries a real cost and the product says so in several places: driving LinkedIn with a browser breaches their User Agreement and risks a restricted or banned account. It is off by default and behind a notice you have to read and accept.
Administration
One account on this installation has an administrative view. It can see accounts, sign-in times, verification and suspension state, and what has been spent on AI. It cannot see your career record: no CV text, no salary figures, no roles, no documents. The admin service selects only from the account and audit tables and never imports anything that decrypts.
There is one exception and it is deliberate. If you file a bug report, an administrator reads it decrypted, next to your name and email address, on a triage screen. A bug report is the one piece of your writing that somebody has to read in order to act on it. It is encrypted at rest like everything else and that screen is the only place in the product that decrypts one, but you should know it will be read, so do not paste anything into a bug report that you would not want an administrator to see.
How long it is kept
Your record is kept until you delete it. Sessions expire. Rate-limit counters are transient.
AI responses are cached, and this is the one place where deletion is not complete. Each cached entry is keyed by a hash of what was asked and expires seven days after it was written. An entry paid for with your own API key carries your user id and is deleted with your account. An entry paid for with this installation’s shared key carries no user id at all, on purpose, because attaching one account to a shared entry would delete everybody else’s copy of it when that account went. Those entries therefore survive your deletion and expire on their own within seven days.
Three things outlive a deleted account on purpose, all of them with the reference to you removed: audit entries, so a record of what happened survives without identifying who it happened to; salary data points you contributed, so the market evidence other people’s estimates rest on does not silently change; and bug reports you filed, so a defect does not disappear because the person who found it left.
What you can do
- Export everything. One button on the privacy page produces a machine readable file covering 77 of the 80 tables in this database that carry your user id, with the encrypted fields decrypted so you can actually read them. Anything that could not be decrypted says so in place of the value rather than appearing empty. Two things are left out. Live credentials, which is what those other three tables hold, along with your password hash, your API key and the tokens behind your connections: sessions, email verification codes and password reset tokens are keys to the account rather than a record of a career, and an export lands in a downloads folder. And the uploaded files themselves, which you download individually from Documents.
- Delete everything. Real erasure of rows and files, not a flag. It cannot be undone. The exceptions are listed above under how long it is kept.
- Withdraw a consent. Withdrawing the career-data consent stops the engines rather than quietly continuing, which is the behaviour you would expect and is not always what happens elsewhere.
- Change what is optional. Two of the four consents are a real choice rather than a precondition, and you can change either at any time. Turn off AI-assisted analysis and every feature that would have called the model runs on its deterministic engine instead, which phrases things less fluently and never sends anything out of this installation. Turn off product analytics and your feature usage stops being recorded.
- Correct anything. Every field is editable, and the product records where each fact came from, so you can see what it inferred rather than what you told it.
Cookies
One session cookie, so you stay signed in. One preference cookie, for light or dark mode. Both are first-party, neither tracks you, and there is no consent banner because there is nothing to consent to.
Children
CareerOS is for working professionals and is not intended for anyone under 18.
Changes
If this notice changes in a way that affects what happens to your data, you will be told before it takes effect, not afterwards.
See also the terms of use.