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.

3 campagne(s) affichée(s)

Campagne cmryobcjl000001pk6s9623f7

Succès

Démarrée le 24/07/2026 08:23 · Durée : 1min 15s

Scénario : Grand Est — Fullstack / Backend JS

Scénario : Grand Est — Fullstack / Backend JS

Voir le détail de la campagne →

Créées

35

Mises à jour

0

Rejetées

7

Erreurs

0

Sources

indeed, linkedin, meteojob

Localisations

Brest, Bretagne

Items bruts

47

Offres uniques

42

Runs

SourceLocalisationStatutRawCrééesMAJRejetéesErreurs
Indeed Apify ActorBrest, BretagneSuccès76000
LinkedIn Apify ActorBrest, BretagneSuccès2015050
Meteojob Apify ActorBrest, BretagneSuccès2014020

Campagne cmryni7zo00000vo6uv9bnwss

Partiel

Démarrée le 24/07/2026 08:01 · Durée : 3min 9s

Scénario : Grand Est — Fullstack / Backend JS

Scénario : Grand Est — Fullstack / Backend JS

Voir le détail de la campagne →

Créées

20

Mises à jour

13

Rejetées

7

Erreurs

1

Sources

indeed, linkedin, meteojob

Localisations

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

Items bruts

41

Offres uniques

40

Erreur campagne

Preview error at index 6 (4442750662): Cannot read properties of null (reading 'replace')

Runs

SourceLocalisationStatutRawCrééesMAJRejetéesErreurs
Indeed Apify ActorGrand EstSuccès107120
Indeed Apify ActorMetzSuccès10010
Indeed Apify ActorNancySuccès20200
LinkedIn Apify ActorGrand EstPartiel100811
LinkedIn Apify ActorMetzSuccès00000
LinkedIn Apify ActorNancySuccès66000
Meteojob Apify ActorGrand EstSuccès107120
Meteojob Apify ActorMetzSuccès20110
Meteojob Apify ActorNancySuccès00000

Campagne cmrxn2i5z00000vo9kt9gl0nq

Succès

Démarrée le 23/07/2026 15:01 · Durée : 1min 12s

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

0

Rejetées

3

Erreurs

0

Sources

indeed, linkedin, meteojob

Localisations

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

Items bruts

14

Offres uniques

14

Runs

SourceLocalisationStatutRawCrééesMAJRejetéesErreurs
Indeed Apify ActorGrand EstSuccès21010
LinkedIn Apify ActorGrand EstSuccès109010
Meteojob Apify ActorGrand EstSuccès21010

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.