Bachelor's Thesis

LLM-Powered Resume Builder

Final Thesis 15.54 MB

Author of thesis: Aliaksandr Skuratovich

Acad. year: 2024/2025

Supervisor: Ing. Jiří Hynek, Ph.D.

Reviewer: Ing. Magdaléna Ondrušková

Abstract:

This thesis describes the development of a web application designed to simplify the management of CVs. The primary goal is to create a clear and user-friendly interface for storing, managing, and adapting CVs using large language models (LLMs). The work covers the entire development lifecycle, including requirement analysis, design, implementation, deployment, and testing. Special attention is given to integrating and evaluating LLM-driven features, including a comparison of prompt engineering and fine-tuning approaches. The application is implemented using React with Vite for the frontend, and NestJS, PostgreSQL, and MongoDB for the backend. The result is a practical tool that uses AI capabilities to efficiently handle and improve CVs.

Keywords:

web application, CV management, React, Vite, NestJS, PostgreSQL, MongoDB, UI/UX, LLM, fine-tuning, prompt engineering

Date of defence

16.06.2025

Result of the defence

Defended (thesis was successfully defended)

znamkaBznamka

Grading

B

Process of defence

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm B.

Topics for thesis defence

  1. Výsledný nástroj ste testovali najmä na inzeráty pre technicky zamerané pracovné pozície. Je Váš nástroj použiteľný aj na menej technické pozície, napr. projektový manažér, HR, príp. iné?
  2. V rámci pracovných inzerátov je častokrát potrebné okrem životopisu posielať aj motivačný list. Je možné Vašu aplikáciu prispôsobiť, aby na základe priloženého inzerátu a CV vedela vygenerovať motivačný list pre danú pozíciu?
  3. Zvažovali ste použitie aj iných LLM modelov, ako tých od spoločnosti OpenAI (GPT 3.5, GPT 4.0 mini,...)? Prečo ste sa nakoniec rozhodli pre modely od OpenAI?

Language of thesis

English

Faculty

Department

Study programme

Information Technology (BIT)

Composition of Committee

doc. Dr. Ing. Dušan Kolář (předseda)
Ing. Libor Polčák, Ph.D. (člen)
doc. Dr. Ing. Otto Fučík (člen)
Ing. František Grézl, Ph.D. (člen)
Ing. Tomáš Goldmann, Ph.D. (člen)

Supervisor’s report
Ing. Jiří Hynek, Ph.D.

Student vytvořil zajímavou webovou aplikaci, která by mohla najít obecné využití. Prostudoval řadu netriviálních technologií. Pozitivně hodnotím zejména přístup k praktické části, negativně pak přístup k psaní technické zprávy. Navrhuji hodnocení stupněm B.

Evaluation criteria Verbal classification
Informace k zadání

Práce vznikla jako nápad studenta vytvořit webovou aplikaci pro tvorbu životopisů s využitím velkých jazykových modelů (LLM). Student se seznámil s problematikou prompt engineering a fine-tuning. Seznámil se s řadou technologií a vytvořil řešení založené na netriviální architektuře (TypeScript/React pro klientskou část, NestJS pro aplikační logiku na serveru, PostgreSQL pro relační uživatelská data, MongoDB pro ukládání strukturovaných životopisů). Mimo jiné využil služby AWS pro nasazení řešení nebo např. Docker a Nginx. Zadání hodnotím jako obtížné.

Práce s literaturou

Student pracoval převážně s dostupnými online zdroji týkající se použitých nástrojů a problematiky LLM. Spoustu znalostí získával komunikací s různými lidmi na platformě Telegram.

Aktivita během řešení, konzultace, komunikace

Student byl aktivní během celého akademického roku. Účastnil se online konzultací nebo komunikoval přes Slack. Nevyžadoval mnoho podpory, nicméně projevoval zájem nad tématem hluboce přemýšlet a polemizovat. Student byl osobitý, diskuse se mnohdy uchylovala až k různým filozofickým tématům. Byť to bylo mnohdy vyčerpávající, tento přístup hodnotím pozitivně.

Aktivita při dokončování

Technická zpráva byla dokončována na poslední chvíli, a nebylo ji tak možné dostatečně konzultovat. Student projevoval negativní postoj k psaní technické zprávy a soustředil se spíše na praktickou část práce.

Publikační činnost, ocenění

Student své řešení uveřejnil na platformě Github.

Points proposed by supervisor: 85

Grade proposed by supervisor: B

Reviewer’s report
Ing. Magdaléna Ondrušková

Študent splnil zadanie. Praktická časť aplikácie je na dobrej úrovni a reálne použiteľná. Hlavné nedostatky vidím najmä v technickej práce. Na základe využiteľnosti výsledkov hodnotím prácu stupňom B. 

Evaluation criteria Verbal classification Points
Náročnost zadání

Evaluation level: obtížnější zadání

Cieľom študenta bolo vytvoriť aplikáciu, ktorá vytvorí personalizovaný životopis podľa zadanej ponuky práce. Študent sa zoznámil s problematikou tvorby CV, ako aj najčastejšie chyby, ktoré ľudia robia pri tvorbe životopisu ako aj využívaniu LLM pre tvorbu aplikácii. Študent si naštudoval potrebné technológie pre vytvorenie webovej aplikácie a aj jej nasadenie do reálneho provozu (Google OAuth, AWS services, Github Pages a pod). Zadanie hodnotím ako obtížnejšie. 

Prezentační úroveň technické zprávy

Práca je rozumne členená na teoretickú a praktickú časť. V rámci teoretickej časti sa študent zameral na problematiku tvorenia CV, ako aj zhodnotenie aktuálnych nástrojov, ktoré pomáhajú užívateľom s vytvorením CV. Ďalej študent prezentuje problematiku tvorby webových aplikácií ako aj používanie LLM. Kapitola zameraná na LLM je stručná a mohla byť viac rozpísaná - najmä v kontexte tvorby životopisu pomocou LLM. 

V praktickej časti študent predstavuje analýzu požiadaviek, kde ale chýba väčšia analýza potencionálnych užívateľov – nie je jasné, kto sú teda cieľoví užívatelia aplikácie (okrem autora práce). V kapitole Návrh študent miestami skôr hovorí o implementačných detailoch (napr. podkapitola 6.5.1) ako o návrhu. Študent sa tu často vyjadruje v minulom čase. Chýba tu napr. návrh užívateľského rozhrania.

Testovanie prebiehalo na malej skupine potencionálnych užívateľov, pričom sa študent zameral iba na technickejšie role. V texte sa často nachádzajú konštatovania, ktoré sa nehodia do BP: Despite the known benefits, testing is occasionally omitted in various projects. 

75
Formální úprava technické zprávy

Formálna úprava technickej správy je na slabšej úrovni. Práca obsahuje viacero chýb – medzery pred odkazom na poznámku pod čiarkou, alebo ich umiestnenie až za koncom vety (napr.: demand.5). V texte sa nachádza prázdne miesto na strane 46 ale kapitola na ďalšej strane pokračuje. Na konci textu je prázdna strana 66.  Obrázok 7.1. obsahuje veľa bieleho miesta. Text miestami preteká (napr. strana 36). Niektoré odseky sú iba 1 veta. Miestami sú zle použité úvodzovky (napr. strana 59).  Práca obsahuje preklepy.

65
Realizační výstup

Študent implementoval webovú aplikáciu pre tvorbu životopisu. Aplikácia je reálne nasadená a prístupna užívateľom. Študent prepojil rôzne technológie, čo viedlo k dobrému výsledku. 

90
Využitelnost výsledků

Aplikácie je využiteľná pre úpravu CV pre danú konkrétnu rolu a uľahčuje prispôsobovanie životopisu pre danú pozíciu. Aplikácia by mohla byť reálne použiteľná. 

Rozsah splnění požadavků zadání

Evaluation level: zadání splněno

Rozsah technické zprávy

Evaluation level: je v obvyklém rozmezí

Práce s literaturou

Práca obsahuje dostatočné množstvo zdrojov, ale väčšinu z nich tvoria internetové zdroje. 

80
Topics for thesis defence:
  1. Výsledný nástroj ste testovali najmä na inzeráty pre technicky zamerané pracovné pozície. Je Váš nástroj použiteľný aj na menej technické pozície, napr. projektový manažér, HR, príp. iné?
  2. V rámci pracovných inzerátov je častokrát potrebné okrem životopisu posielať aj motivačný list. Je možné Vašu aplikáciu prispôsobiť, aby na základe priloženého inzerátu a CV vedela vygenerovať motivačný list pre danú pozíciu?
  3. Zvažovali ste použitie aj iných LLM modelov, ako tých od spoločnosti OpenAI (GPT 3.5, GPT 4.0 mini,...)? Prečo ste sa nakoniec rozhodli pre modely od OpenAI?
Points proposed by reviewer: 80

Grade proposed by reviewer: B

Responsibility: Mgr. et Mgr. Hana Odstrčilová