Cookies and browser storage
11 things are stored on your device. None of them is a cookie.
This page is called Cookies because that is what people search for. The accurate title is browser storage: ClearHire keeps your preferences in localStorage, not in a cookie, and the difference is worth two minutes because it changes who can read them.
Why it matters which one it is
They are both “stored on your device”, and that is where the similarity ends. One is sent to a server on every single request; the other never leaves the browser unless a script deliberately sends it. Everything ClearHire stores is the second kind.
Not used here
A cookie
- Travels with every request to the domain that set it — every page, every image, every API call, automatically.
- The server reads it without asking, because the browser attaches it.
- Has an expiry date set by whoever created it, which can be years away.
- Can be set by a third party embedded in the page, which is how cross-site tracking works at all.
What ClearHire uses
localStorage
- Never sent anywhere on its own. It sits in the browser until a script on the same site reads it.
- Readable only by this site. No other domain can reach a clearhire: key, and neither can an embedded third party.
- Per device, never synced by the browser. Choosing dark mode on your laptop does not change your phone.
- Cleared by you at any time, from your browser, with no reference to us — clause 06.
One consequence worth stating plainly: because nothing is sent automatically, the server does not know which theme you picked. That is why the first paint is decided by a small script inside the page rather than by the server, and why a preference belongs to one device.
01 · The two kinds of storage
A browser can hold small pieces of information for a site in several places. Only two matter here, and they behave differently enough that calling both of them “cookies” would make the rest of this page misleading.
| Behaviour | Cookie | localStorage |
|---|---|---|
| Sent to the server | Automatically, with every request | Never, unless a script sends it deliberately |
| Who can read it | The site, plus any third party that set its own | Only scripts on this site |
| Expiry | A date chosen by whoever set it | None. It stays until it is removed |
| Used for cross-site tracking | Yes — this is the mechanism | No. It cannot leave the site |
| Set by ClearHire itself | No — not for preferences, not for anything we set | Yes — the seventeen entries in clause 02 |
| Set by the analytics providers we load | Yes — four of them, on this domain. Clause 10 | Yes — clause 10 |
02 · Everything we store, with its key
Ten of the seventeen entries are appearance preferences, and every one of them comes from the theme control in the header. Each key is prefixed clearhire: so it cannot collide with another site's, and you can check every line of this table yourself — clause 06 says how.
| Key | Holds | What it changes | Necessary |
|---|---|---|---|
clearhire:appearance | light · dark · system | Light or dark, or following your device | ✗ |
clearhire:palette | paper · slate · press | Which of the three colour treatments | ✗ |
clearhire:radius | none · small · medium · large | How rounded corners are | ✗ |
clearhire:density | compact · comfortable · spacious | How much space sits between things | ✗ |
clearhire:type-scale | small · medium · large | Text size across the whole product | ✗ |
clearhire:font | countersigned · plain | Which typeface pairing is used | ✗ |
clearhire:surface-style | solid · translucent | Whether panels are see-through | ✗ |
clearhire:motion | system · full · reduced | How much anything animates | ✗ |
clearhire:sound | off · on | Whether three short cues play. Off unless you turn it on | ✗ |
clearhire:tools:pinned | The slugs of the tools you pinned in the catalogue | Which tools sit at the top of the hub for you | ✗ |
clearhire:letters:lastOpened | The id of the cover letter you opened last | Which letter the cover-letters page offers back first | ✗ |
clearhire:alerts:pushGrantedAt | The date you allowed browser notifications | The dated sentence on the alerts page, so it can say when | ✗ |
clearhire:applications:outbox | Application changes made while offline, until they are sent | Nothing you see; it replays them once when the network returns, then empties | ✗ |
clearhire:feed:seenAt | The date of the newest feed entry you have seen | How many entries the feed counts as new since you last looked | ✗ |
clearhire:tools:questionSet | The questions you keep from the interview bank | Until you empty the set or clear this browser | Signed out only — signing in moves the set to your account |
clearhire:legalNotice | The date the one-line notice about the Privacy Policy and Terms was shown | Whether that notice shows again on this device. It does not, once this is here | ✓ |
clearhire:update:notice | A release this version has been told about, with its reason and the date | Requires the update from the next time you open ClearHire, and is forgotten once you have it | ✓ |
clearhire:update:chunkReloadAt | When a part of the site that had gone missing last reloaded the page | Stops a broken deploy from reloading the page over and over | ✓ |
clearhire:native:reviewAskedAt | On Android, when Google Play was last asked to show the review sheet | Keeps that request to once in 120 days | ✓ |
sb-<project>-auth-token | The sign-in session — a token and its expiry, nothing else | Keeps you signed in — clause 03 | ✓ |
That is the whole list. There is no visit counter, no browsing history, no identifier that follows you between sessions, and no entry whose purpose is not in the third column above.
One more key can appear and is not written by the product: clearhire:logLevel, which exists only if you set the console log level yourself from the developer tools. It holds a word like “warn”.
But this table only covers the keys the product writes itself. The analytics providers loaded on every page write their own, including identifiers that do persist between sessions, and those are listed in clause 10 rather than folded in here where they would look like preferences.
03 · The sign-in session
This is the only entry that is strictly necessary. Without something proving you signed in, every page load would ask you to sign in again. It is created when you sign in with Google and destroyed when you sign out.
The session is issued and managed by Supabase, the service holding the database — named, with its role, in privacy clause 05. Its browser client stores the session in localStorage by default, under a key of the form sb-<project>-auth-token.
Whichever it turns out to be, two things do not change. It contains no profile data, resume content or employment record — only a token proving the session, and its expiry. And signing out removes it from that device immediately.
04 · How long it is kept
A localStorage entry has no expiry date. That is a property of the mechanism rather than a decision of ours, and it is worth saying plainly instead of dressing it up as a retention period.
- The nine preferences persist until you change them, clear your browser storage, or the key is retired. There is nothing to expire and nothing that expiring would improve — a text-size choice that reset itself every ninety days would be a bug, not a safeguard.
- The session ends when it expires or when you sign out, whichever comes first.
- None of it is mirrored to us. These entries have no copy on a server, so there is nothing here for us to look at and nothing for us to delete on your behalf.
Signed in, your appearance choices are also saved to your account, so a new device starts where you left off. That copy is account data rather than browser storage: it is covered by the privacy policy and it goes when your account does.
05 · What is necessary, and what you control
Strictly necessary
The sign-in session, and only while you are signed in. Refusing it amounts to not signing in — which is allowed, and most of the product still works without an account.
Yours to change
All nine appearance keys. Change any of them from the theme control in the header — on every page, at every width, signed in or not.
If you clear the ten preference keys, every one of them falls back to its default and you get exactly the experience a first-time visitor gets. Nothing breaks, and nothing asks you to set them again.
06 · See it, change it, delete it
Every line of clause 02 is checkable in about thirty seconds, without trusting this page:
- Open your browser’s developer tools — on a desktop, usually F12.
- Find Application or Storage, then Local Storage, then this site.
- Every key beginning clearhire: is listed there with its value. Anything you find that is not in clause 02 is something this page has got wrong — please tell us.
- Then look at Cookies, and at the keys without that prefix. Those belong to the analytics providers in clause 10, and the panel below names them too. An earlier version of this page pointed you only at localStorage, which is exactly why four cookies sat on this domain while the page said there were none.
What is in your browser right now
Read from this browser as the page loaded. Key names only, never their contents. localStorage and cookies alike. Names only, never their contents.
Nothing stored yet
ClearHire has written nothing to this browser. A key appears the first time you change an appearance setting or pin a tool.
To change or remove them:
- Change a preference — the theme control in the header. It writes the key the moment you choose, and Reset everything in that panel clears all nine at once.
- End the session — sign out.
- Remove all of it — your browser’s “clear site data” for this site, or delete individual keys in the panel from step 3. Browsers put this in different menus, which is why there is no single click-here instruction.
Clearing all of it is safe. You lose your appearance choices and you are signed out. You do not lose a resume, a profile, an application or an employment record — those live on the server as account data, and removing them is a different page, which says so plainly.
07 · What we do not store
Written as a list, because “we respect your privacy” is not a statement about anything:
- No advertising is sold, shown or brokered in this product. There are no ad slots, no ad networks bidding, and nothing about you is offered to one.
- No fingerprinting by us. Nothing is combined into a device identifier.
- No embedded social widgets. No like buttons, no share pixels, no comment plugins. Sharing opens the network's own page in a new tab and stores nothing here.
- Nothing you type is stored for analytics — not a review body, not a cover letter, not a search query.
Session replay is the exception, and it belongs in this list rather than hidden from it. Microsoft Clarity records how a page is used — pointer movement, clicks, scrolling — so we can see where a screen is confusing. It stores its own identifiers in your browser. It is named with its role in privacy clause 05, and it is the one provider here that is an independent controller rather than a processor.
This list is shorter than it was, because two of its lines were not true It used to make a broader claim about advertising storage and about third-party cookies than this product can support. Microsoft Clarity — the session-replay provider — sets Microsoft identifiers on bing.com, and those serve Microsoft’s advertising. So the honest version is the narrower one above: we sell and show no advertising, and a provider we chose to load nonetheless plants storage that serves someone else’s. Clause 10 names every one of them. That is also what it means, concretely, for Clarity to be an independent controller rather than a processor — which privacy clause 05 already said and this page had not followed through on.
08 · The Android app
The app keeps the same nine preferences and the same session, in the operating system’s own storage for the app rather than a browser store. Clause 02 still describes what is kept; the mechanism underneath is Android’s.
It goes when you uninstall the app, along with everything else the app holds on the device. Android’s own “clear storage” for the app does the same without uninstalling.
One thing is genuinely different, and is disclosed rather than buried: the notification component reads the device’s advertising identifier. It is declared in the app’s manifest and reported in the Play Data Safety form as a device identifier, and it is not used to target advertising, because there is none. The full permission list, with a reason for each
09 · Why there is no consent banner
Consent rules cover storage that is not strictly necessary for a service you asked for — in practice, analytics and advertising. Everything in clause 02 is genuinely neither: those keys exist only because you changed a setting, and they are the setting rather than a record of you. The storage in clause 10 is a different matter, and it is analytics.
- The session is strictly necessary for signing in, which is the thing you asked for.
- The nine preferences exist only because you changed a setting. They are the setting, not a record of you.
A banner asking permission for a text-size preference would train you to dismiss the next one without reading it. That is a worse outcome than no banner. But that argument only ever covered clause 02, and it was being used to cover the whole page.
What you do see, once, is one line at the bottom of the screen: “By using ClearHire, you agree to our Privacy Policy and Terms of Service.” It asks for nothing, changes no setting and goes by itself after ten seconds. The date it was shown is the one key it leaves, listed in clause 02.
So here is the position, stated plainly rather than argued around ClearHire runs analytics and they are on by default. They are named with their purpose in clause 10, and what they store is listed there and shown live in the panel in clause 06. There is no consent banner: a click-through consent gate that most people dismiss without reading buys a record of consent rather than an informed one. What is owed instead is a switch that genuinely stops them loading — not one that lets them load and suppresses the sending — and that switch is in Settings. Turning it off stops every analytics script from being fetched at all on this device, and clears the cookies and stored keys they had already written here. It cannot reach a cookie one of them set on its own domain: only that vendor or your browser can remove those, and clause 10 names which ones they are.
10 · Storage other people set
Everything above is storage ClearHire writes. Some of what you use ClearHire for involves someone else's site, and their storage is theirs.
| Provider | What it is for | On this domain | On its own domains |
|---|---|---|---|
| Microsoft Clarity — also serves advertising | Records how a page is used — pointer movement, clicks, scrolling — so we can see where a screen is confusing. | _clck…, _clsk…, _cltk… | clarity.ms, c.clarity.ms, www.clarity.ms, bing.com, c.bing.com |
| Amplitude | Product analytics — which features are used, and where a flow is abandoned. | AMP_… | Nothing |
| Google Analytics 4 | Aggregate traffic — which pages are reached, from where, and on what. | _ga… | google-analytics.com, googletagmanager.com |
| Sentry | Error reports — what broke, where, and whether anyone had to see it. | Nothing | Nothing |
Sentry stores nothing in the browser at all; it is listed so the set of providers is complete rather than only the ones with something to declare. Clarity is the one that reaches furthest — it sets Microsoft identifiers on bing.com, and those serve Microsoft’s advertising, which is what being an independent controller rather than a processor amounts to in practice.
| Who | When | Where it lives |
|---|---|---|
| While you sign in | On Google’s own domains, under Google’s policies. It is how staying signed in to Google works at all; we neither set it nor read it. | |
| FilesHub | When a file you uploaded is fetched | An ordinary request to their domain. Nothing is set on ours. |
| Google Play | Installing or updating the Android app | Entirely inside Play, before ClearHire runs. |
| <span class="font-mono">dodopayments.com | If you buy Pro or Team | A different site with its own policies, where the payment is taken. ClearHire never handles card details. |
We cannot clear these for you, and a page claiming otherwise would be claiming control it does not have. Your browser’s site-data controls and your Google account settings are where they live.
This clause is the rest of it: what the analytics providers put in your browser, and what other sites you reach through ClearHire keep on their own.
11 · Changes to this page
The version and date at the top move with any change. A new key is a change to clause 02 or clause 10, and those two together are the part worth re-checking — if something is stored that is in neither, this page is wrong and we want to hear about it. Reading only one of them is how it went wrong last time.
Adding storage that needs consent is a material change: announced in the app before it takes effect, exactly as terms clause 11 requires, and arriving with the choice described in clause 09.
12 · Contact
A key in your browser that is not in clause 02, or a question about any of this:
This is the one policy on the site you can verify yourself in under a minute. Clause 06 says how — please do, and tell us if it does not match.