Pattern 01

API directe dans votre back-end

AvailablePOST /v1/jobs

Le pattern le plus puissant. Votre application appelle l'API depuis votre serveur, vous rendez les résultats dans votre propre interface. Vous gardez le contrôle de l'UX, du cache (si vous en faites un), de la rétention. Jobydoo s'occupe de la couverture, de la déduplication et de la fraîcheur.

Pour qui

  • Plateformes HR-tech qui ajoutent une fonction de recherche d'offres
  • ATS internes ou outils RH d'entreprise
  • Job boards de niche qui veulent une couverture plus large que leurs propres annonceurs
  • Cabinets de recrutement avec un développeur ou un prestataire

Endpoint

POST https://api.jobydoo.io/v1/jobs

Authentification

Header Authorization: Bearer jdy_…. Générez la clé depuis le tableau de bord, conservez-la en lieu sûr (variable d'environnement, secret manager) — elle n'est affichée qu'une seule fois.

Exemple de requête

curl -X POST https://api.jobydoo.io/v1/jobs \
  -H "Authorization: Bearer jdy_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "q": "directeur industriel",
    "country": "FR",
    "city": "Lyon",
    "seniority": "director",
    "use_xray": true,
    "max_results": 50
  }'

Paramètres

  • q (string, requis) — titre du poste recherché, 2 à 200 caractères
  • country (ISO-2, défaut FR) — pays d'exécution de la recherche
  • city (string, optionnel) — ville pour scoper
  • region (string, optionnel) — région
  • remote (any | remote | hybrid | on_site, défaut any)
  • seniority (junior | mid | senior | lead | director | vp | c-level, défaut senior)
  • posted_within_days (1–60, défaut 30)
  • max_results (1–500, défaut 15) — plafonné par resultsCap du plan
  • credits (alias de max_results, plus explicite sur les plans à crédits)
  • use_xray (boolean, défaut false) — active les sources gated. Plan Professionals ou Enterprise requis.
  • must_have, exclude — listes de mots-clés (max 10 chacune)

Réponse

{
  "run_id": "5a86bdd2-…",
  "query": { ... },
  "results": [
    {
      "id": "…",
      "source": "greenhouse",
      "title": "Directrice industrielle",
      "company": { "name": "…", "domain": "…" },
      "location": { "city": "Lyon", "country_iso2": "FR", "remote": "hybrid" },
      "salary": { "min": 95000, "max": 120000, "currency": "EUR", "period": "yearly" },
      "posted_at": "2026-05-08T12:34:56Z",
      "apply_url": "https://…",
      "fit_score": 0.91
    },
    …
  ],
  "source_status": [ { "source": "…", "status": "ok", "count": 12 } ],
  "quota": { "remaining": 14985, "plan": "pro", "model": "monthly-calls" },
  "latency_ms": 18247
}

Limites de débit

  • Quota mensuel par plan — voir /pricing
  • Pas de rate limit dur sur les requêtes en parallèle, mais un appel typique prend 15–25 s
  • Une seule clé peut être partagée par plusieurs services internes ; le quota est commun

Cache côté client

Jobydoo n'a pas de cache interne — chaque appel interroge les sources en direct. Si votre produit fait beaucoup de recherches identiques, mettre en cache côté client (1 à 6 h pour des requêtes nationales, plus court pour des requêtes ville/secteur précis) réduit votre consommation de quota sans sacrifier de fraîcheur perceptible.

Erreurs

  • 401 invalid_credentials — clé manquante, mal formée, ou révoquée
  • 402 xray_not_in_planuse_xray: true sur un plan qui ne l'inclut pas
  • 402 subscription_inactive — paiement échoué ou abonnement annulé
  • 429 quota_exceeded — appels mensuels épuisés (réinitialisation le 1er à 00:00 UTC)
  • 429 credits_exhausted — crédits épuisés sur la fenêtre glissante (plan Dev)
  • 503 engine_unreachable — moteur de recherche indisponible (rare, transitoire)

Questions de la communauté

0 question

Connectez-vous pour poser une question ou répondre.

Personne n'a encore posé de question sur ce pattern. Soyez le premier.

Tester