Extraire une offre d’emploi
KIT lit une annonce d’emploi et en structure les informations : intitulé du poste, entreprise, lieu, type de contrat, fourchette de salaire et missions. Vous obtenez des champs propres à comparer ou à classer, au lieu d’un bloc de texte. La fonction est en bêta et s’améliore au fil des mises en page rencontrées.
Exécuter en ligne
Exécutez cette tâche sur nos serveurs, avec votre compte. Les outils gratuits tournent dans votre navigateur ; celui-ci est facturé sur votre solde KIT au prix affiché ci-dessus.
Les champs d’une annonce
L’extraction renvoie l’intitulé du poste, le nom de l’entreprise, le lieu, le type de contrat, la fourchette de salaire, la date de publication et le corps des missions. Chaque champ est identifié séparément, ce qui permet de constituer un tableau d’offres homogène et de comparer plusieurs annonces sans relire à chaque fois un long descriptif. Vous transformez une page dense en une ligne de tableau, comparable d’une annonce à l’autre.
Formats français reconnus
Les mentions propres au marché français sont interprétées : CDI, CDD, alternance, stage, intérim pour le contrat ; salaire brut annuel ou mensuel, éventuellement une fourchette ; télétravail total ou partiel. Le lieu est repris tel qu’affiché, ville ou région. Ces repères rendent l’annonce directement classable selon vos critères de recherche. Un intitulé, un contrat et une fourchette clairement séparés facilitent le tri par métier, par ville ou par niveau de rémunération.
Bêta, sur le web et par API
La fonction est en bêta : sur les annonces bien structurées, l’extraction est fidèle ; sur des pages atypiques, certains champs peuvent manquer. Elle s’exécute depuis le web ou par API, à $0.046 la requête plus $0.0145 par URL analysée, sans abonnement. Le résultat indique ce qui a été lu. Vous décidez ensuite d’extraire une annonce isolée ou tout un lot, sans engagement ni abonnement mensuel.
Cas d’usage
Structurer une veille emploi
Sophie Nguyen collecte les offres qui l’intéressent dans un tableau, intitulé et salaire côte à côte, pour les comparer sans rouvrir chaque page.
Comparer des salaires affichés
Les fourchettes de plusieurs annonces d’un même métier sont extraites et rassemblées, pour situer un niveau de rémunération réaliste.
Republier une offre proprement
Une entreprise reprend sa propre annonce en champs structurés pour la republier au même format sur plusieurs supports.
Questions fréquentes
Quels types de contrat sont reconnus ?
CDI, CDD, alternance, stage et intérim sont identifiés lorsqu’ils figurent dans l’annonce, et rendus dans un champ dédié.
Récupère-t-il le salaire quand il est indiqué ?
Oui. Montant ou fourchette, brut annuel ou mensuel : le salaire est extrait tel qu’affiché. S’il n’est pas mentionné, le champ reste vide.
Fonctionne-t-il sur les grands sites d’emploi ?
Souvent oui, mais certaines pages très dynamiques ou protégées limitent l’extraction. Le résultat précise alors quels champs ont pu être lus.
Combien coûte l’extraction d’une annonce ?
$0.046 la requête, plus $0.0145 par URL analysée, sans abonnement. Paiement direct par PayPal, justificatif possible.
Le résultat peut-il être partiel ?
Oui, la fonction est en bêta : sur une annonce inhabituelle, un champ peut manquer. Vos retours aident à réduire ces cas.
Faut-il créer un compte ?
Non, aucune inscription n’est nécessaire.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/web/job-extract \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://ejemplo.com"}'const res = await fetch("https://api.kit.forhosting.com/web/job-extract", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"url": "https://ejemplo.com"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/job-extract",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"url": "https://ejemplo.com"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/job-extract", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"url":"https://ejemplo.com"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"url":"https://ejemplo.com"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/job-extract", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"url": "https://ejemplo.com"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.job_extract",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
timeout_sec | 30 |
max_crawl_pages | 25 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
422 | task_failed | La tâche a échoué : elle ne vous est pas facturée. |