Feature #58
closedFeature #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
0%
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
- Status changed from Submitted to In development
RA Updated by Redmine Admin about 2 months ago
- 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
RA Updated by Redmine Admin about 2 months ago
- Status changed from Preprod to Shipped
LivrĂ© en production avec l'Ă©popĂ©e #21. Preprod â Shipped.