AI Sale
L’achat-revente de smartphones, en pilote automatique.
Un outil qui repère les smartphones d’occasion vendus sous le prix du marché, laisse un LLM négocier leur achat, puis les remet en vente et gère les acheteurs.
- Rôle
- Conception & développement
- Stack
- Python · LLM · Scraping
- Résultat
- ~100 smartphones qualifiés / jour
- Année
- 2026
# AI Sale - achat-revente de smartphones d'occasionfrom sourcing import scrape_listingsfrom pricing import market_prices, find_dealsfrom swipe import reviewfrom agent import negotiate, publish_listing, handle_buyersdef acheter(seuil=50): scrape_listings() # annonces -> base de données prix = market_prices() # moyenne & médiane par modèle deals = find_deals(prix, seuil=seuil) # X € sous le marché for item in review(deals): # swipe à droite = retenu negotiate(item) # le LLM contacte le vendeurdef revendre(phone): # une fois le téléphone testé publish_listing(phone) # le LLM rédige et publie handle_buyers(phone) # questions, offres, contre-offresExtraits simplifiés, réécrits pour illustrer le fonctionnement.
Le constat
Trouver un smartphone sous le prix du marché, c’est des heures à éplucher les annonces, comparer les prix et négocier, avant même de penser à la revente.
La réponse
Calculer le vrai prix de chaque modèle, remonter les bonnes affaires et confier la négociation et la revente à un LLM. Il ne reste qu’à swiper et tester.
Comment ça marche.
01
Scraping & base de données
Un script récupère en continu les annonces de téléphones, anciennes comme nouvelles, sur les plateformes de seconde main. Chaque annonce est rangée en base par attributs : marque, modèle, couleur, stockage, état de la batterie, prix…
sourcing.py FIELDS = ["marque", "modele", "couleur", "stockage", "etat_batterie", "prix", "photos", "url"]def scrape_listings(): for platform in PLATFORMS: # plateformes de seconde main for ad in platform.search(categorie="telephones"): phone = extract_attributes(ad, FIELDS) db.upsert("annonces", phone, key="url")02
Le prix du marché
Pour chaque modèle, le script calcule le prix moyen et le prix médian. Il remonte ensuite les annonces sous la moyenne d’un écart réglable, par exemple 50 €.
pricing.py import pandas as pddef market_prices(): df = pd.read_sql("SELECT * FROM annonces", db) return (df.groupby(["marque", "modele", "stockage"])["prix"] .agg(moyenne="mean", mediane="median", nb="count"))def find_deals(prix, seuil=50): df = pd.read_sql("SELECT * FROM annonces WHERE statut = 'nouveau'", db) df = df.join(prix, on=["marque", "modele", "stockage"]) return df[df["prix"] <= df["moyenne"] - seuil]03
Tri en un swipe
Les bonnes affaires défilent sous forme de cartes : photo, prix, écart avec le marché. À droite, l’article est retenu ; à gauche, il est oublié.
ExempleBonnes affaires
24 à trier · seuil -50 €
iPhone 13 · 128 Go
Minuit · Batterie 89 %
320 €-62 € vs marché
Moyenne 382 € · Médiane 375 €
04
Négociation par le LLM
Pour chaque article retenu, le LLM contacte le vendeur et tente de faire baisser le prix. On n’intervient qu’au moment d’acheter, que la négociation ait abouti ou non.
Annonce « iPhone 13 128 Go » · 320 €
ExempleBonjour ! Votre iPhone 13 est-il toujours disponible ? Je peux vous proposer 290 € avec un paiement rapide.
✦ Envoyé par le LLM
Bonjour, oui. Je peux descendre à 305 €, pas moins.
Ça me va pour 305 €. Je vous confirme l’achat dans la journée.
✦ Négocié par le LLM · achat à valider
05
Test et remise en vente
À réception, le téléphone est testé. Le LLM reçoit les photos et la description de l’annonce d’origine, puis rédige et publie la nouvelle annonce.
ExempleiPhone 13 128 Go Minuit - Très bon état
379 €
- Très bon état
- Batterie 89 %
- Testé
iPhone 13 128 Go coloris Minuit, testé et vérifié à réception : écran, appareil photo et batterie à 89 %. Envoi soigné et rapide.
✦ Annonce rédigée par le LLM
06
Service client
Le LLM répond aux questions des acheteurs, refuse les offres trop basses et fait des contre-offres.
Votre annonce « iPhone 13 128 Go » · 379 €
ExempleBonjour, vous le laissez à 320 € ?
Bonjour ! 320 € c’est un peu bas pour un modèle testé avec 89 % de batterie. Je peux vous le faire à 360 €.
✦ Contre-offre du LLM
Le pipeline complet.
01
Scraping
Script02
Prix du marché
Script03
Swipe
Moi04
Négociation
LLM05
Achat & test
Moi06
Revente & SAV
LLM
Le script et le LLM font le travail répétitif ; les décisions d’achat et le test restent humains.
~100
smartphones repérés chaque jour sous le prix du marché.
Ce que j’en retiens.
La donnée fixe le prix
Le prix moyen et médian calculé sur toutes les annonces remplace l’intuition : on sait tout de suite si une affaire en est une.
Automatiser, pas déléguer
Le script fait le tri et prépare l’offre, mais la décision finale reste humaine.
Partir d’un vrai besoin
Un outil construit pour mon propre usage, testé au quotidien et amélioré au fil des annonces.