Skip to main content

Offre

Une offre est une annonce d’emploi publiée par un recruteur pour le compte de son entreprise.

Schéma

Exemple JSON (détail)

{
  "id": 123,
  "slug": "developpeur-backend-java-h-f-douala-123",
  "titre": "Développeur Backend Java (H/F)",
  "description": "Nous cherchons un développeur Java expérimenté...",
  "typeContrat": "CDI",
  "niveauExperience": "INTERMEDIAIRE",
  "ville": { "id": 101, "nom": "Douala", "region": "Littoral" },
  "teletravail": false,
  "salaire": { "min": 600000, "max": 900000, "devise": "XAF" },
  "competencesRequises": ["Java 17+", "Spring Boot", "PostgreSQL"],
  "competencesSouhaitees": ["Docker", "Kubernetes", "Kafka"],
  "avantages": ["Santé", "Transport", "Formation continue"],
  "dateExpiration": "2026-05-18",
  "status": "PUBLISHED",
  "publishedAt": "2026-04-15T09:30:00Z",
  "entreprise": {
    "id": 18,
    "nom": "Tech Corp SARL",
    "logoUrl": "https://cdn.wethehivers.com/public/entreprises/18/logo.png"
  },
  "recruteur": { "id": 42, "firstName": "Marie" },
  "metrics": { "vues": 312, "candidatures": 27 }
}

Cycle de vie

Voir Cycle de vie d’une offre.

Indexation full-text

Contraintes métier

Publication

Endpoints principaux

MéthodePathDescription
GET/v1/api/offres/searchRecherche publique
GET/v1/api/offres/{id}Détail public
POST/v1/api/offresCréer DRAFT
PUT/v1/api/offres/{id}Modifier
POST/v1/api/offres/{id}/publishPublier
POST/v1/api/offres/{id}/closeFermer
POST/v1/api/offres/{id}/archiveArchiver
GET/v1/api/recruteur/dashboard/offresMes offres

Tracking

Chaque vue est comptabilisée côté backend (dédupliquée par IP + user sur 24h). Chaque candidature incrémente candidaturesCount. Affiché en temps réel sur le dashboard recruteur.