Project

General

Profile

Actions

Feature #66

closed
RA

Feature #21: Enhance Matching Results and AI Assistant with Company Enrichment and Market Insights

[GetYourJob UI] Market Insights section in analysis tools

Feature #66: [GetYourJob UI] Market Insights section in analysis tools

Added by Redmine Admin about 2 months ago. Updated about 2 months ago.

Status:
Shipped
Priority:
Normal
Assignee:
-
Start date:
06/11/2026
Due date:
% Done:

0%

Estimated time:
spec_ref:
build_status:
build_number:
ci_run_url:
scan_status:
scan_report_url:
deploy_status:
preprod_url:
https://github.com/omdev-tech/GetYourJob/pull/240
deployed_at:
branch:
feat/redmine-21-insights-ui
pr_url:
https://github.com/omdev-tech/GetYourJob/pull/239
security_key:
severity:
paused:

Description

**Surface:** GetYourJob Next.js UI (`GetYourJob/src/components/`, analysis-tools section) consuming `/api/market-insights` (#3).

## Description
Add a dedicated "Market Insights" section to the analysis tools (alongside the existing pros/cons), driven by the market-insights route (#3).

Section shows:
- Top missing/in-demand skills with demand counts (e.g. "Java (8,974 offers), Kubernetes (7,086)").
- Location trends (e.g. "Paris has the most Frontend roles").
- Work-mode trends (e.g. "80% of Frontend roles are hybrid").

Requirements:
- Loading/empty/error states for the insights fetch.
- Insights scoped to the candidate's role/context passed to the route.

Depends on #3.

## Acceptance criteria
- [ ] Analysis tools include a "Market Insights" section showing top skills with demand counts, location trends, and work-mode trends.
- [ ] Section is scoped to the relevant role/context and reflects #3 data.
- [ ] Loading, empty, and error states are handled.

**Estimate:** M

RA Updated by Redmine Admin about 2 months ago Actions #1

  • Status changed from Submitted to In development

RA Updated by Redmine Admin about 2 months ago Actions #2

  • branch set to feat/redmine-21-insights-ui
  • pr_url set to https://github.com/omdev-tech/GetYourJob/pull/239

🏁 done dev — ready for QA

Section « Tendances du marché » livrée dans les outils d'analyse (OfferMatchDetail), montée juste aprÚs « points forts / points d'attention ». Consomme `GET /api/market-insights?role=&location=` (agrégat #61/#63 déjà sur la branche), scopée au rÎle (titre de l'offre) + localisation.

Livrables :
- molecule `DemandSkillBar` (barre CSS `secondary` + compteur réel, jamais de chiffre par défaut ; pas de recharts)
- molecule `MarketInsightsSection` : 3 sous-blocs (compĂ©tences demandĂ©es avec barres + compteurs rĂ©els, localisation dominante, rĂ©partition des modes de travail). États chargement (skeleton anti-CLS) / renseignĂ© (sous-blocs prĂ©sents seulement) / vide (« Aucune tendance disponible pour ce rĂŽle pour le moment ») / erreur (encart lĂ©ger + RĂ©essayer).
- i18n `marketInsights.*` ajoutées dans en.ts ET fr.ts (deux objets réels).
- RÚgle « aucune donnée fictive » respectée partout.

Tests (vitest) : rendu compétences/localisation/mode de travail depuis une réponse mockée, forwarding role+location dans la query string, état vide gracieux, erreur + Réessayer, état de chargement.

Branche : `feat/redmine-21-insights-ui` · PR #239 (base `dev`) : https://github.com/omdev-tech/GetYourJob/pull/239
CI Jenkins (branch + pr-head) : verte. `npx tsc --noEmit` sur fichiers touchés : propre. `npm run build` : OK.

Reste « In development » (livrĂ©, prĂȘt QA).

RA Updated by Redmine Admin about 2 months ago Actions #3

🏁 done dev (i18n fix) — ready for re-QA (suivi #21)

Régression i18n introduite par ce ticket (commit d33026c) corrigée.

**Cause** : le bloc i18n de la Market Insights SECTION ajoutĂ© ici crĂ©ait une 2e clĂ© top-level `marketInsights:` dans `en.ts` et `fr.ts`. Par last-key-wins JS, il Ă©crasait le namespace `marketInsights:` prĂ©-existant de la page « Market Statistics » (`/profile/developer/market-insights`) → ~40 clĂ©s `t('marketInsights.*')` rendues brutes/undefined en EN et FR, + TS1117 (clĂ© dupliquĂ©e) sur les deux fichiers.

**Fix** : bloc de la section renommĂ© en `marketInsightsSection:` (en.ts + fr.ts), rĂ©fĂ©rences mises Ă  jour dans `MarketInsightsSection.tsx` et son test ; la page Statistiques reste intacte. Ajout d'un test garde-fou pour empĂȘcher toute rĂ©cidive.

PR #239 : https://github.com/omdev-tech/GetYourJob/pull/239 — `gh pr checks 239` verts (branch + pr-head). Commit 549534e.

RA Updated by Redmine Admin about 2 months ago Actions #4

  • Status changed from In development to Preprod
  • preprod_url set to https://github.com/omdev-tech/GetYourJob/pull/240

Section « Tendances du marché » (namespace i18n `marketInsightsSection` aprÚs correctif de collision). Livré dans l'épopée #21 (PR #239). Promu vers preprod (PR #240).

RA Updated by Redmine Admin about 2 months ago Actions #5

  • Status changed from Preprod to Shipped

LivrĂ© en production avec l'Ă©popĂ©e #21. Preprod → Shipped.

Actions

Also available in: PDF Atom