Nouveautés
Ce qui a été ajouté, amélioré, corrigé. Par ordre chronologique.
Version 2.6
- Nouveau
🎁 Pro trial conversion funnel — 3 emails personnalisés (T-2 alerte, T-1 -50% urgent, T+0 dernière chance) automatiquement envoyés selon votre fenêtre d'expiration. Coupon `trial50` valide T-2 à T+7 jours, validation server-side anti-leak.
- Nouveau
🏢 /domiciliation — guide complet domiciliation auto-entrepreneur pour étrangers en France, avec recommandation partenaire SeDomicilier. Disclosure DGCCRF + JSON-LD Article. Wired depuis footer, guides entrepreneuriaux (auto-entreprise / freelance / remote / portage), sidebar des offres Indépendant/LIB, et email drip jour 21.
- Nouveau
📨 Welcome drip étape 6 (jour 21) — pitch entrepreneurial dans les 4 langues : alternative au salariat pour qui veut lancer son activité. Subject auto-filtre par self-selection.
- Corrigé
🔒 Rate-limit /api/auth/register utilisait l'IP interne nginx (172.20.0.4) → 5 inscriptions/heure POUR TOUT LE SITE au lieu de par utilisateur. Réelle IP désormais lue via X-Real-IP. Pareil pour /resend-code, /forgot-password, /events, /skill-stats, /suggest.
- Corrigé
🔒 /api/auth/register créait des comptes parallèles si l'email existait déjà via Google ou Telegram (le check ne regardait que `auth_provider='web'`). Désormais refuse avec un message qui dirige vers le bon flow de connexion. 7 doublons existants nettoyés.
- Corrigé
⚡ /api/auth/register, /resend-code, /forgot-password répondent en <100 ms (au lieu de 500-650 ms). Les envois SMTP synchrones bloquaient la réponse — déplacés en BackgroundTasks.
- Corrigé
🔍 /vacancies/[id] des annonces inactives ne montraient PAS le bandeau « Cette offre n'est plus disponible » + meta noindex — `_vacancy_to_response()` ne propageait pas le champ `is_active`. 51 124 pages d'archives fixées : Google peut désindexer correctement.
- Corrigé
🔍 /not-found.tsx (racine) était `"use client"` → Next.js 16 servait HTTP 200 + zéro meta robots → soft-404 indexé par Google. Split en server-shell qui pose le 404 + metadata, client child pour les traductions. Plus une not-found dédiée pour /vacancies/[id].
- Corrigé
🛠️ Scheduler — la fenêtre quotidienne « hour==3 AND minute<3 » loupait silencieusement le cleanup quand un tick déborderait (observé : gap 23 min entre cycles). Daily expire_premium / WAL checkpoint / ANALYZE / vacancy deactivation / trial reminders ne tournaient pas certains jours. Switch vers tracking par date du dernier run.
- Amélioré
🗑️ Jooble parser désactivé — 73 runs/jour fetchaient 40 k vacancies mais le déduplicateur n'en gardait que 3 (déjà couvertes par jobijoba/hellowork/france_travail). ~80 min/jour de compute économisés.
- Amélioré
🔇 Logs jobijoba « No .offer cards found » passés en DEBUG (étaient INFO) — ~1.4k lignes/jour de bruit en moins. Les vrais échecs restent en WARNING.
Version 2.5
- Nouveau
🔗 Footer SEO block — 10 top secteurs + 10 top villes linkés sur chaque page (~200 000 nouveaux liens internes pour le crawl budget Google).
- Nouveau
🏷️ Autres secteurs d'activité — 19 chips horizontaux sur chaque /emploi/[catégorie] pour une navigation latérale entre secteurs.
- Nouveau
📨 Newsletter capture — formulaire email ajouté sur /tendances-marche, /salaires, /calculette-salaire, /puis-je-travailler-en-france, /jobs-in-france, /russes-en-france (était déjà sur /guides).
- Nouveau
⬆️ ScrollDepthPrompt — carte fixe au 55 % de scroll pour les visiteurs non-connectés sur /emploi/* ; respecte un cooldown 7j après dismiss.
- Nouveau
📖 Intro narrative sur /company/[nom] — 150-180 mots dérivés des data (offres actives, croissance 30j, salaire médian, secteur principal, lien vers salaires).
- Nouveau
💾 Backup web DB — cron quotidien 03:15 Paris → snapshot .backup() SQLite → gzip → rétention 30 jours. Runbooks disaster-recovery + SPOF mitigation + incident response + secret rotation ajoutés.
- Nouveau
📧 Verify-email reminder — nudge automatique 24h après inscription si l'email n'est toujours pas vérifié (nouveau code 6 chiffres envoyé, idempotent).
- Nouveau
🛡️ Pre-deploy check — refuse les deploys si un utilisateur non-admin a écrit dans activité/applications/paiements/reviews ces 5 dernières minutes. Évite d'interrompre les sessions actives.
- Nouveau
📊 13 événements funnel câblés (étaient déclarés mais jamais émis) : vacancy_viewed, apply_clicked (list + detail + external), favorite_added, first_apply, search_performed, first_search, premium_viewed, premium_checkout_started, premium_upgraded, share_clicked (native + copy), scroll_prompt_shown/dismissed, language_changed.
- Nouveau
📱 Viewport meta explicite — pinch-zoom autorisé jusqu'à 5x (WCAG 1.4.4 / a11y).
- Nouveau
🖨️ Stylesheet @media print — nav/footer/boutons strippés, liens visibles avec URL inline.
- Corrigé
🔒 refresh_token n'est plus stocké dans localStorage — seul le cookie httpOnly+Secure+SameSite=Strict le porte. L'ancienne redondance annulait la protection XSS.
- Corrigé
🔒 Rate limit per-IP ajouté sur /api/auth/register (5/h) en plus du nginx zone=login — bloque les signup spammeurs qui restent sous le seuil nginx.
- Corrigé
🔒 GDPR delete — /api/profile DELETE purge aussi external_bookmarks (table ajoutée après la fonction delete_user_data).
- Corrigé
🔒 2 console.log qui log'aient bot_id + auth callback data retirés de TelegramGrowthCard.
- Corrigé
♿ 3 <img alt=""> remplis (avatars Navbar x2 + admin/users/[id]) pour a11y + SEO.
- Corrigé
🎯 Organization.sameAs dans le schema.org racine pointait vers des handles inexistants — remplacé par les 4 vrais canaux @France_Work_{Fr,En,Ru,Ro}.
- Corrigé
📇 Hiring velocity — IndexNow pings automatiquement /company/{nom} dès qu'un review est approuvé, pour que Bing/Yandex voient l'AggregateRating fraîche en quelques minutes.
- Amélioré
Strategic diagnostic 80 rounds — document vivant avec verification log (9 des claims étaient déjà implémentés : GDPR delete, validThrough, dedup, saved searches, log rotation, password strength, hreflang, etc).
- Amélioré
5 playbooks marketing ajoutés : reviews-seed (5 drafts FR pour le ⭐ SERP), tg-pin-post (4 langues), reddit-posts-2026-04-24 (chiffres refreshed), seo-baseline-2026-04-24 (checkpoints +7/+14/+28j), b2b-launch-plan (2 semaines de validation), this-week (top 5 actions rangées).
Version 2.4
- Corrigé
🚨 Gros SEO: nginx renvoyait Cache-Control: private, no-cache pour /emploi/*, /salaires, /competences, /entreprises, /faq, /ambassadeurs, /map, /premium, /changelog. Google traite `private` comme « ne pas indexer dans Rich Results » — toute la famille /emploi/* (1 070 URLs) était potentiellement bloquée. Regex élargie, routes publiques servent maintenant `public, max-age=0, must-revalidate`.
- Nouveau
⚡ SQLite PRAGMA — mmap 256 MB (DB fait 247 MB → toute la base mmap'ed), temp_store=MEMORY (GROUP BY / ORDER BY en RAM), cache_size bumped à 16 MB. -25 à -44 % sur les compute queries (market-trends, skill-stats, LIKE scans).
- Nouveau
💾 In-process cache avec TTL court sur les endpoints chauds : /market-trends (30 min), /skill-stats (30 min, clé = compétence), /suggest (2 min, clé = préfixe), /public/vacancies (20 s, clé = tuple de filtres). Coups froids du CDN ne touchent plus le backend.
- Nouveau
🔒 /public/vacancies/{id} renvoie 404 pour les offres flaguées comme arnaque (is_scam = 1). 25 URLs n'entrent plus dans l'index Google ; les utilisateurs avec un bookmark obtiennent 404 au lieu d'une mauvaise annonce.
- Nouveau
🆎 OG images dynamiques pour chaque /emploi/[cat], /emploi/departement/[dept], /emploi/[cat]/[dept] — 1 070 cartes uniques pour les partages sociaux (au lieu d'un fallback générique). Font-size auto-shrink selon la longueur du label.
- Nouveau
📝 Intros SEO ~160-180 mots sur toutes les landings /emploi/* (20 catégories + 50 départements + ~1 000 combos). Fin du thin-content.
- Nouveau
🌐 /vacancies?cat=…&dept=… émet maintenant un canonical vers /emploi/{slug} correspondant. Google consolide les rankings sur les URLs propres, pas de duplicate content.
- Nouveau
🗺️ robots.txt refactoré : /vacancies? n'est plus bloqué (GSC URL Inspection affichait « Blocked by robots.txt »). UTM, sort, page duplicates toujours bloqués.
- Nouveau
⚡ ANALYZE vacancies quotidien — /public/companies/{name} passe de 580 ms à <100 ms (le planner SQLite prend enfin l'index partiel idx_vacancies_company_active).
- Amélioré
Titres — suffixe « | JobHunter France » en double retiré sur ~30 routes (template du layout racine s'en charge automatiquement).
- Amélioré
Cache-Control ajouté sur 3 endpoints qui n'en avaient pas : /public/salary-stats, /public/referral-leaderboard, /public/sitemap-data. CDN les cache maintenant.
- Amélioré
Cleanup — imports inutilisés dans 6 fichiers, directives eslint-disable obsolètes dans usePush.
- Amélioré
Tests backend : 127 → 129 (analyze_vacancies + scam vacancy 404). i18n gate : 494 clés × 4 locales toujours OK.
Version 2.3
- Nouveau
🔍 robots.txt — /vacancies? n'est plus bloqué (Google couvait des 'Blocked by robots.txt' sur chaque URL de filtre). Les duplicates (UTM, sort, pagination) restent filtrés.
- Nouveau
🔗 /vacancies?cat=…&dept=… — <link rel="canonical"> pointe désormais vers /emploi/{slug} correspondant. Google consolide le poids de ranking sur les URLs propres sans pénalité de contenu dupliqué.
- Nouveau
📝 Intro SEO ~160-180 mots sur toutes les landings /emploi/* (20 catégories + 50 départements + ~1000 combos). Fin du thin-content sur ~1070 URLs d'un coup.
- Nouveau
⚡ ANALYZE vacancies quotidien dans le scheduler — /public/companies/{name} passe de ~180ms à ~0.1ms sur la requête principale (le planner SQLite prend enfin l'index partiel idx_vacancies_company_active).
- Amélioré
Titres — suffixe « | JobHunter » en double retiré sur /career-copilot, /cv-builder, /salaires, /salaires/[cat], /vacancies (le template du layout racine ajoute déjà « | JobHunter France »).
- Amélioré
/vacancies — generateMetadata dynamique selon ?cat=/?dept=, avec titre UX par combinaison. Reuse des CATEGORY_SLUGS / DEPARTMENT_SLUGS existants (seo-data.ts), aucun dédoublement de logique.
- Amélioré
Tests backend : 127 → 128 (smoke test analyze_vacancies). i18n gate : 494 clés × 4 locales OK.
Version 2.2
- Nouveau
⚡ Backend — uvicorn passé à 2 workers (verrou fichier garantit qu'un seul tourne le scheduler). Doublement du throughput API aux heures de pointe.
- Nouveau
🎯 useTranslation — la langue courante est chargée dynamiquement (fr en sync, en/ru/ro en code-split). Économie ~100-140KB de JS initial sur chaque page client.
- Nouveau
💾 Cache-Control + SWR sur /public/stats, /public/vacancies, /public/vacancies/{id}, /public/telegram-promo, /public/suggest, /public/success-stories, /public/vacancies/geo, /public/salary-estimate, /api/public/status. Les retours navigations sentent instantanés.
- Nouveau
🔌 nginx — upstream + keepalive (32 conns backend, 16 frontend) + HTTP/1.1 proxy + Connection: empty. Plus de TCP handshake par requête.
- Nouveau
⏳ loading.tsx streamé sur 20+ routes (vacancies, map, admin, profile, applications, favorites, best-matches, guides, entreprises, competences, salaires, company, cv-builder, career-copilot, calculette-salaire, puis-je-travailler-en-france, tendances-marche, dashboard, emploi, settings, swipe, vacancies/[id]).
- Nouveau
🗂️ SQLite — index partiel idx_vacancies_company_active + idx_reviews_company pour /company et /entreprises (O(matches) au lieu de O(taille)). WAL checkpoint quotidien dans le scheduler.
- Nouveau
🖼️ next.config — images AVIF+WebP, minimumCacheTTL 31 j, compression déléguée à nginx.
- Nouveau
🧭 /fr /en /ru /ro — plus de 404 ; middleware redirige 308 vers /?lang=xx, HomeClient lit le query et applique la langue une fois.
- Nouveau
📡 Observabilité — middleware slow-request-logger (>500ms), header Server-Timing dans toutes les réponses.
- Nouveau
📋 Layouts + metadata (canonical, OG, JSON-LD SoftwareApplication + Offer) sur /faq et /premium ; preconnect GA/GTM + dns-prefetch Google dans le root layout.
- Nouveau
🎨 error.tsx sur /map, /applications, /best-matches, /favorites — fallbacks utiles avec liens d'échappatoire (liste, dashboard, etc).
- Nouveau
📱 PWA manifest — shortcuts (Offres / Matches / Candidatures) pour long-press de l'icône, categories + lang.
- Amélioré
ServiceWorker + badges admin — polling mis en pause quand l'onglet est masqué (visibilityAPI). Plus de requêtes inutiles sur les onglets ouverts en arrière-plan.
- Amélioré
HomeClient — fetches below-fold (stories, TG promo, top-rated) déferrés sur requestIdleCallback. Le hero reste prioritaire.
- Amélioré
useAuth + useCompare — valeur du contexte mémoïsée pour éviter les re-renders en cascade chez tous les consommateurs.
- Amélioré
meta description de /vacancies/[id] préfixée par location · salaire · contrat — snippet SERP plus informatif.
- Amélioré
Footer — prefetch={false} sur 23 liens ; admin footer idem. Plus de prefetchs spéculatifs sur scroll.
- Amélioré
/vacancies/[id] (stale) rend désormais « offre expirée » avec noindex + offres similaires (cassait avant en 404).
- Amélioré
Tests backend : 125 → 127 (scheduler lock, WAL checkpoint).
- Corrigé
Error.tsx et ErrorBoundary : <a href="/"> → <Link> pour éviter le reload complet.
- Corrigé
Cleanup — 5 SVG par défaut de create-next-app, test-artifact vac70564.html, imports unused (useToast, Profile, Link, CATEGORY_SLUGS, etc).
Version 2.1
- Nouveau
🧹 Vacancies liveness — offres non vues depuis 14+ jours ou plus vieilles que 45 j sont désactivées automatiquement (soft-delete). Les URLs restent accessibles avec un bandeau « offre expirée » et suggestions similaires, plutôt qu'un 404 qui casserait le SEO.
- Nouveau
✨ Admin — les popups natifs (prompt/confirm) remplacés par des modales thématisées propres (Ban, Grant Pro/Premium, Refund, Delete). 10+ flux migrés.
- Nouveau
📊 Admin dashboard — cartes santé IndexNow + circuit breaker par parseur + DAU/WAU/MAU + stickiness ratio.
- Nouveau
🔔 Admin nav — badges rouges sur Reviews / Reports / Stories avec les comptes en attente.
- Nouveau
⌨️ Admin raccourcis clavier — "g" + lettre pour naviguer (d/u/a/v/r/o/p/s/l).
- Nouveau
📥 Export CSV sur audit, reviews, reports, stories, vacancies (respecte le filtre actif).
- Amélioré
Admin — filtres rapides /admin/users (Pro/Premium/Free/Banned/Unverified) + /admin/vacancies (Active/Inactive/Scam), links cliquables partout.
- Amélioré
/admin/payments — barre « share of revenue » par plan.
- Amélioré
Scheduler — timeout par parseur (240s) au lieu d'un global (300s); Jobijoba dégrade gracieusement.
- Corrigé
Les 67k+ vacancies s'accumulaient indéfiniment ; système de liveness identifie + cache les obsolètes.
Version 2.0
- Nouveau
🧭 BreadcrumbList structuré sur toutes les pages publiques restantes (FAQ, ambassadeurs, changelog, status, API docs, CGV, emploi, salaires, entreprises, jobs-in-france, russes-en-france, calculette-salaire, CV builder, puis-je-travailler-en-france, tendances-marche)
- Nouveau
📦 Schema CollectionPage + ItemList sur /salaires et /entreprises — index qui relient leurs 20 datasets enfants et 200 entreprises enfants respectivement
- Nouveau
🏢 Schema Organization enrichi sur /company/[nom] — description, areaServed=France, knowsAbout (top 5 catégories d'embauche)
- Nouveau
📚 Schema BlogPosting upgrade sur /guides/[slug] — wordCount, timeRequired, inLanguage, image OG dédiée
- Nouveau
🎯 Schema DefinedTerm sur /competences/[slug] — chaque compétence tech devient une entité référencée
- Nouveau
🖼️ Images OpenGraph dédiées pour 15+ pages (premium, map, entreprises, invite, ambassadeurs, faq, changelog, status, api-docs, cgv, emploi, competences, russes-en-france, jobs-in-france, vacancies)
- Nouveau
🔗 hreflang cluster symétrique entre /puis-je-travailler-en-france ↔ /jobs-in-france ↔ /russes-en-france (était cassé avant : pointait vers la homepage)
- Nouveau
🔍 Moteur de recherche OpenSearch corrigé — l'URL du template utilisait ?search= au lieu de ?q= (même bug sur SearchAction)
- Nouveau
♿ Lien « Aller au contenu principal » (focus-revealed) pour les utilisateurs clavier et lecteurs d'écran
- Nouveau
🤖 robots.txt — 6 nouveaux bots explicitement autorisés (anthropic-ai, PerplexityBot, Google-Extended, Applebot-Extended, Bytespider, Bingbot, YandexBot)
- Nouveau
📊 Admin dashboard — 2 nouveaux endpoints de supervision : /api/admin/indexnow-stats (succès/échecs des pings) et /api/admin/scheduler-stats (état des circuit breakers par parser)
- Nouveau
⚡ Endpoint /api/public/health pour les monitors externes (liveness probe sans toucher la DB)
- Amélioré
Scheduler plus résilient — chaque parser a son propre timeout (240 s) au lieu d'un global (300 s) ; un parser lent ne coupe plus le cycle
- Amélioré
Parser Jobijoba dégrade gracieusement sur erreurs réseau transitoires (élimine les alertes Sentry pour 5xx ponctuels)
- Amélioré
Canonical + metadata corrects sur 10+ pages client (favorites, applications, invite, welcome, my/bookmarks, contact, privacy, terms, mentions-légales, compare, map, swipe, cgv, salary-stats) — évite les Soft 404 pour cause d'alias homepage
- Amélioré
Couverture tests backend : 76 → 120+ tests (indexnow, scheduler, deduplicator, scam_detector, matcher, i18n_backend)
- Amélioré
Page /premium — tri avec Pro Année en premier + badge « -33 % vs mensuel » calculé à partir des prix réels
- Amélioré
Nouvelle npm script "preflight" : check-i18n + tsc en une commande avant chaque push
- Corrigé
129 sites d'appel t(key) || "fallback" migrés vers tOrNull(key) ?? "fallback" (le pattern précédent ne fonctionnait pas — t() retourne la clé sur miss, ce qui est truthy)
- Corrigé
SearchAction et OpenSearch utilisaient ?search= au lieu de ?q= — Google et les navigateurs voyaient un template cassé
Version 1.9
- Nouveau
⚡ IndexNow — nouvelles offres signalées à Bing/Yandex en minutes au lieu de jours (via le protocole IndexNow, ping automatique après chaque cycle de parsing, couvre aussi les pages entreprise)
- Nouveau
🗺️ Sitemap enrichi — les 200 entreprises les plus actives y figurent désormais, en plus des offres individuelles et des pages métier×département
- Nouveau
🧭 Fil d'Ariane structuré (BreadcrumbList) sur toutes les pages outils — affichage « Accueil › Section › Page » dans les résultats Google
- Nouveau
🏷️ Garde-fou i18n — le déploiement échoue désormais si une clé de traduction est utilisée sans être définie dans toutes les langues (évite l'incident home.tgPromoTitle)
- Amélioré
Traductions complètes : 44 départements hors Île-de-France + 14 régions françaises dans les 4 langues (affichage russe enfin correct pour tout le territoire)
- Amélioré
Schema.org renforcé : DefinedTerm sur /competences, BlogPosting sur les guides (avec wordCount, timeRequired, inLanguage), ItemList + BreadcrumbList sur /vacancies, Dataset enrichi (license CC BY 4.0, keywords, temporalCoverage) sur /salaires
- Amélioré
Page /premium — Pro Année mis en avant (tarif le plus avantageux), badge « -33 % vs mensuel » calculé à partir des prix réels
- Amélioré
Partage depuis /invite — X (Twitter), LinkedIn et Email ajoutés en plus de WhatsApp, Telegram et SMS
- Amélioré
Filtres plus stables — les listes déroulantes suivent désormais le bouton lorsqu'on scrolle la page (rAF throttled) et se ferment automatiquement quand le déclencheur sort du viewport
- Amélioré
Barre de filtres /vacancies persistante — reste collée sous le navbar pour garder l'accès aux filtres pendant le défilement
- Amélioré
Catégories/contrats enfin traduits partout — root cause : le backend renvoyait du russe en dur ignorant la langue de l'utilisateur ; frontend utilise maintenant l'i18n sur tous les dropdowns (vacancies, swipe, map, onboarding)
- Amélioré
Hreflang cluster des landings visa — /puis-je-travailler-en-france ↔ /jobs-in-france ↔ /russes-en-france pointent tous vers les mêmes sister pages (requis pour que Google considère le cluster valide)
- Amélioré
Accessibilité cartes d'offre — <time dateTime> sur les badges de fraîcheur, troncature intelligente des snippets, fallback « Sans titre » localisé
- Amélioré
/admin/indexnow-stats — tableau de bord de supervision des pings IndexNow (succès, échecs, dernière erreur)
- Corrigé
Conditions Générales de Vente — tarifs mis à jour (Pro Mois 9,99 € au lieu de 29,99 €, etc.) + ajout Pro Année (79,99 €/an) + mention France entière (et non uniquement IdF)
- Corrigé
JobPosting schema — suppression de hiringOrganization.sameAs qui pointait vers nous-mêmes (signalé dans Search Console), occupationalCategory désormais descriptif, industry redondant supprimé
- Corrigé
Dropdown /map affichait « vacancies.reset » au lieu du libellé traduit — clé manquante dans toutes les locales, ajoutée
- Corrigé
Bannière Telegram sur /home affichait « home.tgPromoTitle » en dur — clés i18n jamais ajoutées
- Corrigé
useTranslation refait en useSyncExternalStore — warning React 19 « cascading renders » supprimé, bonus : synchronisation de la langue entre onglets
- Corrigé
Anti-pattern t(key) || "fallback" corrigé dans 129 endroits — remplacé par tOrNull(key) ?? "fallback" qui déclenche vraiment le repli quand la clé manque
Version 1.8
- Nouveau
🎯 Calculette de salaire interactive (/calculette-salaire) — percentiles p25/50/75/90 + estimation par années d'expérience + votre position dans le marché
- Nouveau
📊 Tendances du marché (/tendances-marche) — secteurs en croissance/recul, top 10 entreprises qui accélèrent, départements qui recrutent
- Nouveau
🛂 Simulateur visa & travail (/puis-je-travailler-en-france) — 5 questions pour savoir si vous pouvez travailler en France (Passeport Talent, PVT, titre salarié)
- Nouveau
📄 CV Builder avec export PDF (/cv-builder) — format français, suggestions IA pour résumé/bullets/compétences (Pro), sauvegarde auto
- Nouveau
🤖 Career Copilot — conseiller IA 24/7 (/career-copilot) — chat multi-tours spécialisé marché français, 20 questions/heure (Pro)
- Nouveau
💼 Avis d'entretien sur /company/[nom] — processus, difficulté, issue (embauché/refusé/ghosted) en complément des avis employés
- Nouveau
🚩 Signalement d'entreprise — rapporter arnaques, harcèlement, salaires impayés. Bannière d'avertissement public quand ≥3 signalements
- Nouveau
📈 Rythme de recrutement sur les pages entreprise — offres des 30 derniers jours vs 30 jours précédents, villes les plus dynamiques
- Nouveau
🔗 Flux partenaires publics — /api/public/feed.json + feed.xml (RSS) pour embed sur sites externes (gratuit avec attribution)
- Amélioré
Suppression de compte — processus en 3 étapes (cases à cocher, retape de l'email, phrase de confirmation) pour éviter les suppressions accidentelles
- Amélioré
Dashboard — tuiles dédiées Career Copilot + CV Builder à côté des récompenses de milestones
- Amélioré
Footer + menu utilisateur — accès direct aux nouveaux outils depuis n'importe quelle page
Version 1.7
- Nouveau
🇬🇧 Nouvelle landing /jobs-in-france pour les anglophones expatriés (symétrique à /russes-en-france)
- Nouveau
Top-rated entreprises sur la page d'accueil (dès qu'il y a 3+ avis)
- Nouveau
Distribution d'étoiles sur les pages entreprise (graphique bâtons 5★ → 1★)
- Nouveau
Tri des avis — plus récents / mieux notés / moins bien notés
- Nouveau
Bouton 'Retour en haut' sur les guides et landings longues
- Nouveau
Recherche OpenSearch — ajoutez JobHunter comme moteur de recherche dans votre navigateur
- Nouveau
Endpoint /api/public/reviews/recent pour futurs widgets de découverte
- Amélioré
Boutons de partage Telegram/LinkedIn/WhatsApp sur les guides
- Amélioré
Badge d'incitation '30 jours Pro offerts pour les 20 premiers avis'
- Amélioré
Bannière langue (RU/EN) sur la page d'accueil quand l'utilisateur change la langue
- Amélioré
Nom d'entreprise cliquable sur les pages d'offre (lien vers /company/[nom])
- Amélioré
Localisation <html lang=...> sur pages RU/EN pour lecteurs d'écran
Version 1.6
- Nouveau
✨ Avis sur les entreprises — notez et lisez les retours d'autres candidats (étoiles ⭐, points positifs/négatifs, recommandation)
- Nouveau
Section dédiée aux russophones /russes-en-france — landing + 5 guides en russe (visa, CV, salaires, remote, coût de la vie)
- Nouveau
Ouverture SEO : 10 nouveaux guides carrière (freelance vs CDI, portage, télétravail, rupture conventionnelle, chômage, reconversion, auto-entreprise, LinkedIn, préavis, stage/alternance)
- Nouveau
10 nouvelles pages compétences : Next.js, Django, FastAPI, MongoDB, Redis, Kafka, GraphQL, CI/CD, Cybersécurité, Swift
- Nouveau
Flux RSS des guides disponible à /guides/rss.xml
- Amélioré
Badges de fraîcheur ('NEW', 'il y a 2h') sur les offres SEO — plus facile de repérer les offres récentes
- Amélioré
Traduction des guides liés + images OpenGraph personnalisées par guide pour le partage social
- Amélioré
Schema.org enrichi : FAQPage sur /faq + /russes-en-france, AggregateRating sur pages entreprise
- Corrigé
Pages /competences vides pour skills avec espaces/accents (Apache Spark, Machine Learning, CI/CD, Cybersécurité) — ~12 pages ré-activées
- Corrigé
Doublon 'Offres similaires' sur la page de détail d'une offre
- Corrigé
Statistiques parsers dans /admin affichaient toujours 0 — maintenant basées sur le nombre réel de nouvelles offres sauvegardées
Version 1.5
- Amélioré
Carte 10× plus rapide — regroupement intelligent des marqueurs (clustering)
- Amélioré
Descriptions complètes pour HelloWork et Jobijoba — enrichissement en continu
- Amélioré
Catégorisation améliorée — 22 000+ offres mieux classées (BTP, Industrie, Nettoyage, Espaces verts)
- Corrigé
Offres non-françaises (US, UK, CA) filtrées automatiquement de Jooble
- Corrigé
Sitemap.xml accessible aux crawlers (Google, Bing)
- Corrigé
Bouton « Se connecter avec Google » — interface personnalisée et plus rapide
Version 1.4
- Nouveau
Page « Salaires » — fourchettes réelles par métier, basées sur 42 000+ offres
- Nouveau
Guides carrière — CV, salaires développeur, expatriation en France
- Nouveau
Lettre IA gratuite — 1 par semaine pour tous les utilisateurs
- Nouveau
Programme de parrainage : 30 jours Pro pour chaque filleul inscrit
- Nouveau
Installation PWA : ajoutez JobHunter à votre écran d'accueil
- Amélioré
Activation guidée après inscription : vos 3 meilleures offres affichées immédiatement
- Amélioré
Page d'accueil repensée avec les statistiques en temps réel
- Corrigé
Plusieurs corrections de sécurité et performance (voir notes internes)
Version 1.3
- Nouveau
Expansion toute la France : 50+ départements, 14 régions, 42 000+ offres
- Nouveau
Carte interactive des offres (Leaflet + heatmap + géolocalisation)
- Nouveau
Quick Apply : candidature en 1 clic avec lettre pré-générée
- Nouveau
Connexion Google (OAuth)
- Nouveau
Notifications push (VAPID + Service Worker)
- Amélioré
Mode swipe amélioré, filtres étendus
Version 1.2
- Nouveau
6 sources agrégées : France Travail, HelloWork, Jooble, Meteojob, Jobijoba, FT Public
- Nouveau
Suivi complet des candidatures : envoyée → entretien → offre
- Nouveau
Détection automatique des offres frauduleuses
- Amélioré
Matching IA basé sur votre CV