new-term-radar
Daily radar for new AI terms: names of new models, products and repos, caught on X, Hugging Face, GitHub and sitemaps before keyword tools list them.
The sales assistant that tells you which deals to follow up today, how much money is at stake, and prepares the follow-up.
MarketingTypeScript · JavaScriptGitHub @gaspardgrttOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
LeadPilot repère les prospects oubliés dans un export CRM, estime le chiffre d'affaires récupérable et rédige la relance à envoyer. Ce n'est pas un CRM. Stack : Next.js 15 (App Router) · TypeScript · Tailwind CSS v4 · shadcn/ui · Supabase. En développement uniquement (404 en production) : catalogue des composants sur /ui, aperçus sans connexion remplis avec des données d'exemple sur /ui/apercu (dashboard), /ui/apercu/prospect, /ui/apercu/priorites, /ui/apercu/dossiers et /ui/apercu/dossiers-a-risque.Read the full README ↗
LeadPilot repère les prospects oubliés dans un export CRM, estime le chiffre d'affaires récupérable et rédige la relance à envoyer. Ce n'est pas un CRM.
Stack : Next.js 15 (App Router) · TypeScript · Tailwind CSS v4 · shadcn/ui · Supabase.
npm install
cp .env.example .env.local # URL, clé publishable Supabase et URL du site
npm run dev # http://localhost:3000
| Commande | Rôle |
|---|---|
npm run dev | Serveur de développement (Turbopack) |
npm run build | Build de production |
npm run lint | ESLint |
npx tsc --noEmit | Vérification des types |
npm test | Tests unitaires (lecture des CSV : montants, dates, étapes, colonnes) |
npm run test:db | Tests du schéma, du calcul et de la Row Level Security (Postgres embarqué, sans Docker) |
npm run db:push | Applique les migrations au projet Supabase lié |
npm run db:types | Régénère src/types/database.ts depuis le projet lié |
En développement uniquement (404 en production) : catalogue des composants sur /ui, aperçus sans connexion remplis avec des données d'exemple sur /ui/apercu (dashboard), /ui/apercu/prospect, /ui/apercu/priorites, /ui/apercu/dossiers et /ui/apercu/dossiers-a-risque.
npx supabase login
npx supabase link --project-ref <ref-du-projet>
npm run db:push
npm run db:types
npx supabase config diff # toujours relire : en non-interactif, config push applique sans demander
npx supabase config push
En production, remplacer site_url et additional_redirect_urls dans supabase/config.toml par l'URL publique.supabase/templates/) : nécessitent un SMTP personnalisé. Sur l'offre gratuite avec l'envoi par défaut, Supabase refuse toute modification des modèles ; l'email reste en anglais et son lien (flux PKCE, ?code=) doit être ouvert dans le navigateur qui a demandé la connexion. Une fois le SMTP configuré (Authentication > SMTP Settings), décommenter les sections [auth.email.template.*] de supabase/config.toml et refaire config push : le lien passe alors en token_hash et fonctionne depuis n'importe quel navigateur..env.local (ou les variables de l'hébergeur) : NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY, NEXT_PUBLIC_SITE_URL.cdg1, vercel.json), à côté de la base Supabase (eu-west-3).NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY, NEXT_PUBLIC_SITE_URL (URL publique exacte, sans / final) ; pour l'envoi par e-mail, BREVO_API_KEY (secrète), BREVO_SENDER_EMAIL, BREVO_SENDER_NAME. La seule clé secrète est BREVO_API_KEY, lue côté serveur ; la clé service_role / sb_secret_ de Supabase n'est jamais utilisée par l'application. Les variables NEXT_PUBLIC_ sont figées au build : après une modification, redéployer.https://<domaine>/** (garder http://localhost:3000/** pour le développement). À faire dans le tableau de bord plutôt qu'avec config push, dont le fichier local pointe vers localhost.npm run test:db.L'écran Importer accepte un CSV (10 Mo, 5 000 lignes max), séparé par virgules ou points-virgules, en UTF-8 ou en encodage Excel français. Colonnes reconnues automatiquement (noms FR/EN, HubSpot, Pipedrive, Salesforce) : entreprise, contact, email, téléphone, montant, date dernier contact, statut, notes (* obligatoires). Voir public/exemple-prospects.csv.
recalculer_prospects() calcule oubli, probabilité, CA récupérable et score (formule de l'architecture produit). Un recalcul de tous les comptes tourne chaque nuit à 3 h UTC (pg_cron).Le score (0 à 100) compare le CA récupérable d'un prospect à celui de la meilleure affaire ouverte du compte (= 100). Le CA récupérable vaut montant × poids de l'étape × fraîcheur du contact. La fiche prospect l'explique : un verdict en une phrase, les facteurs (montant, étape, silence) classés par influence avec leurs points, et une cascade « prospect moyen du compte → score ». Les points sont des valeurs de Shapley : chaque facteur est comparé au prospect moyen du compte et la somme retombe exactement sur le score. Sur le dashboard, survoler un anneau de score affiche le même résumé.
Sur la fiche d'un prospect, « Préparer la relance » complète un modèle rédigé à l'avance (src/lib/followups/templates.ts), sans aucun appel à une API d'IA ni coût par relance :
direct, formel, chaleureux), soit 15 variantes.prepareFollowup, données relues en base) et enregistrée dans relances (modele_ia = modele:<scénario>). Tant qu'elle n'a été ni copiée ni ouverte dans Gmail, changer de modèle ou de ton réécrit le même brouillon. Le texte reste modifiable avant envoi.mail.google.com/mail/?view=cm) : aucune connexion Google, aucun OAuth, aucune API. LeadPilot n'envoie rien : le message part quand l'utilisateur clique sur « Envoyer » dans Gmail. « Copier le message » reste disponible pour tout autre client mail. Ouvrir ou copier horodate la relance (copiee_le) ; l'interface parle alors de relance « copiée ou ouverte », jamais « envoyée ».En plus de Gmail, une relance peut être envoyée depuis LeadPilot via l'API transactionnelle officielle de Brevo (POST https://api.brevo.com/v3/smtp/email, clé dans l'en-tête api-key).
POST /api/relances/envoyer (src/app/api/relances/envoyer/route.ts) : vérifie l'origine de la requête, la session, la configuration, que la relance et le prospect appartiennent au compte (RLS + filtre explicite), l'opposition à la prospection, l'adresse du destinataire, que le texte est identique à l'aperçu, la limite de 30 envois par heure et par compte, et que l'expéditeur est déclaré et actif dans Brevo (GET /v3/senders, jamais supposé). La relance est ensuite réservée de façon atomique (envoi_statut = 'en_cours') : un double clic ou deux onglets ne peuvent pas l'envoyer deux fois.envoi_statut = 'envoyee', date, adresse et identifiant Brevo (brevo_message_id) enregistrés ; le message n'est plus modifiable et le dossier passe en « Relancé ». En cas d'échec, envoi_statut = 'echec' avec un message sans détail technique ni clé ; on peut réessayer.BREVO_SENDER_NAME <BREVO_SENDER_EMAIL> ; les réponses vont à l'adresse du compte LeadPilot (replyTo).prospects.opposition_prospection_le) bloque tout contact depuis LeadPilot, Gmail compris, et passe le dossier en « Ignoré ».BREVO_API_KEY, BREVO_SENDER_EMAIL, BREVO_SENDER_NAME. Sans elles, le bouton reste désactivé.supabase/migrations/20261009120000_envoi_email_brevo.sql (colonnes ajoutées, aucune donnée modifiée).Pour essayer l'application sans fichier : se connecter une fois, remplacer l'adresse dans supabase/demo-data.sql puis l'exécuter dans le SQL Editor.
| Écran | Route |
|---|---|
| E1 Connexion | /connexion |
| E2 Import et réglages | /import |
| E3 Tableau de bord | /tableau-de-bord |
| E4 Liste des prospects | /prospects |
| E5 Fiche prospect et relance | /prospects/[id] |