Home/ Work/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 What I delivered · challenges solved

Six things shipped,
three hard ones solved.

Key contributions

  • 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.

Challenges solved

  • 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 Tech stack

What's under the hood.

ReactTypeScriptTailwindPHPMySQLOpenAIfunction callingshadow DOMGDPR
Let's talk

Ready to fix, build,
or scale?

30 minutes, with me personally. I'll read your system like a log file and tell you what I'd do first. No pitch deck, no sales funnel.

Davor Majc, founder, Numen

What you get on call
→ a one-page diagnosis
→ 2–3 fix shapes, ranked by leverage
→ rough cost + timeline for each
→ yes/no — am I the right fit
+386 40 828 474 · Blejska Dobrava, SI