🔌 API

Endpoints internes — référence curée · testables sur Actions
Les endpoints du navigateur sont proxifiés sous /agent/* (vers la console). Mongo = source de vérité ; les actions LinkedIn passent par l'extension (dosées). :id = profileId / jobId / companyId.

🎯 Matching

GET/agent/candidate/:id/offersOffres qui matchent un candidat — score décomposé en 5 axes (poste/séniorité/skills/sémantique/loc) + composite par branche.
GET/agent/offer/:id/matchesCandidats qui matchent une offre (matching inverse).
POST/agent/candidate/:id/offers/rerankRerank LLM (Gemma) du top-K par adéquation réelle. Body { jobIds }.
POST/agent/match/feedback👍/👎 sur une paire candidat↔offre + snapshot des axes (vérité terrain). Body { candidateId, jobId, label, branch, axes }.
GET/agent/match/learningAccumulation du feedback + pouvoir discriminant par axe/branche + poids suggérés.
POST/agent/match/recalibrateApplique les poids appris (branches avec ≥20 feedback).

🔁 Réseau & boucle

GET/agent/network/cockpitEntonnoir : connexions → décideurs détectés → enrichis → à enrichir (par catégorie).
POST/agent/network/decideursEnrichit les décideurs du réseau (public, 40/jour, goutte-à-goutte).
GET/agent/network/warm-offersÉtape 2 : rôles que ton réseau peut remplir, triés par nb de profils tièdes.
GET/agent/network/people-for-roleProfils réseau pour un rôle (drill). Query role, family.
GET/agent/network/gapsÉtape 3 : rôles en tension où le réseau est mince.
GET/agent/connections/statusComptes déjà connectés à des vanities (levier réseau). Query vanities.

✨ Enrichissement & file

POST/agent/enrich-profileMet UN profil en file d'enrichissement extension (priorité haute). Body { profileId }.
POST/agent/queue/enqueue-enrichEnrichissement en masse par filtre. Body { filter, limit }.
POST/agent/enrich-recruiter/runProfils complets (Recruiter) pour tous les lites.
POST/agent/queue/launchLance une campagne (planner). Body { type }.
GET/agent/queue/statsÉtat de la file (par statut/type).
GET/agent/queue/listJobs. Query status, type, limit.

🔍 Recherche (Typesense)

GET/agent/searchRecherche candidats/offres/entreprises/écoles. Query type, q, semantic=1, inNetwork=1, + facettes.
POST/agent/search/backfillRé-indexe depuis Mongo (upsert non destructif).
POST/agent/search/reindexReindex (upsert par défaut ; ?hard=1 = reconstruction from scratch).

👥 Candidats & offres

GET/api/candidatsListe paginée + filtres (app). Query skip, limit, status, family, role, contract, q…
GET/api/candidats/facetsFacettes du vivier (familles, rôles, séniorité, contrat, sources).
GET/agent/candidate/:id/peersSkills probables via les pairs (micro-BI).
GET/agent/jobs/savedOffres stockées. Query companyId, limit.
GET/agent/jobs/searchRecherche publique LinkedIn (extraction).

🏢 Entreprises & écoles

GET/agent/company/:id/insightsProfils sourcés (avec flag actuel/ancien) + répartitions.
GET/agent/company/:id/sourcing« À sourcer » : offres × vivier par rôle.
GET/agent/company/:id/decideursDécideurs de ton vivier chez cette entreprise.
POST/agent/companies/dedupe/planPlan de déduplication (exact + arbitrage LLM). apply pour fusionner.
GET/agent/school/:id/candidatesAlumni sourcés d'une école.

📊 Observabilité & admin

GET/agent/healthSanté (Mongo, Dragonfly, extension, jobs 1h).
GET/agent/telemetryJournaux capés. Query coll (job_history, extension_errors, account_events…).
GET/agent/auditJournal d'audit (qui a fait quoi).
GET/agent/rateDébit par compte (quotas).
GET/agent/admin/settingsRéglages de cadence (POST pour modifier à chaud).
GET/agent/linkedin-actionsCatalogue des actions LinkedIn testables (voir la page Actions).
Concepts → Documentation · processus → Workflow.