Project

General

Profile

Actions

Feature #58

closed
RA

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

[Enrichment + GetYourJob API] Surface enriched company data in the matching result payload

Feature #58: [Enrichment + GetYourJob API] Surface enriched company data in the matching result payload

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-58-company-payload
pr_url:
https://github.com/omdev-tech/GetYourJob/pull/237
security_key:
severity:
paused:

Description

**Surface:** Enrichment Agent (data availability) + GetYourJob API routes (`GetYourJob/src/app/api/`, `GetYourJob/src/application/` + `infrastructure/`).

## Description
Enriched company data (size, industry, location, remote policy, company type / ESN flag) is produced by background enrichment workers but is not surfaced in the matching result payload. Join the enriched company fields into the matching response so downstream UI (#4) and the assistant (#6) can consume them.

- Confirm the Enrichment Agent persists the needed company fields (size, industry, location, remote policy, company type/ESN) and they are reachable from the matching result join (Company/JobOffer relation).
- Extend the matching result use-case / response mapper to include a `companyEnrichment` object per result (only when present; absent gracefully).
- Add a seam test on the use-case ensuring the enrichment object is populated when company data exists and omitted otherwise.

Foundation task — blocks #4 (inline card) and #6 (assistant company data).

## Acceptance criteria
- [ ] Matching result payload includes a per-result company-enrichment object (size, industry, location, remote policy, company type/ESN) when available.
- [ ] Missing enrichment data degrades gracefully (no error, field omitted/null).
- [ ] Use-case/mapper seam test covers populated and missing cases.
- [ ] No regression on existing matching response shape for consumers that ignore the new field.

**Estimate:** S/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-58-company-payload
  • pr_url set to https://github.com/omdev-tech/GetYourJob/pull/237

🏁 done dev — ready for QA

Données d'enrichissement société surfacées dans le payload de matching (cÎté développeur, match-offers).

**Seam Ă©tendu** : `@/lib/attachCompanyData` → `loadCompanyBriefsByOfferId` (helper partagĂ© par les 3 routes match-offers + offers/jobs/ESN/MCP). Ajout d'un objet **`companyEnrichment`** sur `CompanyBrief` (industry, sizeRange + employeeMin/Max, hqCity/hqCountry, remotePolicy, website, linkedinUrl, yearFounded, enrichedAt), construit **uniquement Ă  partir des champs prĂ©sents** et **omis entiĂšrement** quand aucune donnĂ©e n'existe — aucune valeur fabriquĂ©e. SurfacĂ© sur le chemin FK et le fallback par normalizedName. Type miroir sur le DTO use-case (`OfferMatchCompanyEnrichment`). 100% additif / rĂ©trocompatible, aucun changement Prisma/migration.

**Tests** : nouveau test de seam `src/lib/__tests__/attachCompanyData.enrichment.test.ts` (5 cas : sélection colonnes, cas peuplé, omission si vide, dégradation société nulle, fallback normalizedName). Suites touchées + connexes vertes (40 tests) ; `npm run build` OK.

**PR (vers `dev`)** : https://github.com/omdev-tech/GetYourJob/pull/237 — CI Jenkins (App + Cron) au vert, merge state CLEAN.

Fondation pour #64 (carte société inline) et #67 (assistant). Ticket laissé en **In development** (la passe QA se fera sur l'épic #21).

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

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

LivrĂ© dans l'Ă©popĂ©e #21 (PR #239) — donnĂ©es entreprise enrichies dans le payload de matching. Promu vers preprod (PR consolidĂ©e #240).

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

  • Status changed from Preprod to Shipped

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

Actions

Also available in: PDF Atom