2026 · completed

A copilot for sales calls

Turning tens of thousands of daily calls into a knowledge base, and serving it back to agents in real time.

ML research internship, AI Lab, Selectra, Madrid, June–September 2026.

calls per weekday feeding the knowledge base
20–30k
accuracy, general model → fine-tuned French encoder
23 → 61%
response time on the agent’s computer, vs 10 s before
50–150 ms

How it works

Offline, an LLM classifies each night’s transcripts, which are aggregated into decision trees of sales conversations. Live, a small encoder places the conversation in the tree and shows the agent the matching product sheet within 50 to 150 ms.every nighttranscripts20–30k calls per weekdayclassificationreason, offers, outcomeknowledge basedecision treesduring the calllive callFrench encoderCamemBERT-based, fine-tunedposition in the treeagent’s screenproduct sheet, next step
Fig. 1 Offline, an LLM classifies each night’s transcripts, which are aggregated into decision trees of sales conversations. Live, a small encoder places the conversation in the tree and shows the agent the matching product sheet within 50 to 150 ms.

Each day an LLM classifies the previous day's transcripts (reason for the call, offers, outcome) and they are organised into decision trees of sales conversations; a CamemBERT-based French encoder, retrained weekly, places a live conversation in the tree and shows the matching product sheet.

Architecture only: the data belongs to the company.

Technical details

Knowledge base

Every day the previous day's calls are analysed: an external LLM classifies each one with predefined rules (reason for the call, offers mentioned, accepted or refused, and when). The calls are then organised by context and call type into detailed decision trees, where each node is what the agent did and each branch the customer's answer, so that the paths that lead to a sale can be measured.

Daily classification
$1.3 per 1,000 calls, ≈ 90% precision and recall on the main categories
Knowledge base
$10.70 per 1,000 calls

Live model

The first version called a general model on every request: it reloaded each time, took ten seconds and found the right situation only 23% of the time. I replaced it with a light open-weight French model based on CamemBERT, trained on the calls already classified in the knowledge base. It places the conversation in the decision tree, shows the matching product sheet and suggests the next step, on the agent's own computer. It is retrained every week on new calls.

Model
CamemBERT-based French encoder, open weights
Training data
calls classified by the knowledge base, retrained weekly
Accuracy
61%, against 23% for the general model
Latency
50–150 ms on the agent's computer, vs 10 s before

← All projects