Orchestrateur Qwen
Le contexte
Faire tourner MyCleanHub en solo sans cramer 80% de mes journées sur de l'admin, du support, du social, du reporting. La réponse : un VPS qui tourne un LLM en local et qui orchestre tout ce qui peut être automatisé.
L'infra
- VPS Hetzner CCX23 — 8 vCPU dédiés, 32 GB RAM, IP fixe, 600 Mbps
- Ollama + Qwen3:14b comme orchestrateur principal (assez grand pour les tâches non-triviales, assez petit pour tenir sur 32 GB avec marge pour le reste)
- Edge Function Supabase
llm-orchestratorqui sert de proxy entre les Edge crons et le VPS - Crons Linux pour les tâches récurrentes (briefing matinal, posts sociaux, relances)
- Redis pour les queues et le rate-limiting cross-services
- Tesseract, Whisper, Playwright, FFmpeg disponibles à la demande pour les tâches OCR / transcription / scraping / vidéo
Workflows automatisés
Briefing matinal (8h chaque jour)
Cron déclenche un script qui :
- Récupère les KPIs des dernières 24h depuis Supabase (signups, missions, MRR, churn)
- Pousse le contexte à Qwen3:14b avec un prompt structuré
- Reçoit un résumé exécutif (3-4 phrases, pas plus)
- M'envoie le briefing par mail + sur Telegram
Posts FB groupes (2x/jour)
Cron à 7h15 et 19h45 Paris déclenche send-fb-posts-telegram qui :
- Tire 3 angles sur 9 templates (Planning / Factures / SAP — chaque angle a 3 variantes)
- Insère le compteur fondateurs live depuis la DB
- M'envoie 3 posts prêts à copier-coller dans mes groupes FB cibles
Posts Instagram auto (cron 5h)
Pipeline pubgen → queue JSON → cron 5min → worker → Cloudinary → Graph API. Génère des visuels brandés mycleanhub.fr, les uploade sur Cloudinary, puis les publie via la Graph API Meta. Token long-lived 89 jours restants.
Cold outreach (Gmail SMTP)
Système qui scrappe Pages Jaunes / Maps / LinkedIn / France Travail pour identifier les pros nettoyage à recruter. Insertion dans cold_outreach_prospects, scoring, drafting du 1er cold mail via Qwen, envoi séquencé Gmail SMTP avec warm-up progressif 15 → 30 → 50 mails/jour.
Relances inactifs (9h chaque jour)
Cron qui détecte les pros qui n'ont pas posté de dispo depuis 7+ jours, les clients qui n'ont pas réservé depuis 14+ jours, et les leads froids — drafte un mail personnalisé via Qwen, l'envoie ou l'append dans une queue de drafts à valider.
Stats
- 28 mails partis au 1er run du système de relances
- 0 intervention manuelle sur les posts Insta depuis 2026-05-01
- ~6h/semaine économisées sur l'admin et le social (mesuré sur 4 semaines)
Ce que j'aime de cette stack
Tout est rejouable et auditable. Les Edge Functions logguent dans Supabase. Les crons Linux loguent dans /var/log/. Si une auto m'envoie un mail bizarre, je peux retracer la décision Qwen via le prompt + la réponse.
Et surtout : le VPS est le mien. Pas de quota OpenAI, pas de coupure surprise quand un provider change ses prix.