Pohovor na AI Specialist · Proficio / Keypers

AI Specialist

Tři výzvy. Tři řešení. Postaveno prakticky.

Jan Šubrt

Prozkoumat řešení
Úkol 1

Automatická klasifikace klíčových slov pomocí AI

Vstupní CSV s tisíci KW → sémantické clustery → pojmenované skupiny pomocí LLM — bez manuální práce.

KW Clustering — Pipeline

📄
KW Seznam
keywords.csv
🧠
Embeddings / LLM
text-embedding-3
🎯
Clustering
K-means / cosine
Tematické skupiny
LLM pojmenování

Technické řešení

import openai
import numpy as np
from sklearn.cluster import KMeans
from sklearn.preprocessing import normalize

def cluster_keywords(keywords: list[str], n_clusters: int = 10) -> dict:
    # 1. Získej embeddings
    response = openai.embeddings.create(
        model="text-embedding-3-small",
        input=keywords
    )
    embeddings = [e.embedding for e in response.data]

    # 2. Normalizuj vektory
    X = normalize(np.array(embeddings))

    # 3. K-means clustering
    kmeans = KMeans(n_clusters=n_clusters, random_state=42, n_init=10)
    labels = kmeans.fit_predict(X)

    # 4. Pojmenuj clustery pomocí LLM
    clusters = {}
    for i, (kw, label) in enumerate(zip(keywords, labels)):
        clusters.setdefault(label, []).append(kw)

    return name_clusters_with_llm(clusters)

Live Demo — AI Clustering

Vložte klíčová slova oddělená čárkami a klikněte na "Spustit clustering"

Úkol 2

Batch překladová pipeline s faktickou validací

Hromadný překlad produktových popisků z Google Sheets s automatickou kontrolou faktické přesnosti.

Pipeline vizualizace

📊
Google Sheets
CZ texty
⚙️
Parser
Strukturovaná data
🤖
Claude API
Překlad + kontext
🔍
Validace
Faktická kontrola
💾
Google Drive
XLSX export

Async překladová pipeline

async def translate_and_validate(product: dict, target_langs: list[str]) -> dict:
    results = {}

    for lang in target_langs:
        # Přeložení s kontextem
        translation = await translate_with_context(
            text=product["description"],
            source_lang="cs",
            target_lang=lang,
            product_params=product["params"]  # klíčové parametry
        )

        # Faktická validace
        validation = await validate_facts(
            original=product["description"],
            translated=translation,
            params=product["params"],
            lang=lang
        )

        results[lang] = {
            "text": translation,
            "confidence": validation.score,
            "issues": validation.issues,  # ["Chybná délka: 120cm vs 122cm"]
            "status": "approved" if validation.score > 0.95 else "review"
        }

    return results

Live Demo — Přeložit a validovat

Vložte produktový popis v češtině, vyberte jazyky a spusťte překlad s faktickou validací.

Úkol 3

Monitoring viditelnosti webů v AI asistentů

Automatický systém měřící, jak často jsou weby klientů zmiňovány v odpovědích ChatGPT, Claude a Perplexity.

Architektura systému

Cron
Denní spuštění
🔎
Query Engine
Sada promptů
🤖
AI APIs
GPT + Claude + Perplexity
⚙️
Parser
Extrakce zmínek
🗄️
DB
Time-series (Supabase)
📊
Dashboard
Vizualizace
📈
298
Celkové zmínky
+23%
📊
+12
Trend 7d
vs. min. týden
🤖
ChatGPT
Nejlepší AI
142 zmínek
🏆
#2.3
Pozice v SERP
+0.4 avg

Viditelnost v AI (posledních 90 dní)

Počet zmínek podle AI asistenta

Implementace monitoring agenta

async def check_ai_visibility(domain: str, prompts: list[str]) -> list[Mention]:
    mentions = []

    for prompt in prompts:
        # Paralelně dotazuj všechny AI
        responses = await asyncio.gather(
            query_chatgpt(prompt),
            query_claude(prompt),
            query_perplexity(prompt)
        )

        for ai_name, response in zip(["ChatGPT", "Claude", "Perplexity"], responses):
            if domain in response.text:
                mentions.append(Mention(
                    domain=domain,
                    ai_assistant=ai_name,
                    prompt=prompt,
                    excerpt=extract_context(response.text, domain),
                    sentiment=analyze_sentiment(response.text),
                    timestamp=datetime.now()
                ))

    return mentions

Live Check — Zkontrolovat AI viditelnost

Zadejte doménu a prompty — systém se dotáže Claude a vyhodnotí, zda doménu zmíní.

Jan Šubrt

AI & Automation Specialist

Stavím AI nástroje, které šetří čas a přinášejí výsledky. Specializuji se na LLM integrace, automatizace workflow a interní nástroje pro marketingové týmy. Tento web jsem postavil jako praktickou ukázku pro pohovor u Proficio/Keypers.

PythonLLMsOpenAI APIAnthropic APIMake / n8nFastAPINext.jsPrompt EngineeringSupabaseTypeScriptvibe codingSEO Automation

Pojďme posunout Keypers na další úroveň

Máte výzvy s AI automatizací, keyword analýzou nebo monitoring visibility? Pojďme si promluvit.