Aller au contenu principal

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