Inicio/ trabajo/Dealko
AI Lead & Full-Stack · 2024 — 2025 · First in SI

Dealko

The first Slovenian AI assistant for comparing telecom packages — intelligent conversation, lead qualification, and a GDPR-compliant embeddable widget that drops into partner sites in minutes.

Role AI lead & full-stack
Duration 2024 → 2025
Market Slovenia · first
Delivery embeddable widget · JS SDK
Domain Telecom · AI · Lead gen
Status Live · production
Market milestone
First in SI
AI telecom assistant
Delivery format
Widget
embeddable JS SDK
Compliance
GDPR
lead-consent flow
Market position
category creator
first Slovenian AI telecom comparison
partner-site.si/ponudbeIzberite pravi paketPrimerjajte ponudbe slovenskih operaterjevTelco A€29/mo40 GB · 1000 minTelco B€19/mo20 GB · 500 minTelco C€39/mo100 GB · neomejenoDealko● LIVEPozdravljeni 👋 Povejte mi, kajpotrebujete — koliko GB, kolikolinij, streaming?AGENT · plan3 linije, 80 GB, streaming bundle:Telco C · €48 /mo ↓Pusti kontaktGDPR ✓

Overview

Most telecom comparison tools in Slovenia are static tables. Dealko is the first to let a user actually talk about what they need — “three lines, 80 GB shared, streaming included” — and get a qualified recommendation back, along with a GDPR-compliant path to become a warm lead for the matching operator.

I built the system end-to-end: a React widget that drops into any partner site with a single <script> tag, a PHP backend that brokers conversations and enforces GDPR consent, and an OpenAI layer with tool-calling for plan lookup, port-eligibility checks, and lead handoff.

The interesting engineering isn’t the LLM — it’s the GDPR consent flow, the idempotent lead-handoff to the operator’s backoffice, and the widget architecture that keeps conversation state even when the user reloads the page.

Architecture

~/dealko/architecture/system-map.svg
01 — CLIENT SURFACESEmbeddable widgetReact · single <script> tag · shadow DOMOperator admin consoleReact · tenants · logs · analyticsPartner site (telco comparison portal)widget injected · host page untouchedBrokerPHP · budget · content safety · GDPR consenttool-calling router · idempotent lead handoffnever calls OpenAI from the browser02 — INTELLIGENCE & DATAOpenAIGPT · tool-callsPlan catalogMySQL · operator dataConversation logMySQL · GDPR-taggedOperator CRM (lead handoff)idempotent · consented leads only

Reading the diagram: The widget embedded on partner sites and the operator console both speak only to the PHP broker — never directly to OpenAI. The broker enforces budget, GDPR consent, content safety, and idempotent lead handoff. Leads reach the operator CRM only after explicit consent has been recorded.

03 Lo que entregué · desafíos resueltos

Seis cosas entregadas,
tres difíciles resueltas.

Contribuciones clave

  • Built the React widget with shadow-DOM isolation so it can't leak styles into partner sites.
  • PHP broker enforcing budget, consent, content safety, and tool-call routing.
  • OpenAI integration with function-calling for plan lookup, port-eligibility, and lead handoff.
  • GDPR-first lead flow — explicit consent capture, deletion-on-request, conversation retention policy.
  • Operator admin console for partners to watch live conversations and debug edge cases.

Desafíos resueltos

  • Being first in market — no reference design to copy from, UX patterns invented from scratch.
  • GDPR-compliant conversation logging without losing the context needed to debug AI behavior.
  • Idempotent lead handoff so a network retry never creates a duplicate lead in the CRM.
The interesting engineering isn't the LLM — it's the GDPR consent flow, the idempotent hand-off to the operator's CRM, and the widget architecture that survives a page reload mid-conversation.
Davor Majc, AI lead / Dealko
04 Stack tecnológico

Qué hay bajo el capó.

ReactTypeScriptTailwindPHPMySQLOpenAIfunction callingshadow DOMGDPR
Hablemos

¿Listo para arreglar, construir
o escalar?

30 minutos, conmigo personalmente. Leo tu sistema como un archivo de logs y te digo qué haría primero. Sin presentaciones, sin embudo de ventas.

Davor Majc, fundador, Numen

Qué obtienes en la llamada
→ un diagnóstico de una página
→ 2–3 formas de solución, ordenadas por impacto
→ coste aproximado + plazo para cada una
→ sí/no — ¿soy la elección adecuada?
+386 40 828 474 · Blejska Dobrava, SI