This Cookie Policy explains how JobScamScore, operated by Niche Outcomes Limited ("we," "our," or "us"), uses cookies and similar browser-storage technologies (localStorage and sessionStorage) when you visit or use our website and service (the "Service").
This policy is a complete register: every cookie and storage item our application sets is listed below, with its purpose, duration, and legal basis. We do not ask you to consent by simply using the Service. Non-essential storage is only used after you explicitly accept it in the consent banner (see Section 6).
Cookies are small text files placed on your device when you visit a website. Cookies can be "persistent" (remain until deleted or expired) or "session" cookies (deleted when you close your browser).
Browsers also provide localStorage (persists until deleted) and sessionStorage (deleted when the tab closes). These are not cookies, but the same privacy rules apply to them, so we document them here with the same rigour (Section 4).
These cookies are required for signing in, security, and enforcing the free-scan limit. They cannot be disabled.
| Cookie Name | Purpose | Duration |
|---|---|---|
| next-auth.session-token (__Secure-next-auth.session-token in production) | Keeps you signed in | 7 days |
| next-auth.csrf-token (__Host-next-auth.csrf-token in production) | Protects against cross-site request forgery attacks | Session |
| next-auth.callback-url | Returns you to the right page after signing in | Session |
| next-auth.pkce.code_verifier, next-auth.state (and related sign-in flow cookies) | Secure the "Sign in with Google" flow; only set while that flow is in progress | ~15 minutes |
| __pending_signin_token | One-time token that completes sign-in after email verification (HttpOnly, Secure, SameSite=Strict, restricted to a single path) | 5 minutes, deleted on first use |
| jss_anon_scan_used | Records that the free scan without an account has been used on this browser (limit enforcement and abuse prevention) | 12 months |
Legal basis: These cookies are strictly necessary to provide the Service you request (performance of a contract, and our legitimate interest in security and abuse prevention). Consent is not required for strictly necessary cookies.
| Cookie Name | Purpose | Duration |
|---|---|---|
| NEXT_LOCALE | Remembers the display language you selected | 12 months |
This cookie is set only when you actively choose a language with the language switcher β never automatically. Storing the preference you just asked for is necessary to honour that request, so no separate consent banner interaction is required. You can remove it at any time by deleting cookies in your browser.
We use a small amount of first-party analytics to understand which features help people (for example: how many visitors who see the homepage go on to run a scan). There are no third-party analytics services, no advertising networks, and no cross-site tracking of any kind.
Our analytics uses one localStorage item, jss_session_id (a random identifier with no personal information; see Section 4). It is created only after you accept analytics in the consent banner. If you have not decided, or you chose "Essential only," no analytics events are sent at all and no identifier is stored.
Legal basis: your consent, which you can withdraw at any time (Section 6). Withdrawing deletes the identifier.
We do not use marketing or advertising cookies, and our Content-Security-Policy does not permit connections to advertising or third-party analytics networks β so such cookies are blocked by construction, not just by policy.
Beyond cookies, the Service stores the following items in your browser. sessionStorage items are deleted automatically when the tab closes.
| Key | Type | Purpose | Category |
|---|---|---|---|
| jss_cookie_consent | localStorage | Records your consent decision and when you made it | Essential |
| jss_session_id | localStorage | Random identifier linking your page events in our own funnel statistics; contains no personal information | Analytics β only with your consent; deleted if you withdraw |
| jobscamscore_pending_scan | localStorage | Keeps the job details you typed so they are not lost while you sign in | Essential to the action you requested |
| pendingScanData, pendingScanImages | sessionStorage | Carries the job or screenshots you submitted on the homepage to the scan page | Essential to the action you requested; deleted when read or when the tab closes |
Our authentication library. It sets the essential sign-in cookies listed in Section 3.1.
Our hosting provider may set technical cookies for performance and security purposes. These are essential for the Service to function.
We use Sentry for error and performance monitoring so we can fix problems. Sentry does not set cookies on our site. Details of what error data is processed are described in our Privacy Policy.
No Google Analytics, no advertising pixels, no social-media trackers, no third-party analytics of any kind. Our Content-Security-Policy allowlist does not include any analytics or advertising origin, so even a misconfiguration could not silently introduce one.
On your first visit you are asked to choose between "Accept analytics" and "Essential only." Both options are equally available. Until you choose, the Service behaves as if you chose "Essential only": no analytics events are sent and no analytics identifier is stored. This applies to all visitors, wherever you are located β including the EEA and UK.
You can change or withdraw your choice at any time using the link (also in the footer of every page). Withdrawing consent stops analytics immediately and deletes the stored identifier.
Most browsers also let you control cookies directly. You can:
Note: Blocking essential cookies may prevent the Service from functioning properly. You may not be able to log in or use certain features.
Some browsers include a "Do Not Track" (DNT) feature. There is no accepted standard for interpreting DNT signals and we do not respond to them β but because analytics here is opt-in, the default for every visitor is already no tracking.
We may update this Cookie Policy to reflect changes in our practices or for operational, legal, or regulatory reasons. Material changes will be posted on this page with an updated "Last updated" date. If we ever introduce a new non-essential cookie or storage item, it will be listed here and gated behind the same consent mechanism before it is used.
If you have any questions about our use of cookies, please contact us: