careeros boot v1 · Next.js 15 · Prisma 6 · PostgreSQL 16
[ ok ] profil professionnel chargé
[ ok ] moteur de matching déterministe (6 critères)
[ ok ] IA : facultative · AI_PROVIDER=none → moteurs à règles
[ ok ] espace familial : partage désactivé par défaut

CareerOS

Un système d'exploitation personnel pour sa recherche d'emploi, avec une fenêtre en lecture seule pour ses proches.

vue-d-ensemble

8 indicateurs cliquables


12envoyées
3entretiens
5relances dues
74match moyen

Données de démonstration fictives · les brouillons ne comptent pas comme envoyés

mode-focus

5 actions maximum


  • Préparer l'entretien du jeudiurgent
  • Relancer après 10 jours sans réponseimportant
  • Répondre à un e-mail importé
  • Lire 3 nouvelles offres compatibles
  • Mettre à jour l'objectif hebdo
pourquoi-careeros.md

Toute une recherche d'emploi, sans tableur qui déborde.

↔ les fenêtres se déplacent : attrapez une barre de titre

Matching déterministe · réglez les pondérations
ponderations.json
offre · exemple fictif
Data Analyst · stage 6 mois
Paris · offre de démonstration
0/100

Version d'algorithme et pondérations enregistrées à chaque calcul

CRM · 15 statuts

« Envoyée » seulement quand vous le confirmez.

Repérée

Brouillon

Envoyée

Relance

Entretien

Marquer « Analyste BI · Lyon » comme envoyée le 29/10 ?
AI_PROVIDER = none | anthropic | openai-compatible

L'IA aide. Elle ne décide pas, n'invente pas, n'envoie rien.

sans-cle.txt

Tout marche sans clé

Analyse par règles, matching, CV par sélection et réordonnancement, lettres et préparations d'entretien sur modèles à compléter.

controle-factuel.diff

Contrôle factuel

Une reformulation de CV est vérifiée : chiffres, compétences, durées.

− « a piloté une équipe de 12 personnes »
+ rejeté : « 12 » absent du profil
brouillons/

Jamais d'envoi

Relances et réponses restent des brouillons. Un entretien sans date confirmée n'est jamais présenté comme programmé.

Deux espaces, deux rôles

Rassurer ses proches sans tout leur montrer.

Le rôle FAMILY_VIEWER ne lit qu'une projection en liste blanche, alimentée champ par champ. Partage désactivé par défaut.

■ Bouton d'arrêt immédiat du partage
/app/candidatures/analyste-bi


PosteAnalyste BI · Lyon
ÉtapeEntretien à préparer
Prochaine étape« Entretien jeudi, je vous raconte après ! »
Salaire visédonnée privée
Notes privées« recruteur peu clair sur le télétravail »
E-mails3 messages importés
Sécurité

Des données personnelles, traitées comme telles.

Argon2idmots de passe et sessions en base
5 échecs / 15 minpar e-mail + IP, réponse à temps constant
Cookies __Host-httpOnly, SameSite=Lax, Secure en production
Anti-SSRFrécupération d'offre par URL protégée, à la demande
Fichiers vérifiéstype contrôlé par octets, 5 Mo max
Tout exporter, tout effacerCSV/JSON, suppression de toutes les données
shutdown -h now

Chercher un emploi avec méthode, pas avec angoisse.

Next.js 15 · TypeScript strict · Tailwind 4 · Prisma 6 · PostgreSQL 16 · Vitest