JobRadar IA

Pilotage des imports

Campagnes Apify contrôlées, historique persistant et prévisualisation des plans générés à partir du scénario actif.

Mode d'emploi

1. Preview

La commande apify:preview-inputs génère les inputs Apify à partir du scénario actif, sans lancer d'Actor.

2. Campagne UI

Le bouton de campagne lance les Actors sélectionnés, récupère les datasets, mappe les offres, applique le préfiltre profil puis persiste l'historique du batch.

3. Rapport batch

Le daily report peut ensuite utiliser la dernière campagne réelle comme périmètre avec --latest-campaign.

Campagne d'import

Apify

Lance les Actors Apify configurés pour le scénario actif, récupère les datasets, mappe les offres puis les importe en base PostgreSQL.

Sources et localisations sélectionnables, limite de 20 résultats par plan, préfiltre profil actif avant import réel en base.

Historique des campagnes

Les dernières campagnes persistées en base. C'est ce batch qui peut maintenant servir de périmètre au rapport daily.

5 campagne(s) affichée(s)

Campagne cmu9e6q3c00000vo1zru5pvbf

Succès

Démarrée le 20/09/2026 05:45 · Durée : 2min 22s

Scénario : Grand Est — Fullstack / Backend JS

Scénario : Grand Est — Fullstack / Backend JS

Voir le détail de la campagne →

Créées

11

Mises à jour

55

Rejetées

0

Erreurs

0

Sources

indeed, linkedin, meteojob

Localisations

Grand Est, Metz, Nancy, Strasbourg, Luxembourg, Remote

Items bruts

67

Offres uniques

66

Runs

SourceLocalisationStatutRawCrééesMAJRejetéesErreurs
Indeed Apify ActorGrand EstSuccès104600
Indeed Apify ActorMetzSuccès1001000
Indeed Apify ActorNancySuccès1001000
LinkedIn Apify ActorGrand EstSuccès101900
LinkedIn Apify ActorMetzSuccès00000
LinkedIn Apify ActorNancySuccès1001000
Meteojob Apify ActorGrand EstSuccès106400
Meteojob Apify ActorMetzSuccès10100
Meteojob Apify ActorNancySuccès60500

Campagne cmu3ofb7r00000vlirky9yuuy

Succès

Démarrée le 16/09/2026 05:45 · Durée : 2min 2s

Scénario : Grand Est — Fullstack / Backend JS

Scénario : Grand Est — Fullstack / Backend JS

Voir le détail de la campagne →

Créées

6

Mises à jour

58

Rejetées

1

Erreurs

0

Sources

indeed, linkedin, meteojob

Localisations

Grand Est, Metz, Nancy, Strasbourg, Luxembourg, Remote

Items bruts

67

Offres uniques

65

Runs

SourceLocalisationStatutRawCrééesMAJRejetéesErreurs
Indeed Apify ActorGrand EstSuccès103700
Indeed Apify ActorMetzSuccès1001000
Indeed Apify ActorNancySuccès1001000
LinkedIn Apify ActorGrand EstSuccès102800
LinkedIn Apify ActorMetzSuccès00000
LinkedIn Apify ActorNancySuccès1001000
Meteojob Apify ActorGrand EstSuccès101710
Meteojob Apify ActorMetzSuccès10100
Meteojob Apify ActorNancySuccès60500

Campagne cmtxynwiv00000vok4euq5w5i

Succès

Démarrée le 12/09/2026 05:45 · Durée : 2min 37s

Scénario : Grand Est — Fullstack / Backend JS

Scénario : Grand Est — Fullstack / Backend JS

Voir le détail de la campagne →

Créées

23

Mises à jour

37

Rejetées

5

Erreurs

0

Sources

indeed, linkedin, meteojob

Localisations

Grand Est, Metz, Nancy, Strasbourg, Luxembourg, Remote

Items bruts

65

Offres uniques

65

Runs

SourceLocalisationStatutRawCrééesMAJRejetéesErreurs
Indeed Apify ActorGrand EstSuccès106310
Indeed Apify ActorMetzSuccès108020
Indeed Apify ActorNancySuccès102620
LinkedIn Apify ActorGrand EstSuccès1001000
LinkedIn Apify ActorMetzSuccès00000
LinkedIn Apify ActorNancySuccès101900
Meteojob Apify ActorGrand EstSuccès106400
Meteojob Apify ActorMetzSuccès10100
Meteojob Apify ActorNancySuccès40400

Campagne cmts8whir00000umdgcxb0onf

Succès

Démarrée le 08/09/2026 05:45 · Durée : 2min 21s

Scénario : Grand Est — Fullstack / Backend JS

Scénario : Grand Est — Fullstack / Backend JS

Voir le détail de la campagne →

Créées

10

Mises à jour

47

Rejetées

6

Erreurs

0

Sources

indeed, linkedin, meteojob

Localisations

Grand Est, Metz, Nancy, Strasbourg, Luxembourg, Remote

Items bruts

63

Offres uniques

63

Runs

SourceLocalisationStatutRawCrééesMAJRejetéesErreurs
Indeed Apify ActorGrand EstSuccès105410
Indeed Apify ActorMetzSuccès101720
Indeed Apify ActorNancySuccès100730
LinkedIn Apify ActorGrand EstSuccès101900
LinkedIn Apify ActorMetzSuccès00000
LinkedIn Apify ActorNancySuccès1001000
Meteojob Apify ActorGrand EstSuccès103700
Meteojob Apify ActorMetzSuccès00000
Meteojob Apify ActorNancySuccès30300

Campagne cmtmj539p00000vn6ynwcv99n

Succès

Démarrée le 04/09/2026 05:45 · Durée : 2min 7s

Scénario : Grand Est — Fullstack / Backend JS

Scénario : Grand Est — Fullstack / Backend JS

Voir le détail de la campagne →

Créées

9

Mises à jour

48

Rejetées

6

Erreurs

0

Sources

indeed, linkedin, meteojob

Localisations

Grand Est, Metz, Nancy, Strasbourg, Luxembourg, Remote

Items bruts

63

Offres uniques

63

Runs

SourceLocalisationStatutRawCrééesMAJRejetéesErreurs
Indeed Apify ActorGrand EstSuccès103430
Indeed Apify ActorMetzSuccès101810
Indeed Apify ActorNancySuccès100820
LinkedIn Apify ActorGrand EstSuccès103700
LinkedIn Apify ActorMetzSuccès00000
LinkedIn Apify ActorNancySuccès102800
Meteojob Apify ActorGrand EstSuccès1001000
Meteojob Apify ActorMetzSuccès00000
Meteojob Apify ActorNancySuccès30300

Scénario actif

Nom

Grand Est — Fullstack / Backend JS

Rôle ciblé

Développeur Fullstack, Développeur React, Développeur Node.js, Développeur NestJS, Développeur Backend JavaScript, Développeur TypeScript

Localisations

Grand Est, Metz, Nancy, Strasbourg, Luxembourg, Remote

Mots-clés

React, TypeScript, JavaScript, Node.js, NestJS, Fullstack, Backend

Contrats

CDI, CDD

Télétravail

hybrid, full_remote, unknown

Sources disponibles

Adapters Apify actuellement déclarés dans JobRadar IA — lecture seule.

Indeed

indeed

Disponible

Source utile pour récupérer des offres ciblées depuis un scénario de recherche. L’adapter utilise le texte compact du scénario et une localisation.

Actor Apify
MXLpngmVpE8WTESQr
Limite minimale
1
Limite par défaut
20

LinkedIn

linkedin

Disponible

Source techniquement intégrée. L’adapter impose une limite minimale de 10 résultats, même si une limite plus basse est demandée.

Actor Apify
worldunboxer/rapid-linkedin-scraper
Limite minimale
10
Limite par défaut
25

Meteojob

meteojob

Disponible

Source utile pour obtenir du volume. L’adapter utilise volontairement une requête large comme “développeur web”, car les requêtes trop précises ramènent peu ou pas de résultats.

Actor Apify
stealth_mode/meteojob-jobs-search-scraper
Limite minimale
1
Limite par défaut
25

Plans de run Apify

Générés à partir du scénario actif et des adapters. Prévisualisation uniquement — aucun Actor n'est lancé depuis cette section.

Indeed Apify Actor

Source : indeed

Localisation : Grand Est

Limite : 20

Actor Apify

MXLpngmVpE8WTESQr

Input généré

{
  "country": "fr",
  "enableUniqueJobs": true,
  "fromDays": "14",
  "includeSimilarJobs": true,
  "location": "Grand Est",
  "maxRows": 20,
  "maxRowsPerUrl": 20,
  "query": "développeur web",
  "radius": "100",
  "sort": "date"
}

Commande de preview

Ne lance pas Apify — vérifie uniquement les inputs générés.

npm run apify:preview-inputs -- --source=indeed --location="Grand Est" --limit=20

Commande d'import dry-run

Lance l'Actor avec --run-actor, mais n'écrit pas en base grâce à --dry-run.

npm run external:import -- --input=apify-actor --source=indeed --from-scenario --location="Grand Est" --limit=20 --dry-run --run-actor

Indeed Apify Actor

Source : indeed

Localisation : Metz

Limite : 20

Actor Apify

MXLpngmVpE8WTESQr

Input généré

{
  "country": "fr",
  "enableUniqueJobs": true,
  "fromDays": "14",
  "includeSimilarJobs": true,
  "location": "Metz",
  "maxRows": 20,
  "maxRowsPerUrl": 20,
  "query": "développeur web",
  "radius": "100",
  "sort": "date"
}

Commande de preview

Ne lance pas Apify — vérifie uniquement les inputs générés.

npm run apify:preview-inputs -- --source=indeed --location="Metz" --limit=20

Commande d'import dry-run

Lance l'Actor avec --run-actor, mais n'écrit pas en base grâce à --dry-run.

npm run external:import -- --input=apify-actor --source=indeed --from-scenario --location="Metz" --limit=20 --dry-run --run-actor

Indeed Apify Actor

Source : indeed

Localisation : Nancy

Limite : 20

Actor Apify

MXLpngmVpE8WTESQr

Input généré

{
  "country": "fr",
  "enableUniqueJobs": true,
  "fromDays": "14",
  "includeSimilarJobs": true,
  "location": "Nancy",
  "maxRows": 20,
  "maxRowsPerUrl": 20,
  "query": "développeur web",
  "radius": "100",
  "sort": "date"
}

Commande de preview

Ne lance pas Apify — vérifie uniquement les inputs générés.

npm run apify:preview-inputs -- --source=indeed --location="Nancy" --limit=20

Commande d'import dry-run

Lance l'Actor avec --run-actor, mais n'écrit pas en base grâce à --dry-run.

npm run external:import -- --input=apify-actor --source=indeed --from-scenario --location="Nancy" --limit=20 --dry-run --run-actor

LinkedIn Apify Actor

Source : linkedin

Localisation : Grand Est

Limite : 25

Actor Apify

worldunboxer/rapid-linkedin-scraper

Input généré

{
  "easy_apply": false,
  "job_title": "développeur web",
  "jobs_entries": 25,
  "location": "Grand Est",
  "start_jobs": 25
}

Commande de preview

Ne lance pas Apify — vérifie uniquement les inputs générés.

npm run apify:preview-inputs -- --source=linkedin --location="Grand Est" --limit=25

Commande d'import dry-run

Lance l'Actor avec --run-actor, mais n'écrit pas en base grâce à --dry-run.

npm run external:import -- --input=apify-actor --source=linkedin --from-scenario --location="Grand Est" --limit=25 --dry-run --run-actor

LinkedIn Apify Actor

Source : linkedin

Localisation : Metz

Limite : 25

Actor Apify

worldunboxer/rapid-linkedin-scraper

Input généré

{
  "easy_apply": false,
  "job_title": "développeur web",
  "jobs_entries": 25,
  "location": "Metz",
  "start_jobs": 25
}

Commande de preview

Ne lance pas Apify — vérifie uniquement les inputs générés.

npm run apify:preview-inputs -- --source=linkedin --location="Metz" --limit=25

Commande d'import dry-run

Lance l'Actor avec --run-actor, mais n'écrit pas en base grâce à --dry-run.

npm run external:import -- --input=apify-actor --source=linkedin --from-scenario --location="Metz" --limit=25 --dry-run --run-actor

LinkedIn Apify Actor

Source : linkedin

Localisation : Nancy

Limite : 25

Actor Apify

worldunboxer/rapid-linkedin-scraper

Input généré

{
  "easy_apply": false,
  "job_title": "développeur web",
  "jobs_entries": 25,
  "location": "Nancy",
  "start_jobs": 25
}

Commande de preview

Ne lance pas Apify — vérifie uniquement les inputs générés.

npm run apify:preview-inputs -- --source=linkedin --location="Nancy" --limit=25

Commande d'import dry-run

Lance l'Actor avec --run-actor, mais n'écrit pas en base grâce à --dry-run.

npm run external:import -- --input=apify-actor --source=linkedin --from-scenario --location="Nancy" --limit=25 --dry-run --run-actor

Meteojob Apify Actor

Source : meteojob

Localisation : Grand Est

Limite : 25

Actor Apify

stealth_mode/meteojob-jobs-search-scraper

Input généré

{
  "ignore_url_failures": true,
  "max_items_per_url": 25,
  "urls": [
    "https://www.meteojob.com/jobs?what=d%C3%A9veloppeur+web&where=Grand+Est&sorting=DATE"
  ]
}

Commande de preview

Ne lance pas Apify — vérifie uniquement les inputs générés.

npm run apify:preview-inputs -- --source=meteojob --location="Grand Est" --limit=25

Commande d'import dry-run

Lance l'Actor avec --run-actor, mais n'écrit pas en base grâce à --dry-run.

npm run external:import -- --input=apify-actor --source=meteojob --from-scenario --location="Grand Est" --limit=25 --dry-run --run-actor

Meteojob Apify Actor

Source : meteojob

Localisation : Metz

Limite : 25

Actor Apify

stealth_mode/meteojob-jobs-search-scraper

Input généré

{
  "ignore_url_failures": true,
  "max_items_per_url": 25,
  "urls": [
    "https://www.meteojob.com/jobs?what=d%C3%A9veloppeur+web&where=Metz&sorting=DATE"
  ]
}

Commande de preview

Ne lance pas Apify — vérifie uniquement les inputs générés.

npm run apify:preview-inputs -- --source=meteojob --location="Metz" --limit=25

Commande d'import dry-run

Lance l'Actor avec --run-actor, mais n'écrit pas en base grâce à --dry-run.

npm run external:import -- --input=apify-actor --source=meteojob --from-scenario --location="Metz" --limit=25 --dry-run --run-actor

Meteojob Apify Actor

Source : meteojob

Localisation : Nancy

Limite : 25

Actor Apify

stealth_mode/meteojob-jobs-search-scraper

Input généré

{
  "ignore_url_failures": true,
  "max_items_per_url": 25,
  "urls": [
    "https://www.meteojob.com/jobs?what=d%C3%A9veloppeur+web&where=Nancy&sorting=DATE"
  ]
}

Commande de preview

Ne lance pas Apify — vérifie uniquement les inputs générés.

npm run apify:preview-inputs -- --source=meteojob --location="Nancy" --limit=25

Commande d'import dry-run

Lance l'Actor avec --run-actor, mais n'écrit pas en base grâce à --dry-run.

npm run external:import -- --input=apify-actor --source=meteojob --from-scenario --location="Nancy" --limit=25 --dry-run --run-actor

Garde-fous

  • Les campagnes lancées depuis l'interface restent volontaires : sources et localisations sont sélectionnées avant chaque exécution.
  • Le token Apify reste côté serveur ou scripts locaux — jamais exposé dans un composant client.
  • Les candidatures ne sont jamais automatisées. Le daily report peut analyser et envoyer un digest, mais il ne contacte aucun recruteur.