⚡ Agent automatisé

Collective Apply

Workflow automatisé de candidatures freelance sur Collective.work — React / Node.js

📊 Vue d'ensemble

Sessions / jour

6h et 20h (heure de Paris)

Max offres / session
20

Plafond de sécurité

Validation
WA

Gon approuve via WhatsApp

Soumission
0

Zéro clic manuel requis

🕐 Planification

06:00
Session matinale — scrape les nouvelles offres publiées la nuit
20:00
Session soir — scrape les offres publiées dans la journée
Heure de Paris (Europe/Paris). Lancé automatiquement par OpenClaw cron.

🔄 Workflow principal (run.js)

1. Login Collective.work Playwright ouvre Chromium, se connecte avec les credentials Sinane (sin.sim@outlook.fr)
2. Scraping des offres Parcourt la liste des missions disponibles, extrait titre, client, TJM, technos, questions
3. Décision par offre Analyse les technologies requises — voir règles ci-dessous
4. Préparation candidature (si JS) Génère le CV PDF avec titre adapté (HTML → Playwright → PDF), sauvegarde dans state.json
5. Récap WhatsApp à Gon Envoie un résumé avec titre de l'offre, TJM, client, lien, et ID pour validation
6. Attente validation Gon répond "ok" / "non" / modification → l'agent agit en conséquence

🎯 Règles de décision

Technologie détectée Action CV adapté
React, Vue.js, Angular ✓ Postuler Titre adapté
Node.js, Next.js, NestJS, Nuxt ✓ Postuler Titre adapté
React + Node.js (les deux) ✓ Postuler CV original
PHP, Python, Java, Ruby, .NET… ✗ Décliner
Offre sans techno identifiée ✗ Décliner
TJM : toujours proposer le maximum indiqué dans l'offre (tjmMax).

📄 CV adaptatif (HTML → PDF)

Source
/home/sinane/cv.html
Ne jamais modifier
Transformation
Remplace .subtitle si offre non React+Node
Output
/tmp/collective-cv/*.pdf
Temporaire, recréé chaque session

💬 Validation WhatsApp

L'ID de l'offre est toujours dans le récap WA sous la forme _ID offre: abc123_. Si Gon ne précise pas d'ID, l'agent prend la candidature la plus récente en pending_validation.

🚀 Soumission (submit.js)

Confirmation à 2 clics sur Collective.work
Clic 1
"Envoyer la candidature" → ouvre une modal de confirmation
Clic 2
"Envoyer" dans la modal → soumission réelle et irréversible
⚠️ Soumissions séquentielles obligatoires — jamais en parallèle (Collective.work refuse deux sessions simultanées)

📁 Fichiers clés

skills/collective-apply/state/state.json
État persistant — offres traitées, candidatures en attente
scripts/run.js
Session cron — scrape + décision + récap WA
scripts/submit.js
Soumission après validation Gon
/home/sinane/cv.html
Source CV — ne jamais modifier directement
/home/sinane/xp.md
Expériences détaillées de Sinane — base des réponses aux questions
/tmp/collective-cv/
CVs PDF générés (temporaires, recréés chaque session)