Portfolio-projekt · Telegram-bot

Job Search Bot

En AI-agent, der søger job i Danmark, sammenligner dem med dit CV, og automatisk udarbejder færdige ansøgningsdokumenter — så du ikke selv skal skrive dem manuelt.

Indtast ingen følsomme oplysninger — send aldrig dit CPR-nummer eller lignende data til botten.

AI Coding + QA Testing = Now & Future.

(AI Coding = skabelse af AI-agenter/chatbots/hjemmesider)

Jeg arbejder aktivt med agentiske AI-udviklingsværktøjer, der gør det muligt hurtigt og effektivt selv at specificere, bygge og teste komplette, produktionsklare løsninger — uden at skulle mestre traditionelle programmeringssprog som Python eller PHP. Min rolle har hele vejen igennem været at specificere præcist, hvad der skulle bygges, teste output grundigt, og finde konkrete bugs og fejl i AI'ens output og logik, før noget gik i produktion.

Prøv botten i aktion

Ingen Telegram nødvendig — klik dig selv igennem rigtige samtaler: et godt match med en færdig ansøgning som PDF, et ærligt 0%, en vakance tilføjet manuelt fra et link, et ærligt afslag på et nonsens-søgeord, og Verify-tjekket, der fanger ubekræftede påstande.

Rigtige samtaler fra botten — klik på en knap for at se, hvad der sker (samme data som i skærmbillederne længere nede).

Sådan virker det

Tre trin fra søgeord til en færdig ansøgning.

Søg job

Botten henter job direkte fra Jobindex.dk og Jobnet.dk ud fra dine søgeord, med mulighed for at filtrere efter by. Resultater fra flere kilder samles, og dubletter fjernes automatisk.

AI sammenligner med dit CV

Hvert jobopslag og dit CV sendes til Google Gemini, som vurderer det reelle faglige overlap — ikke bare fælles ord — og giver en match-procent med kort begrundelse.

Få færdige dokumenter

Vælg et job, og botten udarbejder en ansøgning på dansk plus jobopslaget som PDF med udtrukne kontaktoplysninger. Du gennemgår og sender selv.

Skærmbillede: bynavnet 'Arhus' (stavefejl) genkendes automatisk som Aarhus
Stavefejl i bynavn genkendes automatisk mod den officielle liste over danske kommuner — et pålideligt opslag, ikke AI-gætteri.

Agentisk søgning: AI'en tænker selv, når søgningen er tom

Botten har ikke en fast forudbestemt liste af synonymer. I stedet beslutter AI'en selv, hvilket lignende ord den vil prøve, når en søgning giver 0 resultater.

0 resultater

Søgeordet findes ikke direkte i nogen jobopslag — botten aktiverer automatisk AI'en i stedet for bare at vise "intet fundet".

hvis ordet ligner et rigtigt ord

AI'en vælger selv

Gemini foreslår ét bredere eller synonymt dansk ord, kører en rigtig søgning med det, og ser det reelle resultat — højst 2 forsøg, aldrig flere.

hvis ordet er nonsens

Ærligt afslag på nonsens

Giver søgeordet ingen mening, siger AI'en det ærligt i stedet for at gætte et tilfældigt ord.

🤖

Rigtigt eksempel — søgeord med stavefejl: "boghlder" Ordet 'boghlder' er en typisk stavefejl for den danske jobtitel bogholder, så jeg prøver at søge på den korrekte stavemåde i stedet. → Prøvede «bogholder»: 61 job fundet.

Skærmbillede: søgeordet 'boghlder' rettes automatisk til 'bogholder' af AI'en, 61 job fundet
Stavefejl i søgeordet ("boghlder") rettes af AI'en til det korrekte danske ord — 61 job fundet med det samme.
🤖

Rigtigt eksempel — søgeord: "abrakadabra" "abrakadabra" er et trylleord og en meningsløs tekst i en jobmæssig sammenhæng, og det kan derfor ikke tolkes som et rigtigt fagområde eller en jobtitel.

Skærmbillede: søgeordet 'abrakadabra' skrives direkte efter «Hvad nu?», i stedet for at trykke Vis listen igen
Man kan skrive et nyt søgeord direkte, i stedet for at trykke «Vis listen igen».
Skærmbillede: botten afviser 'abrakadabra' ærligt i stedet for at gætte et tilfældigt ord
Botten afviser ærligt i stedet for at søge på et tilfældigt ord.

Fandt du selv et job? Tilføj det manuelt

Botten er ikke begrænset til, hvad den selv finder på Jobindex og Jobnet. Send et link, en PDF eller et foto af et jobopslag fra hvor som helst — botten læser det, vurderer det mod dit CV på nøjagtig samme måde, og føjer det til listen.

Skærmbillede: et link til en Pandora-stilling tilføjet manuelt, vurderet til 0% match med forklaring om manglende ledelseserfaring
Et link til en Pandora-stilling, indsat direkte i chatten — botten henter opslaget, vurderer det (her ærligt 0%, da stillingen kræver ledelseserfaring CV'et ikke har) og tilføjer det som nr. 21 på den løbende liste.

Ærlig match-vurdering

Det er ikke bare en søgning efter ens ord. Hvis der ikke er nogen relevant erfaring i CV'et til en stilling, viser botten ærligt 0% — uden "trøste-procenter". Jobbet forbliver alligevel på listen, for det er altid personens eget valg, om de vil søge.

Ikke bare et nøgleordsmatch, som man ofte ser på andre platforme — AI'en vurderer den reelle substans: matcher erfaringen faktisk stillingens krav, eller er det kun et overfladisk sammenfald af ord? Hvis noget reelt mangler, siger botten det ærligt — i stedet for at vise en pæn, men vildledende procentsats.

Eksempel på positivt match: bogholder-CV mod Finansbogholder-stilling, 90%
Godt match — bogholder-CV mod "Finansbogholder": 90%
Eksempel på delvist match: bogholder-CV mod Controller-stilling, 25%
Delvist match — bogholder-CV mod "Controller til CISU": 25%, med forklaring på hvorfor rollen kræver mere end regnskabserfaring
Eksempel på intet match: bogholder-CV mod bygningsmaler-stilling, 0%
Intet match — samme bogholder-CV mod "Bygningsmaler": 0%, uden trøste-procenter

Hvad den genererer for hvert job

Når du vælger et konkret job, udarbejder botten 2 dokumenter på under et minut:

Bagefter kan ansøgningen tjekkes og rettes med to knapper:

Botten sender ikke noget selv. Den udarbejder kun udkast — det sidste skridt (gennemgå, rette til, sende) er altid personens eget.

Verify — AI'en tjekker sig selv, før du gør

Med knappen "❓ Verify" sammenligner AI'en den udarbejdede ansøgning igen — denne gang mod dit originale CV og selve jobopslaget. Finder den en påstand, der ikke kan bekræftes, eller et krav, der slet ikke er berørt, kan du rette det med ét klik ("🔧 Ret baseret på Verify") og tjekke igen, indtil alt går grønt.

Verify-resultat: fundet en påstand, der ikke bekræftes af CV'et, og et krav, der ikke er berørt
Verify finder noget — en påstand uden dækning i CV'et, og et krav fra opslaget, der ikke er nævnt
Rettet ansøgning leveret som PDF efter at have trykket på Ret baseret på Verify
Rettet med ét klik — kun de fundne punkter ændres, resten af ansøgningen røres ikke
Nyt Verify-tjek: alt bekræftet, tjek bestået
Rent tjek — alt bekræftet af CV'et, alle krav berørt

Kvalitetssikring i praksis

Ikke en teoretisk QA-liste — konkrete fejl, fundet gennem gentagen test med rigtige data undervejs i udviklingen, og rettet med det samme.

Teknisk

Bygget som et selvstændigt Python-projekt med fokus på pålidelighed og enkel drift.

Python python-telegram-bot Google Gemini API Gemini function calling (agentisk søgning) SQLite fpdf2 (PDF-generering) Jobindex.dk + Jobnet.dk Hostet på Railway

Specificeret, bygget og testet med agentiske AI-udviklingsværktøjer — uden at skulle mestre disse sprog i traditionel forstand.

Ikke kun en prototype: 45-sekunders timeout på hvert AI-kald (så et hængende kald aldrig stopper botten uden varsel), en persistent database der overlever hver ny deployment, automatisk sletning af inaktive brugeres data efter 30 dage af hensyn til privatlivet, og en brugsgrænse på den offentlige demo for at holde omkostningerne under kontrol.

Mere om projektet

Automatisk baggrundssøgning med faste mellemrum — fungerer som en AI-agent, allerede implementeret og testet i søsterprojektet nedenfor. Funktionen kan aktiveres personligt efter brugerens anmodning.