CV Sharing
Share your CV with a link — no account required for the viewer. You control who can see it and for how long.
Access modes
| Mode | Description |
|---|---|
| Public | Anyone with the link can view your CV |
| Restricted | Only specific email addresses you invite can view it |
Access controls (Pro)
| Option | Description |
|---|---|
| Password protection | Visitors must enter a password before viewing |
| Expiry date | The link automatically stops working after a chosen date |
| Email restriction | Only named email addresses can access the link |
Share URL
Your shareable link looks like:
https://cvfox.app/s/your-unique-token
How the viewer sees your CV
The viewer opens your link and sees a clean, standalone page with your CV — no CVFox navigation, no login prompt (unless you've restricted access). If you've set a password, they'll be prompted to enter it first. Password -->|No| Access Access -->|Yes| EmailCheck EmailCheck -->|Not in list| Deny EmailCheck -->|In list| Show Access -->|No - anyone| Show
## Plan Requirements
| Feature | Free | Pro |
|---|---|---|
| Basic public sharing | ✅ | ✅ |
| Password protection | ❌ | ✅ |
| Expiry date | ❌ | ✅ |
| Email-restricted access | ❌ | ✅ |
## Share Password Security
Passwords are **BCrypt-hashed** before storage using `bcryptjs`. The plain-text password is never stored. On each share view, the entered password is compared against the hash.
## Shared Link Routes
Shared CV pages are rendered under `src/app/s/`. These routes are intentionally **outside** the `[locale]` App Router segment and skip both i18n and auth middleware.