diff --git a/apps/web/locales/af-ZA.po b/apps/web/locales/af-ZA.po
index 778b475e2..69163a0d5 100644
--- a/apps/web/locales/af-ZA.po
+++ b/apps/web/locales/af-ZA.po
@@ -2981,7 +2981,7 @@ msgstr "Dit is 'n URL-vriendelike naam vir jou CV."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Dit kan 'n paar minute neem, afhangend van die reaksie van die KI-verskaffer. Moet asseblief nie die venster sluit of die bladsy herlaai nie."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Hierdie CV is gesluit en kan nie bygewerk word nie."
 
@@ -3438,7 +3438,7 @@ msgstr "Jou data word plaaslik gestoor"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Jou data word veilig gestoor en nooit met derde partye gedeel nie. Jy kan ook Reactive Resume self-host op jou eie bedieners vir volledige beheer oor jou data."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "Jou jongste veranderinge kon nie gestoor word nie."
 
@@ -3495,4 +3495,3 @@ msgstr "Zoem uit"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Zoeloe"
-
diff --git a/apps/web/locales/am-ET.po b/apps/web/locales/am-ET.po
index 7b65028e6..a79aff404 100644
--- a/apps/web/locales/am-ET.po
+++ b/apps/web/locales/am-ET.po
@@ -2981,7 +2981,7 @@ msgstr "ይህ ለየታሪክዎ ተመቻቹ የ URL ስም ነው።"
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "ይህ በ AI አቅራቢው ምላሽ ላይ በመመርኮዝ ጥቂት ደቂቃዎች ሊወስድ ይችላል። እባክዎ መስኮቱን አትዘጉ ወይም ገጹን አታሻሽሉ።"
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "ይህ የየታሪክ ማቅረቢያ ተቆልፏል እና ማዘመን አይቻልም።"
 
@@ -3438,7 +3438,7 @@ msgstr "መረጃዎ በአካባቢዎ መሣሪያ ላይ ይቀመጣል"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "መረጃዎ በደህና ይከማቻል እና ከሶስተኛ ወገኖች ጋር አይተካፈልም። ደግሞም በራስዎ ሰርቨር ላይ Reactive Resumeን በመጫን በመረጃዎ ላይ ሙሉ ቁጥጥር ማግኘት ትችላላችሁ።"
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "የቅርብ ጊዜ ለውጦችዎ ሊቀመጡ አልቻሉም።"
 
@@ -3495,4 +3495,3 @@ msgstr "አጉር"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "ዙሉ"
-
diff --git a/apps/web/locales/ar-SA.po b/apps/web/locales/ar-SA.po
index 6d039349c..4457796eb 100644
--- a/apps/web/locales/ar-SA.po
+++ b/apps/web/locales/ar-SA.po
@@ -2981,7 +2981,7 @@ msgstr "هذا اسم مناسب لعناوين URL لسيرتك الذاتية.
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "قد يستغرق هذا بضع دقائق اعتمادًا على استجابة مزوّد الذكاء الاصطناعي. يُرجى عدم إغلاق النافذة أو تحديث الصفحة."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "هذه السيرة الذاتية مقفلة ولا يمكن تحديثها."
 
@@ -3438,7 +3438,7 @@ msgstr "تُخزَّن بياناتك محليًا"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "تُخزَّن بياناتك بأمان ولا تتم مشاركتها أبدًا مع أطراف ثالثة. يمكنك أيضًا استضافة Reactive Resume ذاتيًا على خوادمك الخاصة للتحكم الكامل في بياناتك."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "لم يتم حفظ آخر التغييرات التي أجريتها."
 
@@ -3495,4 +3495,3 @@ msgstr "تصغير"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "الزولو"
-
diff --git a/apps/web/locales/az-AZ.po b/apps/web/locales/az-AZ.po
index ca1b7c85c..c23d34686 100644
--- a/apps/web/locales/az-AZ.po
+++ b/apps/web/locales/az-AZ.po
@@ -2981,7 +2981,7 @@ msgstr "Bu, özgeçmişiniz üçün URL‑ə uyğun bir addır."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Bu, Süni İntellekt provayderinin cavabından asılı olaraq bir neçə dəqiqə çəkə bilər. Zəhmət olmasa, pəncərəni bağlamayın və ya səhifəni yeniləməyin."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Bu özgeçmiş kilidlənib və yenilənə bilməz."
 
@@ -3438,7 +3438,7 @@ msgstr "Məlumatlarınız lokal olaraq saxlanılır"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Məlumatlarınız təhlükəsiz şəkildə saxlanılır və heç vaxt üçüncü tərəflərlə paylaşılmır. Məlumatlarınıza tam nəzarət üçün Reactive Resume‑ni öz serverlərinizdə də host edə bilərsiniz."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "Son dəyişiklikləriniz yadda saxlanıla bilmədi."
 
@@ -3495,4 +3495,3 @@ msgstr "Uzaqlaşdır"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Zulu"
-
diff --git a/apps/web/locales/bg-BG.po b/apps/web/locales/bg-BG.po
index 127531e0a..306281d65 100644
--- a/apps/web/locales/bg-BG.po
+++ b/apps/web/locales/bg-BG.po
@@ -2981,7 +2981,7 @@ msgstr "Това е име, подходящо за URL, за вашата ав
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Това може да отнеме няколко минути в зависимост от отговора на AI доставчика. Моля, не затваряйте прозореца и не опреснявайте страницата."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Тази автобиография е заключена и не може да бъде актуализирана."
 
@@ -3438,7 +3438,7 @@ msgstr "Вашите данни се съхраняват локално"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Вашите данни се съхраняват сигурно и никога не се споделят с трети страни. Можете също да хоствате Reactive Resume самостоятелно на свои сървъри за пълен контрол върху данните си."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "Последните ви промени не можаха да бъдат запазени."
 
@@ -3495,4 +3495,3 @@ msgstr "Намаляване"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Зулуски"
-
diff --git a/apps/web/locales/bn-BD.po b/apps/web/locales/bn-BD.po
index 0cad4939c..c80c4a243 100644
--- a/apps/web/locales/bn-BD.po
+++ b/apps/web/locales/bn-BD.po
@@ -2981,7 +2981,7 @@ msgstr "এটি আপনার জীবনবৃত্তান্তের
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "AI প্রদানকারীর রেসপন্সের ওপর নির্ভর করে এতে কয়েক মিনিট সময় লাগতে পারে। অনুগ্রহ করে উইন্ডো বন্ধ বা পৃষ্ঠা রিফ্রেশ করবেন না।"
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "এই জীবনবৃত্তান্তটি লক করা আছে এবং হালনাগাদ করা যাবে না।"
 
@@ -3438,7 +3438,7 @@ msgstr "আপনার ডেটা স্থানীয়ভাবে সং
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "আপনার ডেটা নিরাপদভাবে সংরক্ষিত হয় এবং কখনোই তৃতীয় পক্ষের সঙ্গে শেয়ার করা হয় না। চাইলে আপনি নিজের সার্ভারে Reactive Resume নিজে হোস্ট করেও ডেটার পূর্ণ নিয়ন্ত্রণ রাখতে পারেন।"
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "আপনার সর্বশেষ পরিবর্তনগুলো সংরক্ষণ করা যায়নি।"
 
@@ -3495,4 +3495,3 @@ msgstr "জুম আউট"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "জুলু"
-
diff --git a/apps/web/locales/ca-ES.po b/apps/web/locales/ca-ES.po
index 0f121a72b..4d6e7830e 100644
--- a/apps/web/locales/ca-ES.po
+++ b/apps/web/locales/ca-ES.po
@@ -2981,7 +2981,7 @@ msgstr "Aquest és un nom d’URL fàcil d’utilitzar per al currículum."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Això pot trigar uns minuts, segons la resposta del proveïdor d’IA. No tanquis la finestra ni actualitzis la pàgina."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Aquest currículum està bloquejat i no es pot actualitzar."
 
@@ -3438,7 +3438,7 @@ msgstr "Les dades es desen localment"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Les dades s’emmagatzemen de manera segura i mai no es comparteixen amb tercers. També pots autoallotjar Reactive Resume als teus propis servidors per tenir un control total sobre les dades."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "No s'han pogut desar els darrers canvis."
 
@@ -3495,4 +3495,3 @@ msgstr "Allunya"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Zulú"
-
diff --git a/apps/web/locales/cs-CZ.po b/apps/web/locales/cs-CZ.po
index 0bfc087fd..840410482 100644
--- a/apps/web/locales/cs-CZ.po
+++ b/apps/web/locales/cs-CZ.po
@@ -2981,7 +2981,7 @@ msgstr "Toto je název vašeho životopisu vhodný pro URL adresu."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Může to trvat několik minut v závislosti na odezvě poskytovatele AI. Nezavírejte prosím okno ani neobnovujte stránku."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Tento životopis je uzamčen a nelze ho aktualizovat."
 
@@ -3438,7 +3438,7 @@ msgstr "Vaše data jsou ukládána lokálně"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Vaše data jsou ukládána bezpečně a nikdy nejsou sdílena s třetími stranami. Reactive Resume si můžete také hostovat sami na vlastních serverech a mít tak nad svými daty plnou kontrolu."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "Vaše poslední změny se nepodařilo uložit."
 
@@ -3495,4 +3495,3 @@ msgstr "Oddálit"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Zulu"
-
diff --git a/apps/web/locales/da-DK.po b/apps/web/locales/da-DK.po
index 215ed14bb..0f84f64e1 100644
--- a/apps/web/locales/da-DK.po
+++ b/apps/web/locales/da-DK.po
@@ -2981,7 +2981,7 @@ msgstr "Dette er et URL-venligt navn til dit CV."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Dette kan tage et par minutter afhængigt af svaret fra AI-udbyderen. Luk venligst ikke vinduet og genindlæs ikke siden."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Dette CV er låst og kan ikke opdateres."
 
@@ -3438,7 +3438,7 @@ msgstr "Dine data gemmes lokalt"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Dine data lagres sikkert og deles aldrig med tredjeparter. Du kan også selv-hoste Reactive Resume på dine egne servere for fuld kontrol over dine data."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "Dine seneste ændringer kunne ikke gemmes."
 
@@ -3495,4 +3495,3 @@ msgstr "Zoom ud"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Zulu"
-
diff --git a/apps/web/locales/de-DE.po b/apps/web/locales/de-DE.po
index 732397ace..1eca1f522 100644
--- a/apps/web/locales/de-DE.po
+++ b/apps/web/locales/de-DE.po
@@ -2981,7 +2981,7 @@ msgstr "Dies ist ein URL-freundlicher Name für Ihren Lebenslauf."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Dies kann einige Minuten dauern, abhängig von der Antwort des KI-Anbieters. Bitte schließe das Fenster nicht und lade die Seite nicht neu."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Dieser Lebenslauf ist gesperrt und kann nicht aktualisiert werden."
 
@@ -3438,7 +3438,7 @@ msgstr "Deine Daten werden lokal gespeichert"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Deine Daten werden sicher gespeichert und niemals an Dritte weitergegeben. Du kannst Reactive Resume außerdem auf deinen eigenen Servern selbst hosten, um die vollständige Kontrolle über deine Daten zu behalten."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "Ihre letzten Änderungen konnten nicht gespeichert werden."
 
@@ -3495,4 +3495,3 @@ msgstr "Herauszoomen"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Zulu"
-
diff --git a/apps/web/locales/el-GR.po b/apps/web/locales/el-GR.po
index 500962c6a..2759d1aa7 100644
--- a/apps/web/locales/el-GR.po
+++ b/apps/web/locales/el-GR.po
@@ -2981,7 +2981,7 @@ msgstr "Αυτό είναι ένα φιλικό προς το URL όνομα γ
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Αυτό μπορεί να πάρει μερικά λεπτά, ανάλογα με την απόκριση του παρόχου ΤΝ. Μην κλείσετε το παράθυρο ή ανανεώσετε τη σελίδα."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Αυτό το βιογραφικό σημείωμα είναι κλειδωμένο και δεν μπορεί να ενημερωθεί."
 
@@ -3438,7 +3438,7 @@ msgstr "Τα δεδομένα σας αποθηκεύονται τοπικά"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Τα δεδομένα σας αποθηκεύονται με ασφάλεια και δεν κοινοποιούνται ποτέ σε τρίτους. Μπορείτε επίσης να φιλοξενήσετε μόνοι σας το Reactive Resume στους δικούς σας διακομιστές για πλήρη έλεγχο των δεδομένων σας."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "Δεν ήταν δυνατή η αποθήκευση των τελευταίων αλλαγών σας."
 
@@ -3495,4 +3495,3 @@ msgstr "Σμίκρυνση"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Ζουλού"
-
diff --git a/apps/web/locales/en-GB.po b/apps/web/locales/en-GB.po
index 045f55364..4b65c204a 100644
--- a/apps/web/locales/en-GB.po
+++ b/apps/web/locales/en-GB.po
@@ -2981,7 +2981,7 @@ msgstr "This is a URL-friendly name for your resume."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "This resume is locked and cannot be updated."
 
@@ -3438,7 +3438,7 @@ msgstr "Your data is stored locally"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "Your latest changes could not be saved."
 
@@ -3495,4 +3495,3 @@ msgstr "Zoom out"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Zulu"
-
diff --git a/apps/web/locales/en-US.po b/apps/web/locales/en-US.po
index 6324127df..fb3c41a5d 100644
--- a/apps/web/locales/en-US.po
+++ b/apps/web/locales/en-US.po
@@ -2976,7 +2976,7 @@ msgstr "This is a URL-friendly name for your resume."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "This resume is locked and cannot be updated."
 
@@ -3433,7 +3433,7 @@ msgstr "Your data is stored locally"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "Your latest changes could not be saved."
 
diff --git a/apps/web/locales/es-ES.po b/apps/web/locales/es-ES.po
index 608be2bbc..406db3fb4 100644
--- a/apps/web/locales/es-ES.po
+++ b/apps/web/locales/es-ES.po
@@ -2981,7 +2981,7 @@ msgstr "Este es un nombre compatible con URL para tu currículum."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Esto puede tardar unos minutos, dependiendo de la respuesta del proveedor de IA. No cierres la ventana ni recargues la página."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Este currículum está bloqueado y no se puede actualizar."
 
@@ -3438,7 +3438,7 @@ msgstr "Tus datos se almacenan localmente"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Tus datos se almacenan de forma segura y nunca se comparten con terceros. También puedes auto alojar Reactive Resume en tus propios servidores para tener un control total sobre tus datos."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "No se pudieron guardar los últimos cambios."
 
@@ -3495,4 +3495,3 @@ msgstr "Alejar"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Zulú"
-
diff --git a/apps/web/locales/fa-IR.po b/apps/web/locales/fa-IR.po
index d27a7793d..4123c5810 100644
--- a/apps/web/locales/fa-IR.po
+++ b/apps/web/locales/fa-IR.po
@@ -2981,7 +2981,7 @@ msgstr "این یک نام مناسب برای URLِ رزومه شما است."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "این کار ممکن است چند دقیقه طول بکشد، بسته به پاسخ ارائه‌دهندهٔ هوش مصنوعی. لطفاً پنجره را نبندید یا صفحه را تازه‌سازی نکنید."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "این رزومه قفل شده و قابل به‌روزرسانی نیست."
 
@@ -3438,7 +3438,7 @@ msgstr "داده‌های شما به‌صورت محلی ذخیره می‌شو
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "داده‌های شما به‌طور ایمن ذخیره شده و هرگز با اشخاص ثالث به اشتراک گذاشته نمی‌شوند. همچنین می‌توانید Reactive Resume را روی سرورهای خود میزبانی کنید تا کنترل کامل بر داده‌های خود داشته باشید."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "آخرین تغییرات شما ذخیره نشد."
 
@@ -3495,4 +3495,3 @@ msgstr "کوچک‌نمایی"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "زولو"
-
diff --git a/apps/web/locales/fi-FI.po b/apps/web/locales/fi-FI.po
index 1eb85c921..ba2fb3cf2 100644
--- a/apps/web/locales/fi-FI.po
+++ b/apps/web/locales/fi-FI.po
@@ -2981,7 +2981,7 @@ msgstr "Tämä on URL-ystävällinen nimi ansioluettelollesi."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Tämä voi kestää muutaman minuutin riippuen tekoälypalveluntarjoajan vasteesta. Älä sulje ikkunaa tai päivitä sivua."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Tämä ansioluettelo on lukittu eikä sitä voi päivittää."
 
@@ -3438,7 +3438,7 @@ msgstr "Tietosi tallennetaan paikallisesti"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Tietosi tallennetaan turvallisesti eikä niitä koskaan jaeta kolmansille osapuolille. Voit myös itseisännöidä Reactive Resumen omilla palvelimillasi täydellisen tietokontrollin takaamiseksi."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "Viimeisimpiä muutoksiasi ei voitu tallentaa."
 
@@ -3495,4 +3495,3 @@ msgstr "Loitonna"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Zulu"
-
diff --git a/apps/web/locales/fr-FR.po b/apps/web/locales/fr-FR.po
index 159519168..7a6fcebde 100644
--- a/apps/web/locales/fr-FR.po
+++ b/apps/web/locales/fr-FR.po
@@ -2981,7 +2981,7 @@ msgstr "Il s'agit d'un nom convivial pour l'URL de votre CV."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Cela peut prendre quelques minutes, en fonction de la réponse du fournisseur d'IA. Ne fermez pas la fenêtre et n'actualisez pas la page."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Ce CV est verrouillé et ne peut pas être modifié."
 
@@ -3438,7 +3438,7 @@ msgstr "Vos données sont stockées localement"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Vos données sont stockées en toute sécurité et ne sont jamais partagées avec des tiers. Vous pouvez également héberger Reactive Resume sur vos propres serveurs pour un contrôle total de vos données."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "Vos dernières modifications n'ont pas pu être enregistrées."
 
@@ -3495,4 +3495,3 @@ msgstr "Zoom arrière"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Zoulou"
-
diff --git a/apps/web/locales/he-IL.po b/apps/web/locales/he-IL.po
index 457717691..517dbb129 100644
--- a/apps/web/locales/he-IL.po
+++ b/apps/web/locales/he-IL.po
@@ -2981,7 +2981,7 @@ msgstr "זהו שם ידידותי לכתובת URL עבור קורות החיי
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "זה עלול לקחת כמה דקות, בהתאם לזמן התגובה של ספק הבינה המלאכותית. נא לא לסגור את החלון או לרענן את העמוד."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "קורות חיים אלה נעולים ולא ניתן לעדכן אותם."
 
@@ -3438,7 +3438,7 @@ msgstr "הנתונים שלך מאוחסנים באופן מקומי"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "הנתונים שלך מאוחסנים בצורה מאובטחת ולעולם אינם משותפים עם צדדים שלישיים. אפשר גם לארח את Reactive Resume בשרתים שלך כדי לשלוט לחלוטין בנתונים שלך."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "לא ניתן היה לשמור את השינויים האחרונים שלך."
 
@@ -3495,4 +3495,3 @@ msgstr "התרחקות"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "זולו"
-
diff --git a/apps/web/locales/hi-IN.po b/apps/web/locales/hi-IN.po
index dddbfc3e9..a3906c277 100644
--- a/apps/web/locales/hi-IN.po
+++ b/apps/web/locales/hi-IN.po
@@ -2981,7 +2981,7 @@ msgstr "यह आपके रेज़्यूमे के लिए एक
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "इसमें कुछ मिनट लग सकते हैं, यह AI प्रोवाइडर की प्रतिक्रिया पर निर्भर करता है। कृपया विंडो को बंद न करें या पेज रिफ़्रेश न करें।"
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "यह रेज़्यूमे लॉक है और इसे अपडेट नहीं किया जा सकता।"
 
@@ -3438,7 +3438,7 @@ msgstr "आपका डेटा लोकल रूप से संग्र
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "आपका डेटा सुरक्षित रूप से संग्रहीत है और कभी भी थर्ड पार्टियों के साथ साझा नहीं किया जाता। आप अपने सर्वर्स पर Reactive Resume को स्व‑होस्ट भी कर सकते हैं ताकि अपने डेटा पर पूर्ण नियंत्रण रख सकें।"
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "आपके नवीनतम परिवर्तन सहेजे नहीं जा सके।"
 
@@ -3495,4 +3495,3 @@ msgstr "ज़ूम आउट"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "ज़ुलु"
-
diff --git a/apps/web/locales/hu-HU.po b/apps/web/locales/hu-HU.po
index f1d550ff6..dca891ee5 100644
--- a/apps/web/locales/hu-HU.po
+++ b/apps/web/locales/hu-HU.po
@@ -2981,7 +2981,7 @@ msgstr "Ez az önéletrajzod URL‑barát neve."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Ez néhány percet igénybe vehet, az AI szolgáltató válaszidejétől függően. Kérjük, ne zárd be az ablakot, és ne frissítsd az oldalt."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Ez az önéletrajz zárolva van, és nem frissíthető."
 
@@ -3438,7 +3438,7 @@ msgstr "Az adataid helyben tárolódnak"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Az adataid biztonságosan tároljuk, és soha nem osztjuk meg harmadik felekkel. A Reactive Resume‑t saját szervereiden is hosztolhatod, hogy teljes kontrollod legyen az adataid felett."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "A legutóbbi módosításokat nem sikerült menteni."
 
@@ -3495,4 +3495,3 @@ msgstr "Kicsinyítés"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Zulu"
-
diff --git a/apps/web/locales/id-ID.po b/apps/web/locales/id-ID.po
index 9b97be696..c578d53d6 100644
--- a/apps/web/locales/id-ID.po
+++ b/apps/web/locales/id-ID.po
@@ -2981,7 +2981,7 @@ msgstr "Ini adalah nama yang ramah URL untuk resume Anda."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Ini mungkin memakan waktu beberapa menit, tergantung respons penyedia AI. Harap jangan menutup jendela atau memuat ulang halaman."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Resume ini dikunci dan tidak dapat diperbarui."
 
@@ -3438,7 +3438,7 @@ msgstr "Data Anda disimpan secara lokal"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Data Anda disimpan dengan aman dan tidak pernah dibagikan dengan pihak ketiga. Anda juga dapat self-host Reactive Resume di server Anda sendiri untuk kontrol penuh atas data Anda."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "Perubahan terbaru Anda tidak dapat disimpan."
 
@@ -3495,4 +3495,3 @@ msgstr "Perkecil"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Zulu"
-
diff --git a/apps/web/locales/it-IT.po b/apps/web/locales/it-IT.po
index 944a5727d..85facb128 100644
--- a/apps/web/locales/it-IT.po
+++ b/apps/web/locales/it-IT.po
@@ -2981,7 +2981,7 @@ msgstr "Questo è un nome adatto agli URL per il tuo curriculum."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Potrebbero essere necessari alcuni minuti, a seconda della risposta del provider IA. Non chiudere la finestra e non aggiornare la pagina."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Questo curriculum è bloccato e non può essere aggiornato."
 
@@ -3438,7 +3438,7 @@ msgstr "I tuoi dati vengono memorizzati localmente"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "I tuoi dati sono archiviati in modo sicuro e non vengono mai condivisi con terze parti. Puoi anche fare self-host di Reactive Resume sui tuoi server per avere il pieno controllo dei tuoi dati."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "Impossibile salvare le ultime modifiche."
 
@@ -3495,4 +3495,3 @@ msgstr "Rimpicciolisci"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Zulu"
-
diff --git a/apps/web/locales/ja-JP.po b/apps/web/locales/ja-JP.po
index da914299d..9f3a0aa82 100644
--- a/apps/web/locales/ja-JP.po
+++ b/apps/web/locales/ja-JP.po
@@ -2981,7 +2981,7 @@ msgstr "これは履歴書用の、URL 向けの名前です。"
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "AI プロバイダーからの応答によっては、数分かかる場合があります。ウィンドウを閉じたりページを再読み込みしたりしないでください。"
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "この履歴書はロックされているため、更新できません。"
 
@@ -3438,7 +3438,7 @@ msgstr "あなたのデータはローカルに保存されます。"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "あなたのデータは安全に保存され、第三者と共有されることはありません。また、完全にデータを管理したい場合は、Reactive Resume を自分のサーバーにセルフホストすることもできます。"
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "最新の変更内容を保存できませんでした。"
 
@@ -3495,4 +3495,3 @@ msgstr "ズームアウト"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "ズールー語"
-
diff --git a/apps/web/locales/km-KH.po b/apps/web/locales/km-KH.po
index 72dbe4cd6..72a273ed8 100644
--- a/apps/web/locales/km-KH.po
+++ b/apps/web/locales/km-KH.po
@@ -2981,7 +2981,7 @@ msgstr "នេះ​ជា​ឈ្មោះ​ងាយ​ស្រួល​ស
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "វា​អាច​ចំណាយ​ពេល​ពីរ​នាទី អាស្រ័យ​លើ​ការ​ឆ្លើយតប​របស់​អ្នកផ្តល់​សេវា AI។ សូម​កុំ​បិទ​បង្អួច​នេះ ឬ​ផ្ទុក​ទំព័រ​ឡើង​វិញ។"
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "ប្រវត្តិរូប​នេះ​ត្រូវ​បាន​ចាក់សោ ហើយ​មិន​អាច​បច្ចុប្បន្នភាព​បាន​ទេ។"
 
@@ -3438,7 +3438,7 @@ msgstr "ទិន្នន័យ​របស់​អ្នក​ត្រូវ
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "ទិន្នន័យ​របស់​អ្នក​ត្រូវ​បាន​រក្សាទុក​ដោយ​សុវត្ថិភាព ហើយ​មិនដែល​ត្រូវ​បាន​ចែករំលែក​ជាមួយ​ភាគី​ទីបី​ទេ។ អ្នក​ក៏​អាច​ដំឡើង Reactive Resume លើ​ម៉ាស៊ីន​បម្រើ​ផ្ទាល់ខ្លួន​របស់​អ្នក ដើម្បី​មាន​សិទ្ធિ​ត្រួតត្រា​លើ​ទិន្នន័យ​របស់​អ្នក​ដល់​ខ្ពស់​បំផុត​ផង​ដែរ។"
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "មិនអាចរក្សាទុកការផ្លាស់ប្តូរចុងក្រោយបំផុតរបស់អ្នកបានទេ។"
 
@@ -3495,4 +3495,3 @@ msgstr "បង្រួម"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Zulu"
-
diff --git a/apps/web/locales/kn-IN.po b/apps/web/locales/kn-IN.po
index 83305ba94..e2de00937 100644
--- a/apps/web/locales/kn-IN.po
+++ b/apps/web/locales/kn-IN.po
@@ -2981,7 +2981,7 @@ msgstr "ಇದು ನಿಮ್ಮ ರೆಸ್ಯೂಮ್‌ಗಾಗಿ URL 
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "ಇದು AI ಪ್ರೊವೈಡರ್‌ನ ಪ್ರತಿಕ್ರಿಯೆಯ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿ ಕೆಲ ನಿಮಿಷಗಳು ತೆಗೆದುಕೊಳ್ಳಬಹುದು. ದಯವಿಟ್ಟು ವಿಂಡೋ ಅನ್ನು ಮುಚ್ಚಬೇಡಿ ಅಥವಾ ಪುಟವನ್ನು ರಿಫ್ರೆಶ್ ಮಾಡಬೇಡಿ."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "ಈ ರೆಸ್ಯೂಮ್ ಲಾಕ್ ಆಗಿದೆ ಮತ್ತು ಅದನ್ನು ನವೀಕರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."
 
@@ -3438,7 +3438,7 @@ msgstr "ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸ್ಥಳೀಯವಾಗ
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಎಂದಿಗೂ ತೃತೀಯಪಕ್ಷಗಳೊಂದಿಗೆ ಹಂಚಿಕೊಳ್ಳಲಾಗುವುದಿಲ್ಲ. ನಿಮ್ಮ ಡೇಟಾದ ಮೇಲೆ ಸಂಪೂರ್ಣ ನಿಯಂತ್ರಣಕ್ಕಾಗಿ ನಿಮ್ಮದೇ ಸರ್ವರ್‌ಗಳಲ್ಲಿ Reactive Resume ಅನ್ನು ಸ್ವಯಂ-ಹೋಸ್ಟ್ ಮಾಡಬಹುದು."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "ನಿಮ್ಮ ಇತ್ತೀಚಿನ ಬದಲಾವಣೆಗಳನ್ನು ಉಳಿಸಲಾಗಲಿಲ್ಲ."
 
@@ -3495,4 +3495,3 @@ msgstr "ಗಾತ್ರ ಕುಗ್ಗಿಸಿ"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "ಜೂಲೂ"
-
diff --git a/apps/web/locales/ko-KR.po b/apps/web/locales/ko-KR.po
index 521031dcc..0c54254f9 100644
--- a/apps/web/locales/ko-KR.po
+++ b/apps/web/locales/ko-KR.po
@@ -2981,7 +2981,7 @@ msgstr "이것은 이력서에 사용할 URL 친화적인 이름입니다."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "AI 제공자의 응답 속도에 따라 몇 분 정도 걸릴 수 있습니다. 창을 닫거나 페이지를 새로 고치지 마세요."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "이 이력서는 잠겨 있어 수정할 수 없습니다."
 
@@ -3438,7 +3438,7 @@ msgstr "데이터는 브라우저에 로컬로 저장됩니다"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "데이터는 안전하게 저장되며 제3자와 공유되지 않습니다. 또한 Reactive Resume를 직접 서버에 호스팅해 데이터에 대한 완전한 제어권을 가질 수 있습니다."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "최근 변경 내용을 저장할 수 없습니다."
 
@@ -3495,4 +3495,3 @@ msgstr "축소"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "줄루어"
-
diff --git a/apps/web/locales/lt-LT.po b/apps/web/locales/lt-LT.po
index 4ba8204c5..3e61d0cad 100644
--- a/apps/web/locales/lt-LT.po
+++ b/apps/web/locales/lt-LT.po
@@ -2981,7 +2981,7 @@ msgstr "Tai URL draugiškas jūsų gyvenimo aprašymo pavadinimas."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Tai gali užtrukti kelias minutes, priklausomai nuo DI tiekėjo atsako. Neuždarykite lango ir neatnaujinkite puslapio."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Šis gyvenimo aprašymas užrakintas ir negali būti atnaujintas."
 
@@ -3438,7 +3438,7 @@ msgstr "Jūsų duomenys saugomi vietoje"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Jūsų duomenys saugiai laikomi ir niekada nebendrinami su trečiosiomis šalimis. Taip pat galite savarankiškai talpinti „Reactive Resume“ savo serveriuose ir visiškai kontroliuoti savo duomenis."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "Nepavyko išsaugoti naujausių pakeitimų."
 
@@ -3495,4 +3495,3 @@ msgstr "Tolinti"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Zulų"
-
diff --git a/apps/web/locales/lv-LV.po b/apps/web/locales/lv-LV.po
index f16a9ae53..c1a0837ff 100644
--- a/apps/web/locales/lv-LV.po
+++ b/apps/web/locales/lv-LV.po
@@ -2981,7 +2981,7 @@ msgstr "Tas ir URL-draudzīgs nosaukums jūsu CV."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Tas var aizņemt dažas minūtes atkarībā no MI pakalpojumu sniedzēja atbildes. Lūdzu, neaizveriet logu un neatjaunojiet lapu."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Šis CV ir bloķēts un to nevar atjaunināt."
 
@@ -3438,7 +3438,7 @@ msgstr "Jūsu dati tiek glabāti lokāli"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Jūsu dati tiek glabāti droši un nekad netiek kopīgoti ar trešajām pusēm. Reactive Resume varat arī pašhostēt uz saviem serveriem, lai pilnībā kontrolētu savus datus."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "Jūsu jaunākās izmaiņas nevarēja saglabāt."
 
@@ -3495,4 +3495,3 @@ msgstr "Tālināt"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Zulu"
-
diff --git a/apps/web/locales/ml-IN.po b/apps/web/locales/ml-IN.po
index 0fc47ccd0..0e9856296 100644
--- a/apps/web/locales/ml-IN.po
+++ b/apps/web/locales/ml-IN.po
@@ -2981,7 +2981,7 @@ msgstr "ഇത് നിങ്ങളുടെ റിസ്യൂമിനുള
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "AI പ്രൊവൈഡർ പ്രതികരിക്കുന്ന സമയത്തെ ആശ്രയിച്ച് ഇതിന് കുറച്ച് മിനിറ്റുകൾ എടുക്കാം. ദയവായി വിൻഡോ അടയ്ക്കുകയോ പേജ് റിഫ്രെഷ് ചെയ്യുകയോ ചെയ്യരുത്."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "ഈ റിസ്യൂം ലോക്ക് ചെയ്തതിനാൽ ഇതിനെ അപ്‌ഡേറ്റ് ചെയ്യാനോ ഡിലീറ്റ് ചെയ്യാനോ കഴിയില്ല."
 
@@ -3438,7 +3438,7 @@ msgstr "നിങ്ങളുടെ ഡാറ്റ നിങ്ങളുടെ
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "നിങ്ങളുടെ ഡാറ്റ സുരക്ഷിതമായി സൂക്ഷിക്കപ്പെടുന്നു, ഒരിക്കലും മൂന്നാം കക്ഷികളുമായി പങ്കിടുന്നില്ല. നിങ്ങളുടെ ഡാറ്റയ്‌ക്ക് പൂർണ്ണ നിയന്ത്രണം നേടാൻ Reactive Resume നിങ്ങളുടെ സ്വന്തം സെർവറുകളിൽ സെൽഫ്‑ഹോസ്റ്റ് ചെയ്യാനും നിങ്ങൾക്ക് കഴിയും."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "നിങ്ങളുടെ ഏറ്റവും പുതിയ മാറ്റങ്ങൾ സംരക്ഷിക്കാൻ കഴിഞ്ഞില്ല."
 
@@ -3495,4 +3495,3 @@ msgstr "സൂം ഔട്ട് ചെയ്യുക"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "സൂളു"
-
diff --git a/apps/web/locales/mr-IN.po b/apps/web/locales/mr-IN.po
index bc8229769..ad46dab89 100644
--- a/apps/web/locales/mr-IN.po
+++ b/apps/web/locales/mr-IN.po
@@ -2981,7 +2981,7 @@ msgstr "हा तुमच्या रेझ्युमेसाठी URL-
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "AI प्रोव्हायडरच्या प्रतिसादावर अवलंबून, यासाठी काही मिनिटे लागू शकतात. कृपया विंडो बंद करू नका किंवा पान रीफ्रेश करू नका."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "हा रेझ्युमे लॉक केलेला आहे आणि अपडेट करता किंवा हटवता येणार नाही."
 
@@ -3438,7 +3438,7 @@ msgstr "तुमचा डेटा लोकली साठवला जा
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "तुमचा डेटा सुरक्षितपणे साठवला जातो आणि तृतीय पक्षांसोबत कधीही शेअर केला जात नाही. तुम्ही पूर्ण डेटा कंट्रोलसाठी Reactive Resume स्वतःच्या सर्व्हरवरही होस्ट करू शकता."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "तुमचे नवीनतम बदल जतन केले जाऊ शकले नाहीत."
 
@@ -3495,4 +3495,3 @@ msgstr "बाहेर झूम करा"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "झुलू"
-
diff --git a/apps/web/locales/ms-MY.po b/apps/web/locales/ms-MY.po
index 9270ba61f..962867e96 100644
--- a/apps/web/locales/ms-MY.po
+++ b/apps/web/locales/ms-MY.po
@@ -2981,7 +2981,7 @@ msgstr "Ini ialah nama mesra URL untuk resume anda."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Ini mungkin mengambil masa beberapa minit, bergantung pada respons penyedia AI. Sila jangan tutup tetingkap atau segarkan semula halaman."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Resume ini dikunci dan tidak boleh dikemas kini."
 
@@ -3438,7 +3438,7 @@ msgstr "Data anda disimpan secara setempat"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Data anda disimpan dengan selamat dan tidak pernah dikongsi dengan pihak ketiga. Anda juga boleh menghoskan sendiri Reactive Resume pada pelayan anda untuk kawalan penuh ke atas data anda."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "Perubahan terkini anda tidak dapat disimpan."
 
@@ -3495,4 +3495,3 @@ msgstr "Zum keluar"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Zulu"
-
diff --git a/apps/web/locales/ne-NP.po b/apps/web/locales/ne-NP.po
index fe80e62ad..10b4f63f9 100644
--- a/apps/web/locales/ne-NP.po
+++ b/apps/web/locales/ne-NP.po
@@ -2981,7 +2981,7 @@ msgstr "यो तपाईंको बायोडाटाका लागि
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "यो प्रक्रिया AI प्रदायकको प्रतिक्रियामा भर पर्न जाकाले केही मिनेट लाग्न सक्छ। कृपया विन्डो बन्द नगर्नुहोस् वा पृष्ठ रिफ्रेस नगर्नुहोस्।"
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "यो बायोडाटा हाल लक गरिएको छ र अद्यावधिक गर्न मिल्दैन।"
 
@@ -3438,7 +3438,7 @@ msgstr "तपाईंको डाटा स्थानीय रूपमा
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "तपाईंको डाटा सुरक्षित रूपमा भण्डारण गरिएको छ र तेस्रो पक्षसँग कहिल्यै सेयर गरिँदैन। तपाईंले चाहनु भएमा आफ्नै सर्भरमा Reactive Resume लाई self-host गरेर आफ्नो डाटामा पूर्ण नियन्त्रण राख्न सक्नुहुन्छ।"
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "तपाईंका पछिल्ला परिवर्तनहरू सुरक्षित गर्न सकिएन।"
 
@@ -3495,4 +3495,3 @@ msgstr "जूम आउट"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "जुलु"
-
diff --git a/apps/web/locales/nl-NL.po b/apps/web/locales/nl-NL.po
index 99bdf1614..d8ec058a0 100644
--- a/apps/web/locales/nl-NL.po
+++ b/apps/web/locales/nl-NL.po
@@ -2981,7 +2981,7 @@ msgstr "Dit is een URL-vriendelijke naam voor uw cv."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Dit kan enkele minuten duren, afhankelijk van de reactie van de AI-provider. Sluit het venster niet en ververs de pagina niet."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Dit cv is vergrendeld en kan niet worden bijgewerkt."
 
@@ -3438,7 +3438,7 @@ msgstr "Uw gegevens worden lokaal opgeslagen"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Uw gegevens worden veilig opgeslagen en nooit met derden gedeeld. U kunt Reactive Resume ook zelf op uw eigen servers hosten voor volledige controle over uw gegevens."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "Je laatste wijzigingen konden niet worden opgeslagen."
 
@@ -3495,4 +3495,3 @@ msgstr "Uitzoomen"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Zulu"
-
diff --git a/apps/web/locales/no-NO.po b/apps/web/locales/no-NO.po
index 142498d4b..a233050dd 100644
--- a/apps/web/locales/no-NO.po
+++ b/apps/web/locales/no-NO.po
@@ -2981,7 +2981,7 @@ msgstr "Dette er et URL-vennlig navn på CV-en din."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Dette kan ta noen minutter, avhengig av responsen fra KI-leverandøren. Ikke lukk vinduet eller oppdater siden."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Denne CV-en er låst og kan ikke oppdateres."
 
@@ -3438,7 +3438,7 @@ msgstr "Dataene dine lagres lokalt"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Dataene dine lagres sikkert og deles aldri med tredjeparter. Du kan også selv-hoste Reactive Resume på egne servere for full kontroll over dataene dine."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "De siste endringene dine kunne ikke lagres."
 
@@ -3495,4 +3495,3 @@ msgstr "Zoom ut"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Zulu"
-
diff --git a/apps/web/locales/or-IN.po b/apps/web/locales/or-IN.po
index a630d8780..8be8b1a04 100644
--- a/apps/web/locales/or-IN.po
+++ b/apps/web/locales/or-IN.po
@@ -2981,7 +2981,7 @@ msgstr "ଏହା ଆପଣଙ୍କ ରେଜ୍ୟୁମେ ପାଇଁ URL
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "AI ପ୍ରଦାନକାରୀଙ୍କ ପ୍ରତିକ୍ରିୟା ଉପରେ ନିର୍ଭର କରି, ଏହାକୁ କିଛି ମିନିଟ୍ ଲାଗିପାରେ। ଦୟାକରି ଉଇଣ୍ଡୋଟିକୁ ବନ୍ଦ କରନ୍ତୁ ନାହିଁ କିମ୍ବା ପେଜ୍‌ଟିକୁ ରିଫ୍ରେଶ କରନ୍ତୁ ନାହିଁ।"
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "ଏହି ରେଜ୍ୟୁମେଟି ଲକ୍ ହୋଇଛି ଏବଂ ଅଦ୍ୟତନ କରିହୋଇପାରିବ ନାହିଁ।"
 
@@ -3438,7 +3438,7 @@ msgstr "ଆପଣଙ୍କ ତଥ୍ୟ ସ୍ଥାନୀୟ ଭାବରେ 
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "ଆପଣଙ୍କ ତଥ୍ୟ ସୁରକ୍ଷିତ ଭାବରେ ସଞ୍ଚୟ ହୋଇଛି ଏବଂ କେବେ ମଧ୍ୟ ତୃତୀୟ ପକ୍ଷ ସହ ସେୟାର ହୋଇନାହିଁ। ଆପଣ ଆପଣଙ୍କ ତଥ୍ୟ ଉପରେ ପୂର୍ଣ୍ଣ ନିୟନ୍ତ୍ରଣ ପାଇଁ ଆପଣଙ୍କ ନିଜ ସର୍ଭରଗୁଡିକରେ Reactive Resume କୁ ସ୍ୱୟଂ‑ହୋଷ୍ଟ କରିପାରିବେ।"
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "ଆପଣଙ୍କର ନବୀନତମ ପରିବର୍ତ୍ତନଗୁଡ଼ିକୁ ସେଭ୍ କରାଯାଇପାରିଲା ନାହିଁ।"
 
@@ -3495,4 +3495,3 @@ msgstr "ଜୁମ୍ ଆଉଟ୍ କରନ୍ତୁ"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "ଜୁଲୁ"
-
diff --git a/apps/web/locales/pl-PL.po b/apps/web/locales/pl-PL.po
index d98ad285d..ed8194629 100644
--- a/apps/web/locales/pl-PL.po
+++ b/apps/web/locales/pl-PL.po
@@ -2981,7 +2981,7 @@ msgstr "To przyjazna dla adresu URL nazwa Twojego CV."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "To może potrwać kilka minut, w zależności od czasu odpowiedzi dostawcy AI. Nie zamykaj okna ani nie odświeżaj strony."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "To CV jest zablokowane i nie można go aktualizować."
 
@@ -3438,7 +3438,7 @@ msgstr "Twoje dane są przechowywane lokalnie"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Twoje dane są przechowywane w bezpieczny sposób i nigdy nie są udostępniane podmiotom trzecim. Możesz też samodzielnie hostować Reactive Resume na własnych serwerach, aby mieć pełną kontrolę nad swoimi danymi."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "Nie udało się zapisać ostatnich zmian."
 
@@ -3495,4 +3495,3 @@ msgstr "Pomniejsz"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Zulu"
-
diff --git a/apps/web/locales/pt-BR.po b/apps/web/locales/pt-BR.po
index 18c00c9f7..7bc65c10f 100644
--- a/apps/web/locales/pt-BR.po
+++ b/apps/web/locales/pt-BR.po
@@ -2981,7 +2981,7 @@ msgstr "Este é um nome amigável para URL do seu currículo."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Isso pode levar alguns minutos, dependendo da resposta do provedor de IA. Não feche a janela nem atualize a página."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Este currículo está bloqueado e não pode ser atualizado."
 
@@ -3438,7 +3438,7 @@ msgstr "Seus dados são armazenados localmente"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Seus dados são armazenados com segurança e nunca são compartilhados com terceiros. Você também pode auto-hospedar o Reactive Resume em seus próprios servidores para ter controle total sobre seus dados."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "Não foi possível salvar suas últimas alterações."
 
@@ -3495,4 +3495,3 @@ msgstr "Diminuir zoom"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Zulu"
-
diff --git a/apps/web/locales/pt-PT.po b/apps/web/locales/pt-PT.po
index fc6295286..d6db0a951 100644
--- a/apps/web/locales/pt-PT.po
+++ b/apps/web/locales/pt-PT.po
@@ -2981,7 +2981,7 @@ msgstr "Este é um nome compatível com URL para o seu currículo."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Isto pode demorar alguns minutos, dependendo da resposta do fornecedor de IA. Não feche a janela nem atualize a página."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Este currículo está bloqueado e não pode ser atualizado."
 
@@ -3438,7 +3438,7 @@ msgstr "Os seus dados são armazenados localmente"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Os seus dados são armazenados em segurança e nunca são partilhados com terceiros. Também pode auto-hospedar o Reactive Resume nos seus próprios servidores para ter controlo total sobre os seus dados."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "Não foi possível guardar as suas últimas alterações."
 
@@ -3495,4 +3495,3 @@ msgstr "Afastar"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Zulu"
-
diff --git a/apps/web/locales/ro-RO.po b/apps/web/locales/ro-RO.po
index 4f77e9f76..fb6821111 100644
--- a/apps/web/locales/ro-RO.po
+++ b/apps/web/locales/ro-RO.po
@@ -2981,7 +2981,7 @@ msgstr "Acesta este un nume prietenos cu URL-ul pentru CV."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Acest lucru poate dura câteva minute, în funcție de răspunsul furnizorului AI. Vă rugăm să nu închideți fereastra și să nu reîncărcați pagina."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Acest CV este blocat și nu poate fi actualizat."
 
@@ -3438,7 +3438,7 @@ msgstr "Datele dvs. sunt stocate local"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Datele dvs. sunt stocate în siguranță și nu sunt niciodată partajate cu terți. De asemenea, puteți auto-găzdui Reactive Resume pe propriile servere pentru control complet asupra datelor."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "Ultimele modificări ale dvs. nu au putut fi salvate."
 
@@ -3495,4 +3495,3 @@ msgstr "Micșorează"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Zulu"
-
diff --git a/apps/web/locales/ru-RU.po b/apps/web/locales/ru-RU.po
index 9641c9cbf..b75eb94c6 100644
--- a/apps/web/locales/ru-RU.po
+++ b/apps/web/locales/ru-RU.po
@@ -2981,7 +2981,7 @@ msgstr "Это удобное для URL название вашего резю
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Это может занять несколько минут, в зависимости от времени ответа провайдера ИИ. Пожалуйста, не закрывайте окно и не обновляйте страницу."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Это резюме заблокировано и не может быть обновлено."
 
@@ -3438,7 +3438,7 @@ msgstr "Ваши данные хранятся локально"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Ваши данные надежно хранятся и никогда не передаются третьим лицам. Вы также можете развернуть Reactive Resume на своих серверах, чтобы полностью контролировать свои данные."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "Ваши последние изменения не удалось сохранить."
 
@@ -3495,4 +3495,3 @@ msgstr "Уменьшить"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Зулу"
-
diff --git a/apps/web/locales/sk-SK.po b/apps/web/locales/sk-SK.po
index 2c4f3dd6c..f10e05511 100644
--- a/apps/web/locales/sk-SK.po
+++ b/apps/web/locales/sk-SK.po
@@ -2981,7 +2981,7 @@ msgstr "Toto je URL‑prívetivý názov tvojho životopisu."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Môže to trvať niekoľko minút v závislosti od odozvy poskytovateľa AI. Prosím, nezatváraj okno ani neobnovuj stránku."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Tento životopis je uzamknutý a nemožno ho aktualizovať."
 
@@ -3438,7 +3438,7 @@ msgstr "Tvoje dáta sú uložené lokálne"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Tvoje dáta sú bezpečne uložené a nikdy sa nezdieľajú s tretími stranami. Reactive Resume si môžeš tiež hostovať na vlastných serveroch a mať nad dátami úplnú kontrolu."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "Vaše posledné zmeny sa nepodarilo uložiť."
 
@@ -3495,4 +3495,3 @@ msgstr "Oddialiť"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Zulu"
-
diff --git a/apps/web/locales/sl-SI.po b/apps/web/locales/sl-SI.po
index fbc0ce97e..7acd79fd4 100644
--- a/apps/web/locales/sl-SI.po
+++ b/apps/web/locales/sl-SI.po
@@ -2981,7 +2981,7 @@ msgstr "To je ime vašega življenjepisa, ki je prijazno do URL-jev."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "To lahko traja nekaj minut, odvisno od odziva AI ponudnika. Prosimo, ne zaprite okna ali osvežite strani."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Ta življenjepis je zaklenjen in ga ni mogoče posodobiti."
 
@@ -3438,7 +3438,7 @@ msgstr "Vaši podatki so shranjeni lokalno"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Vaši podatki so varno shranjeni in se nikoli ne delijo s tretjimi osebami. Reactive Življenjepis lahko tudi gostite sami na svojih strežnikih za popoln nadzor nad svojimi podatki."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "Vaših zadnjih sprememb ni bilo mogoče shraniti."
 
@@ -3495,4 +3495,3 @@ msgstr "Oddalji"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Zuluščina"
-
diff --git a/apps/web/locales/sq-AL.po b/apps/web/locales/sq-AL.po
index 54c596515..e81839a84 100644
--- a/apps/web/locales/sq-AL.po
+++ b/apps/web/locales/sq-AL.po
@@ -2981,7 +2981,7 @@ msgstr "Ky është një emër miqësor për URL për CV-në tuaj."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Kjo mund të zgjasë disa minuta, në varësi të përgjigjes së ofruesit të AI. Ju lutemi mos e mbyllni dritaren dhe mos rifreskoni faqen."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Kjo CV është e kyçur dhe nuk mund të përditësohet."
 
@@ -3438,7 +3438,7 @@ msgstr "Të dhënat tuaja ruhen lokalisht"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Të dhënat tuaja ruhen në mënyrë të sigurt dhe nuk ndahen kurrë me palë të treta. Ju gjithashtu mund ta self-host-oni Reactive Resume në serverët tuaj për kontroll të plotë mbi të dhënat tuaja."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "Ndryshimet tuaja të fundit nuk mund të ruheshin."
 
@@ -3495,4 +3495,3 @@ msgstr "Zvogëlo"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Zulu"
-
diff --git a/apps/web/locales/sr-SP.po b/apps/web/locales/sr-SP.po
index 9c87dfaba..d4869097b 100644
--- a/apps/web/locales/sr-SP.po
+++ b/apps/web/locales/sr-SP.po
@@ -2981,7 +2981,7 @@ msgstr "Ово је URL-пријатељско име за ваш резиме."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Ово може потрајати неколико минута, у зависности од одзива AI провајдера. Немојте затварати прозор нити освежавати страницу."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Овај резиме је закључан и не може се ажурирати."
 
@@ -3438,7 +3438,7 @@ msgstr "Ваши подаци се чувају локално"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Ваши подаци се чувају безбедно и никада се не деле са трећим странама. Такође можете самостално хостовати Реактивни Резиме на сопственим серверима за потпуну контролу над подацима."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "Ваше последње измене нису могле бити сачуване."
 
@@ -3495,4 +3495,3 @@ msgstr "Умањи"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Зулу"
-
diff --git a/apps/web/locales/sv-SE.po b/apps/web/locales/sv-SE.po
index e67a1bffe..cbc8fb95e 100644
--- a/apps/web/locales/sv-SE.po
+++ b/apps/web/locales/sv-SE.po
@@ -2981,7 +2981,7 @@ msgstr "Detta är ett URL-vänligt namn för ditt CV."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Detta kan ta några minuter, beroende på svaret från AI-leverantören. Stäng inte fönstret och uppdatera inte sidan."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Detta CV är låst och kan inte uppdateras."
 
@@ -3438,7 +3438,7 @@ msgstr "Dina data lagras lokalt"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Dina data lagras säkert och delas aldrig med tredje part. Du kan också själv hosta Reactive Resume på dina egna servrar för full kontroll över dina data."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "Dina senaste ändringar kunde inte sparas."
 
@@ -3495,4 +3495,3 @@ msgstr "Zooma ut"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Zulu"
-
diff --git a/apps/web/locales/ta-IN.po b/apps/web/locales/ta-IN.po
index b13fe5c93..7ffba24b6 100644
--- a/apps/web/locales/ta-IN.po
+++ b/apps/web/locales/ta-IN.po
@@ -2981,7 +2981,7 @@ msgstr "இது உங்கள் ரெஸ்யூமிக்கான URL
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "இது சில நிமிடங்கள் ஆகலாம்; இது AI வழங்குநரின் பதிலைப் பொருத்தது. தயவுசெய்து சாளரத்தை மூடவோ பக்கத்தை மீண்டும் ஏற்றவோ செய்யாதீர்கள்."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "இந்த ரெஸ்யூமி பூட்டப்பட்டுள்ளது மற்றும் புதுப்பிக்க முடியாது."
 
@@ -3438,7 +3438,7 @@ msgstr "உங்கள் தரவு உங்கள் உலாவியி
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "உங்கள் தரவு பாதுகாப்பாக சேமிக்கப்படுகிறது மற்றும் மூன்றாம் தரப்புகளுடன் ஒருபோதும் பகிரப்படாது. உங்கள் தரவு மீது முழு கட்டுப்பாட்டிற்காக Reactive Resume-ஐ உங்கள் சொந்த சேவையகங்களில் தானே ஹோஸ்ட் செய்யவும் முடியும்."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "உங்கள் சமீபத்திய மாற்றங்களைச் சேமிக்க முடியவில்லை."
 
@@ -3495,4 +3495,3 @@ msgstr "சிறிதாக்கு"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "ஜூலு"
-
diff --git a/apps/web/locales/te-IN.po b/apps/web/locales/te-IN.po
index e71ae3ab6..9e285027e 100644
--- a/apps/web/locales/te-IN.po
+++ b/apps/web/locales/te-IN.po
@@ -2981,7 +2981,7 @@ msgstr "ఇది మీ రెజ్యూమ్‌కి URL-ప్రియ
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "AI ప్రొవైడర్‌ స్పందనపై ఆధారపడి, ఇది కొన్ని నిమిషాలు పడవచ్చు. దయచేసి విండోను మూసివేయకండి లేదా పేజీ రిఫ్రెష్ చేయకండి."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "ఈ రెజ్యూమ్ లాక్ చేయబడింది మరియు నవీకరించలేరు."
 
@@ -3438,7 +3438,7 @@ msgstr "మీ డేటా లోకల్‌గా నిల్వ చేయ
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "మీ డేటా భద్రంగా నిల్వ చేయబడుతుంది, మూడవ పక్షాలతో ఎప్పుడూ పంచుకోబడదు. మీ డేటాపై పూర్తి నియంత్రణ కోసం మీరు Reactive Resumeను మీ సొంత సర్వర్లపై హోస్ట్ చేసుకోవచ్చు."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "మీ తాజా మార్పులు సేవ్ చేయబడలేదు."
 
@@ -3495,4 +3495,3 @@ msgstr "జూమ్ అవుట్ చేయండి"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "జులు"
-
diff --git a/apps/web/locales/th-TH.po b/apps/web/locales/th-TH.po
index 561aded4c..03eafb54e 100644
--- a/apps/web/locales/th-TH.po
+++ b/apps/web/locales/th-TH.po
@@ -2981,7 +2981,7 @@ msgstr "นี่คือชื่อเรซูเม่ที่เหมา
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "อาจใช้เวลาสักครู่ขึ้นอยู่กับการตอบสนองของผู้ให้บริการ AI กรุณาอย่าปิดหน้าต่างหรือรีเฟรชหน้าเว็บ"
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "เรซูเม่นี้ถูกล็อกและไม่สามารถอัปเดตได้"
 
@@ -3438,7 +3438,7 @@ msgstr "ข้อมูลของคุณถูกจัดเก็บไว
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "ข้อมูลของคุณถูกจัดเก็บไว้อย่างปลอดภัยและจะไม่ถูกแชร์กับบุคคลที่สาม คุณยังสามารถโฮสต์ Reactive Resume ด้วยตัวเองบนเซิร์ฟเวอร์ของคุณเพื่อควบคุมข้อมูลได้อย่างสมบูรณ์."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "ไม่สามารถบันทึกการเปลี่ยนแปลงล่าสุดของคุณได้"
 
@@ -3495,4 +3495,3 @@ msgstr "ซูมออก"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "ซูลู"
-
diff --git a/apps/web/locales/tr-TR.po b/apps/web/locales/tr-TR.po
index 8b2036186..c0ae9aa88 100644
--- a/apps/web/locales/tr-TR.po
+++ b/apps/web/locales/tr-TR.po
@@ -2981,7 +2981,7 @@ msgstr "Bu, özgeçmişiniz için URL dostu bir isimdir."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Bu, yapay zeka sağlayıcısının yanıtına bağlı olarak birkaç dakika sürebilir. Lütfen pencereyi kapatmayın veya sayfayı yenilemeyin."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Bu özgeçmiş kilitli ve güncellenemez."
 
@@ -3438,7 +3438,7 @@ msgstr "Verileriniz yerel olarak depolanıyor"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Verileriniz güvenli bir şekilde saklanır ve asla üçüncü partilerle paylaşılmaz. Kendi sunucularınızda Reactive Resume'u barındırarak verileriniz üzerinde tam kontrol sahibi olabilirsiniz."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "Son değişiklikleriniz kaydedilemedi."
 
@@ -3495,4 +3495,3 @@ msgstr "Uzaklaştır"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Zulu"
-
diff --git a/apps/web/locales/uk-UA.po b/apps/web/locales/uk-UA.po
index 20ff2ec87..69d7c67b1 100644
--- a/apps/web/locales/uk-UA.po
+++ b/apps/web/locales/uk-UA.po
@@ -2981,7 +2981,7 @@ msgstr "Це ім'я вашого резюме, пристосоване для
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Це може зайняти кілька хвилин, залежно від відповіді AI-провайдера. Будь ласка, не закривайте вікно і не оновлюйте сторінку."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Це резюме заблоковано і не може бути оновлене."
 
@@ -3438,7 +3438,7 @@ msgstr "Ваші дані зберігаються локально"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Ваші дані зберігаються безпечно і ніколи не передаються третім особам. Ви також можете самостійно розгорнути Reactive Resume на власних серверах для повного контролю над своїми даними."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "Не вдалося зберегти ваші останні зміни."
 
@@ -3495,4 +3495,3 @@ msgstr "Зменшити"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Зулу"
-
diff --git a/apps/web/locales/uz-UZ.po b/apps/web/locales/uz-UZ.po
index bfa3318b7..5b8d880f8 100644
--- a/apps/web/locales/uz-UZ.po
+++ b/apps/web/locales/uz-UZ.po
@@ -2981,7 +2981,7 @@ msgstr "Bu rezyume uchun URL uchun qulay ism."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Bu AI provayderining javobiga qarab bir necha daqiqa davom etishi mumkin. Iltimos, oynani yoping yoki sahifani yangilamang."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Ushbu rezyume bloklangan va yangilab boʻlmaydi."
 
@@ -3438,7 +3438,7 @@ msgstr "Maʼlumotlaringiz lokal tarzda saqlanadi"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Maʼlumotlaringiz xavfsiz saqlanadi va uchinchi tomonlarga hech qachon ulashilmaydi. Shuningdek, rezyume qurilmasini o‘z serverlaringizda mustaqil joylashtirishingiz va maʼlumotlaringiz ustidan to‘liq nazorat qilishingiz mumkin."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "So'nggi o'zgarishlaringizni saqlab bo'lmadi."
 
@@ -3495,4 +3495,3 @@ msgstr "Kichraytirish"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Zulu"
-
diff --git a/apps/web/locales/vi-VN.po b/apps/web/locales/vi-VN.po
index 1d9bb1296..d232cd394 100644
--- a/apps/web/locales/vi-VN.po
+++ b/apps/web/locales/vi-VN.po
@@ -2981,7 +2981,7 @@ msgstr "Đây là tên thân thiện với URL cho hồ sơ của bạn."
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "Sẽ mất vài phút, tùy thuộc vào tốc độ phản hồi của nhà cung cấp AI. Vui lòng không đóng cửa sổ hoặc làm mới trang."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "Hồ sơ này đã bị khóa và không thể cập nhật."
 
@@ -3438,7 +3438,7 @@ msgstr "Dữ liệu của bạn được lưu trữ cục bộ"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "Dữ liệu của bạn được lưu trữ an toàn và không bao giờ chia sẻ với bên thứ ba. Bạn cũng có thể tự host Reactive Resume trên máy chủ của riêng mình để kiểm soát hoàn toàn dữ liệu của mình."
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "Những thay đổi gần đây của bạn không thể được lưu lại."
 
@@ -3495,4 +3495,3 @@ msgstr "Thu nhỏ"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "Zulu"
-
diff --git a/apps/web/locales/zh-CN.po b/apps/web/locales/zh-CN.po
index 783a8165d..51c0adda0 100644
--- a/apps/web/locales/zh-CN.po
+++ b/apps/web/locales/zh-CN.po
@@ -2981,7 +2981,7 @@ msgstr "这是一个适合放在 URL 中的简历名称。"
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "这可能需要几分钟时间，具体取决于 AI 服务提供商的响应速度。请不要关闭窗口或刷新页面。"
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "这份简历已被锁定，无法更新。"
 
@@ -3438,7 +3438,7 @@ msgstr "你的数据将存储在本地"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "你的数据会被安全存储，且绝不会与第三方共享。你也可以在自己的服务器上自托管 Reactive Resume，以完全掌控你的数据。"
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "您所做的最新更改未能保存。"
 
@@ -3495,4 +3495,3 @@ msgstr "缩小"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "祖鲁语"
-
diff --git a/apps/web/locales/zh-TW.po b/apps/web/locales/zh-TW.po
index 1bafe9ce5..58e26d183 100644
--- a/apps/web/locales/zh-TW.po
+++ b/apps/web/locales/zh-TW.po
@@ -2981,7 +2981,7 @@ msgstr "這是用於履歷的 URL 友善名稱。"
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr "這可能需要幾分鐘，取決於 AI 服務提供者的回應時間。請勿關閉視窗或重新整理頁面。"
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr "這份履歷已被鎖定，無法更新。"
 
@@ -3438,7 +3438,7 @@ msgstr "您的資料將儲存在本機裝置中"
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr "您的資料會被安全保存，且絕不會分享給第三方。您也可以在自有伺服器上自行託管 Reactive Resume，完全掌控自己的資料。"
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr "您所做的最新變更未能儲存。"
 
@@ -3495,4 +3495,3 @@ msgstr "縮小"
 #: src/libs/locale.ts
 msgid "Zulu"
 msgstr "祖魯語"
-
diff --git a/apps/web/locales/zu-ZA.po b/apps/web/locales/zu-ZA.po
index 270de6665..f2d6bbd9a 100644
--- a/apps/web/locales/zu-ZA.po
+++ b/apps/web/locales/zu-ZA.po
@@ -2976,7 +2976,7 @@ msgstr ""
 msgid "This may take a few minutes, depending on the response of the AI provider. Please do not close the window or refresh the page."
 msgstr ""
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "This resume is locked and cannot be updated."
 msgstr ""
 
@@ -3433,7 +3433,7 @@ msgstr ""
 msgid "Your data is stored securely and is never shared with third parties. You can also self-host Reactive Resume on your own servers for complete control over your data."
 msgstr ""
 
-#: src/components/resume/use-resume.ts
+#: src/components/resume/builder-resume-draft.ts
 msgid "Your latest changes could not be saved."
 msgstr ""
 
diff --git a/apps/web/package.json b/apps/web/package.json
index 2fc778fd7..5c2766d2b 100644
--- a/apps/web/package.json
+++ b/apps/web/package.json
@@ -68,7 +68,6 @@
 		"cmdk": "^1.1.1",
 		"drizzle-orm": "1.0.0-beta.22",
 		"es-toolkit": "^1.46.1",
-		"fast-deep-equal": "^3.1.3",
 		"fuse.js": "^7.3.0",
 		"immer": "^11.1.7",
 		"js-cookie": "^3.0.5",
@@ -86,7 +85,6 @@
 		"ts-pattern": "^5.9.0",
 		"usehooks-ts": "^3.1.1",
 		"zod": "^4.4.3",
-		"zundo": "^2.3.0",
 		"zustand": "^5.0.13"
 	},
 	"devDependencies": {
diff --git a/apps/web/src/components/resume/use-resume.ts b/apps/web/src/components/resume/builder-resume-draft.ts
similarity index 61%
rename from apps/web/src/components/resume/use-resume.ts
rename to apps/web/src/components/resume/builder-resume-draft.ts
index 42ae89720..b9b90b5d9 100644
--- a/apps/web/src/components/resume/use-resume.ts
+++ b/apps/web/src/components/resume/builder-resume-draft.ts
@@ -2,13 +2,11 @@ import type { ResumeData } from "@reactive-resume/schema/resume/data";
 import type { QueryClient, QueryKey } from "@tanstack/react-query";
 import type { WritableDraft } from "immer";
 import { t } from "@lingui/core/macro";
-import { useQuery, useQueryClient } from "@tanstack/react-query";
+import { useQueryClient } from "@tanstack/react-query";
 import { useParams } from "@tanstack/react-router";
 import { debounce } from "es-toolkit";
-import isDeepEqual from "fast-deep-equal";
 import { useCallback, useEffect } from "react";
 import { toast } from "sonner";
-import { temporal } from "zundo";
 import { immer } from "zustand/middleware/immer";
 import { create } from "zustand/react";
 import { orpc } from "@/libs/orpc/client";
@@ -40,8 +38,6 @@ type ResumeStoreActions = {
 
 type ResumeStore = ResumeStoreState & ResumeStoreActions;
 
-type PartializedState = { data: ResumeData | null };
-
 type Runtime = {
 	abortController: AbortController;
 	queryClient?: QueryClient;
@@ -50,8 +46,6 @@ type Runtime = {
 	beforeUnloadHandler?: () => void;
 };
 
-const HISTORY_LIMIT = 100;
-const GROUPED_HISTORY_MS = 250;
 const SAVE_DEBOUNCE_MS = 500;
 const runtimes = new Map<string, Runtime>();
 
@@ -141,81 +135,66 @@ function syncCurrentResume(id: string) {
 }
 
 export const useResumeStore = create<ResumeStore>()(
-	temporal(
-		immer((set, get) => ({
-			resume: null,
-			resumeId: undefined,
-			isReady: false,
+	immer((set, get) => ({
+		resume: null,
+		resumeId: undefined,
+		isReady: false,
 
-			initialize: (resume) => {
-				set((state) => {
-					state.resume = resume;
-					state.resumeId = resume?.id;
-					state.isReady = resume !== null;
-				});
-
-				useResumeStore.temporal.getState().clear();
-			},
-
-			reset: () => {
-				set((state) => {
-					state.resume = null;
-					state.resumeId = undefined;
-					state.isReady = false;
-				});
-
-				useResumeStore.temporal.getState().clear();
-			},
-
-			patchResume: (fn) => {
-				set((state) => {
-					if (!state.resume) return;
-					fn(state.resume as WritableDraft<Resume>);
-				});
-			},
-
-			mergeResumeMetadata: (resume) => {
-				set((state) => {
-					if (!state.resume || state.resume.id !== resume.id) return;
-
-					state.resume.name = resume.name;
-					state.resume.slug = resume.slug;
-					state.resume.tags = resume.tags;
-					state.resume.isLocked = resume.isLocked;
-					state.resume.hasPassword = resume.hasPassword;
-					state.resume.isPublic = resume.isPublic;
-				});
-			},
-
-			updateResumeData: (fn) => {
-				const currentResume = get().resume;
-				if (!currentResume) return;
-
-				if (currentResume.isLocked) {
-					lockedToastId = toast.error(t`This resume is locked and cannot be updated.`, {
-						id: lockedToastId,
-					});
-					return;
-				}
-
-				set((state) => {
-					if (!state.resume) return;
-					fn(state.resume.data as WritableDraft<ResumeData>);
-				});
-
-				syncCurrentResume(currentResume.id);
-			},
-		})),
-		{
-			partialize: (state): PartializedState => ({ data: state.resume?.data ?? null }),
-			equality: (pastState, currentState) => isDeepEqual(pastState, currentState),
-			limit: HISTORY_LIMIT,
-			handleSet: (handleSet) =>
-				debounce((state: Parameters<typeof handleSet>[0], replace?: Parameters<typeof handleSet>[1]) => {
-					handleSet(state as never, replace as never);
-				}, GROUPED_HISTORY_MS) as typeof handleSet,
+		initialize: (resume) => {
+			set((state) => {
+				state.resume = resume;
+				state.resumeId = resume?.id;
+				state.isReady = resume !== null;
+			});
 		},
-	),
+
+		reset: () => {
+			set((state) => {
+				state.resume = null;
+				state.resumeId = undefined;
+				state.isReady = false;
+			});
+		},
+
+		patchResume: (fn) => {
+			set((state) => {
+				if (!state.resume) return;
+				fn(state.resume as WritableDraft<Resume>);
+			});
+		},
+
+		mergeResumeMetadata: (resume) => {
+			set((state) => {
+				if (!state.resume || state.resume.id !== resume.id) return;
+
+				state.resume.name = resume.name;
+				state.resume.slug = resume.slug;
+				state.resume.tags = resume.tags;
+				state.resume.isLocked = resume.isLocked;
+				state.resume.hasPassword = resume.hasPassword;
+				state.resume.isPublic = resume.isPublic;
+			});
+		},
+
+		updateResumeData: (fn) => {
+			const currentResume = get().resume;
+			if (!currentResume) return;
+
+			if (currentResume.isLocked) {
+				lockedToastId = toast.error(t`This resume is locked and cannot be updated.`, {
+					id: lockedToastId,
+				});
+				return;
+			}
+
+			set((state) => {
+				if (!state.resume) return;
+				fn(state.resume.data as WritableDraft<ResumeData>);
+			});
+
+			syncCurrentResume(currentResume.id);
+		},
+	})),
 );
 
 export function useInitializeResumeStore() {
@@ -250,36 +229,8 @@ export function useCurrentBuilderResumeSelector<T>(selector: (resume: Resume) =>
 	return selected;
 }
 
-/**
- * Reads the resume from the builder store when editing, and from query cache
- * for non-builder/public routes.
- */
 export function useResume(): Resume | undefined {
-	const params = useParams({ strict: false }) as {
-		resumeId?: string;
-		username?: string;
-		slug?: string;
-	};
-
-	const builderResume = useResumeStore((state) => {
-		if (!params.resumeId || !state.resume || state.resume.id !== params.resumeId) return undefined;
-		return state.resume;
-	});
-
-	const byIdQuery = useQuery({
-		...orpc.resume.getById.queryOptions({ input: { id: params.resumeId ?? "" } }),
-		enabled: !!params.resumeId,
-	});
-
-	const bySlugQuery = useQuery({
-		...orpc.resume.getBySlug.queryOptions({
-			input: { username: params.username ?? "", slug: params.slug ?? "" },
-		}),
-		enabled: !!(!params.resumeId && params.username && params.slug),
-	});
-
-	if (params.resumeId) return builderResume ?? (byIdQuery.data as Resume | undefined);
-	return bySlugQuery.data as Resume | undefined;
+	return useBuilderResumeSelector((resume) => resume);
 }
 
 export function useCurrentResume(): Resume {
@@ -289,23 +240,7 @@ export function useCurrentResume(): Resume {
 }
 
 export function useResumeData(): ResumeData | undefined {
-	const params = useParams({ strict: false }) as { resumeId?: string; username?: string; slug?: string };
-	const builderData = useBuilderResumeSelector((resume) => resume.data);
-
-	const byIdQuery = useQuery({
-		...orpc.resume.getById.queryOptions({ input: { id: params.resumeId ?? "" } }),
-		enabled: !!params.resumeId,
-	});
-
-	const bySlugQuery = useQuery({
-		...orpc.resume.getBySlug.queryOptions({
-			input: { username: params.username ?? "", slug: params.slug ?? "" },
-		}),
-		enabled: !!(!params.resumeId && params.username && params.slug),
-	});
-
-	if (params.resumeId) return builderData ?? (byIdQuery.data as Resume | undefined)?.data;
-	return (bySlugQuery.data as Resume | undefined)?.data;
+	return useBuilderResumeSelector((resume) => resume.data);
 }
 
 export function useUpdateResumeData() {
diff --git a/apps/web/src/components/resume/preview.browser.tsx b/apps/web/src/components/resume/preview.browser.tsx
index 2369b1927..50233d949 100644
--- a/apps/web/src/components/resume/preview.browser.tsx
+++ b/apps/web/src/components/resume/preview.browser.tsx
@@ -4,9 +4,9 @@ import { AnimatePresence, motion } from "motion/react";
 import { useEffect, useRef, useState } from "react";
 import { cn } from "@reactive-resume/utils/style";
 import { useLocalizedResumeDocument } from "@/libs/resume/pdf-document";
+import { useResumeData } from "./builder-resume-draft";
 import { PdfCanvasDocument, PdfCanvasPage } from "./pdf-canvas";
 import { ResumePreviewLoader } from "./preview.shared";
-import { useResumeData } from "./use-resume";
 
 type PreviewPdf = {
 	file: Blob;
diff --git a/apps/web/src/dialogs/resume/index.tsx b/apps/web/src/dialogs/resume/index.tsx
index 935c97397..7b229d67f 100644
--- a/apps/web/src/dialogs/resume/index.tsx
+++ b/apps/web/src/dialogs/resume/index.tsx
@@ -34,7 +34,7 @@ import {
 } from "@reactive-resume/ui/components/input-group";
 import { generateId, generateRandomName, slugify } from "@reactive-resume/utils/string";
 import { ChipInput } from "@/components/input/chip-input";
-import { usePatchResume } from "@/components/resume/use-resume";
+import { usePatchResume } from "@/components/resume/builder-resume-draft";
 import { useFormBlocker } from "@/hooks/use-form-blocker";
 import { authClient } from "@/libs/auth/client";
 import { getResumeErrorMessage } from "@/libs/error-message";
diff --git a/apps/web/src/dialogs/resume/sections/award.tsx b/apps/web/src/dialogs/resume/sections/award.tsx
index 14704cdfd..adb4a7210 100644
--- a/apps/web/src/dialogs/resume/sections/award.tsx
+++ b/apps/web/src/dialogs/resume/sections/award.tsx
@@ -17,7 +17,7 @@ import { Input } from "@reactive-resume/ui/components/input";
 import { Switch } from "@reactive-resume/ui/components/switch";
 import { RichInput } from "@/components/input/rich-input";
 import { URLInput } from "@/components/input/url-input";
-import { useUpdateResumeData } from "@/components/resume/use-resume";
+import { useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { useDialogStore } from "@/dialogs/store";
 import { useFormBlocker } from "@/hooks/use-form-blocker";
 import { makeSectionItem } from "@/libs/resume/make-section-item";
diff --git a/apps/web/src/dialogs/resume/sections/certification.tsx b/apps/web/src/dialogs/resume/sections/certification.tsx
index a80036dfb..b5729ae03 100644
--- a/apps/web/src/dialogs/resume/sections/certification.tsx
+++ b/apps/web/src/dialogs/resume/sections/certification.tsx
@@ -16,7 +16,7 @@ import { FormControl, FormItem, FormLabel, FormMessage } from "@reactive-resume/
 import { Switch } from "@reactive-resume/ui/components/switch";
 import { RichInput } from "@/components/input/rich-input";
 import { URLInput } from "@/components/input/url-input";
-import { useUpdateResumeData } from "@/components/resume/use-resume";
+import { useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { useDialogStore } from "@/dialogs/store";
 import { useFormBlocker } from "@/hooks/use-form-blocker";
 import { makeSectionItem } from "@/libs/resume/make-section-item";
diff --git a/apps/web/src/dialogs/resume/sections/cover-letter.tsx b/apps/web/src/dialogs/resume/sections/cover-letter.tsx
index 9820ed001..76076c495 100644
--- a/apps/web/src/dialogs/resume/sections/cover-letter.tsx
+++ b/apps/web/src/dialogs/resume/sections/cover-letter.tsx
@@ -14,7 +14,7 @@ import {
 } from "@reactive-resume/ui/components/dialog";
 import { FormControl, FormItem, FormLabel, FormMessage } from "@reactive-resume/ui/components/form";
 import { RichInput } from "@/components/input/rich-input";
-import { useUpdateResumeData } from "@/components/resume/use-resume";
+import { useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { useDialogStore } from "@/dialogs/store";
 import { useFormBlocker } from "@/hooks/use-form-blocker";
 import { makeSectionItem } from "@/libs/resume/make-section-item";
diff --git a/apps/web/src/dialogs/resume/sections/custom.tsx b/apps/web/src/dialogs/resume/sections/custom.tsx
index 0e7a80ff1..2219ed67a 100644
--- a/apps/web/src/dialogs/resume/sections/custom.tsx
+++ b/apps/web/src/dialogs/resume/sections/custom.tsx
@@ -19,7 +19,7 @@ import {
 import { FormControl, FormItem, FormLabel, FormMessage } from "@reactive-resume/ui/components/form";
 import { Input } from "@reactive-resume/ui/components/input";
 import { generateId } from "@reactive-resume/utils/string";
-import { useUpdateResumeData } from "@/components/resume/use-resume";
+import { useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { Combobox } from "@/components/ui/combobox";
 import { useDialogStore } from "@/dialogs/store";
 import { useFormBlocker } from "@/hooks/use-form-blocker";
diff --git a/apps/web/src/dialogs/resume/sections/education.tsx b/apps/web/src/dialogs/resume/sections/education.tsx
index 547644ca0..139d360f1 100644
--- a/apps/web/src/dialogs/resume/sections/education.tsx
+++ b/apps/web/src/dialogs/resume/sections/education.tsx
@@ -16,7 +16,7 @@ import { FormControl, FormItem, FormLabel, FormMessage } from "@reactive-resume/
 import { Switch } from "@reactive-resume/ui/components/switch";
 import { RichInput } from "@/components/input/rich-input";
 import { URLInput } from "@/components/input/url-input";
-import { useUpdateResumeData } from "@/components/resume/use-resume";
+import { useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { useDialogStore } from "@/dialogs/store";
 import { useFormBlocker } from "@/hooks/use-form-blocker";
 import { makeSectionItem } from "@/libs/resume/make-section-item";
diff --git a/apps/web/src/dialogs/resume/sections/experience.tsx b/apps/web/src/dialogs/resume/sections/experience.tsx
index c9632c71a..2f93da7c6 100644
--- a/apps/web/src/dialogs/resume/sections/experience.tsx
+++ b/apps/web/src/dialogs/resume/sections/experience.tsx
@@ -20,7 +20,7 @@ import { Switch } from "@reactive-resume/ui/components/switch";
 import { generateId } from "@reactive-resume/utils/string";
 import { RichInput } from "@/components/input/rich-input";
 import { URLInput } from "@/components/input/url-input";
-import { useUpdateResumeData } from "@/components/resume/use-resume";
+import { useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { useDialogStore } from "@/dialogs/store";
 import { useFormBlocker } from "@/hooks/use-form-blocker";
 import { makeSectionItem } from "@/libs/resume/make-section-item";
diff --git a/apps/web/src/dialogs/resume/sections/interest.tsx b/apps/web/src/dialogs/resume/sections/interest.tsx
index de2385622..59e7bbae7 100644
--- a/apps/web/src/dialogs/resume/sections/interest.tsx
+++ b/apps/web/src/dialogs/resume/sections/interest.tsx
@@ -19,7 +19,7 @@ import { cn } from "@reactive-resume/utils/style";
 import { ChipInput } from "@/components/input/chip-input";
 import { ColorPicker } from "@/components/input/color-picker";
 import { IconPicker } from "@/components/input/icon-picker";
-import { useUpdateResumeData } from "@/components/resume/use-resume";
+import { useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { useDialogStore } from "@/dialogs/store";
 import { useFormBlocker } from "@/hooks/use-form-blocker";
 import { makeSectionItem } from "@/libs/resume/make-section-item";
diff --git a/apps/web/src/dialogs/resume/sections/language.tsx b/apps/web/src/dialogs/resume/sections/language.tsx
index 9484d761a..9c5348620 100644
--- a/apps/web/src/dialogs/resume/sections/language.tsx
+++ b/apps/web/src/dialogs/resume/sections/language.tsx
@@ -15,7 +15,7 @@ import {
 } from "@reactive-resume/ui/components/dialog";
 import { FormControl, FormDescription, FormItem, FormLabel, FormMessage } from "@reactive-resume/ui/components/form";
 import { Slider } from "@reactive-resume/ui/components/slider";
-import { useUpdateResumeData } from "@/components/resume/use-resume";
+import { useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { useDialogStore } from "@/dialogs/store";
 import { useFormBlocker } from "@/hooks/use-form-blocker";
 import { makeSectionItem } from "@/libs/resume/make-section-item";
diff --git a/apps/web/src/dialogs/resume/sections/profile.tsx b/apps/web/src/dialogs/resume/sections/profile.tsx
index 43b2f2c54..0fbb5e48d 100644
--- a/apps/web/src/dialogs/resume/sections/profile.tsx
+++ b/apps/web/src/dialogs/resume/sections/profile.tsx
@@ -26,7 +26,7 @@ import { cn } from "@reactive-resume/utils/style";
 import { ColorPicker } from "@/components/input/color-picker";
 import { IconPicker } from "@/components/input/icon-picker";
 import { URLInput } from "@/components/input/url-input";
-import { useUpdateResumeData } from "@/components/resume/use-resume";
+import { useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { useDialogStore } from "@/dialogs/store";
 import { useFormBlocker } from "@/hooks/use-form-blocker";
 import { makeSectionItem } from "@/libs/resume/make-section-item";
diff --git a/apps/web/src/dialogs/resume/sections/project.tsx b/apps/web/src/dialogs/resume/sections/project.tsx
index b265aacb4..18166de49 100644
--- a/apps/web/src/dialogs/resume/sections/project.tsx
+++ b/apps/web/src/dialogs/resume/sections/project.tsx
@@ -16,7 +16,7 @@ import { FormControl, FormItem, FormLabel, FormMessage } from "@reactive-resume/
 import { Switch } from "@reactive-resume/ui/components/switch";
 import { RichInput } from "@/components/input/rich-input";
 import { URLInput } from "@/components/input/url-input";
-import { useUpdateResumeData } from "@/components/resume/use-resume";
+import { useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { useDialogStore } from "@/dialogs/store";
 import { useFormBlocker } from "@/hooks/use-form-blocker";
 import { makeSectionItem } from "@/libs/resume/make-section-item";
diff --git a/apps/web/src/dialogs/resume/sections/publication.tsx b/apps/web/src/dialogs/resume/sections/publication.tsx
index 554615eed..18b63bea8 100644
--- a/apps/web/src/dialogs/resume/sections/publication.tsx
+++ b/apps/web/src/dialogs/resume/sections/publication.tsx
@@ -16,7 +16,7 @@ import { FormControl, FormItem, FormLabel, FormMessage } from "@reactive-resume/
 import { Switch } from "@reactive-resume/ui/components/switch";
 import { RichInput } from "@/components/input/rich-input";
 import { URLInput } from "@/components/input/url-input";
-import { useUpdateResumeData } from "@/components/resume/use-resume";
+import { useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { useDialogStore } from "@/dialogs/store";
 import { useFormBlocker } from "@/hooks/use-form-blocker";
 import { makeSectionItem } from "@/libs/resume/make-section-item";
diff --git a/apps/web/src/dialogs/resume/sections/reference.tsx b/apps/web/src/dialogs/resume/sections/reference.tsx
index dcd884ab4..52abae340 100644
--- a/apps/web/src/dialogs/resume/sections/reference.tsx
+++ b/apps/web/src/dialogs/resume/sections/reference.tsx
@@ -16,7 +16,7 @@ import { FormControl, FormItem, FormLabel, FormMessage } from "@reactive-resume/
 import { Switch } from "@reactive-resume/ui/components/switch";
 import { RichInput } from "@/components/input/rich-input";
 import { URLInput } from "@/components/input/url-input";
-import { useUpdateResumeData } from "@/components/resume/use-resume";
+import { useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { useDialogStore } from "@/dialogs/store";
 import { useFormBlocker } from "@/hooks/use-form-blocker";
 import { makeSectionItem } from "@/libs/resume/make-section-item";
diff --git a/apps/web/src/dialogs/resume/sections/skill.tsx b/apps/web/src/dialogs/resume/sections/skill.tsx
index 166bbf7a9..11a54f4fb 100644
--- a/apps/web/src/dialogs/resume/sections/skill.tsx
+++ b/apps/web/src/dialogs/resume/sections/skill.tsx
@@ -21,7 +21,7 @@ import { cn } from "@reactive-resume/utils/style";
 import { ChipInput } from "@/components/input/chip-input";
 import { ColorPicker } from "@/components/input/color-picker";
 import { IconPicker } from "@/components/input/icon-picker";
-import { useUpdateResumeData } from "@/components/resume/use-resume";
+import { useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { useDialogStore } from "@/dialogs/store";
 import { useFormBlocker } from "@/hooks/use-form-blocker";
 import { makeSectionItem } from "@/libs/resume/make-section-item";
diff --git a/apps/web/src/dialogs/resume/sections/summary-item.tsx b/apps/web/src/dialogs/resume/sections/summary-item.tsx
index 4c1aa7256..c7e8a28cd 100644
--- a/apps/web/src/dialogs/resume/sections/summary-item.tsx
+++ b/apps/web/src/dialogs/resume/sections/summary-item.tsx
@@ -14,7 +14,7 @@ import {
 } from "@reactive-resume/ui/components/dialog";
 import { FormControl, FormItem, FormLabel, FormMessage } from "@reactive-resume/ui/components/form";
 import { RichInput } from "@/components/input/rich-input";
-import { useUpdateResumeData } from "@/components/resume/use-resume";
+import { useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { useDialogStore } from "@/dialogs/store";
 import { useFormBlocker } from "@/hooks/use-form-blocker";
 import { makeSectionItem } from "@/libs/resume/make-section-item";
diff --git a/apps/web/src/dialogs/resume/sections/volunteer.tsx b/apps/web/src/dialogs/resume/sections/volunteer.tsx
index f208737f1..fe4b42e39 100644
--- a/apps/web/src/dialogs/resume/sections/volunteer.tsx
+++ b/apps/web/src/dialogs/resume/sections/volunteer.tsx
@@ -16,7 +16,7 @@ import { FormControl, FormItem, FormLabel, FormMessage } from "@reactive-resume/
 import { Switch } from "@reactive-resume/ui/components/switch";
 import { RichInput } from "@/components/input/rich-input";
 import { URLInput } from "@/components/input/url-input";
-import { useUpdateResumeData } from "@/components/resume/use-resume";
+import { useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { useDialogStore } from "@/dialogs/store";
 import { useFormBlocker } from "@/hooks/use-form-blocker";
 import { makeSectionItem } from "@/libs/resume/make-section-item";
diff --git a/apps/web/src/dialogs/resume/template/gallery.tsx b/apps/web/src/dialogs/resume/template/gallery.tsx
index aab623061..5c2fea11e 100644
--- a/apps/web/src/dialogs/resume/template/gallery.tsx
+++ b/apps/web/src/dialogs/resume/template/gallery.tsx
@@ -10,14 +10,14 @@ import { HoverCard, HoverCardContent, HoverCardTrigger } from "@reactive-resume/
 import { ScrollArea } from "@reactive-resume/ui/components/scroll-area";
 import { cn } from "@reactive-resume/utils/style";
 import { CometCard } from "@/components/animation/comet-card";
-import { useResume, useUpdateResumeData } from "@/components/resume/use-resume";
+import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { useDialogStore } from "@/dialogs/store";
 import { templates } from "./data";
 
 export function TemplateGalleryDialog(_: DialogProps<"resume.template.gallery">) {
 	const closeDialog = useDialogStore((state) => state.closeDialog);
-	const resume = useResume();
-	const selectedTemplate = resume?.data.metadata.template;
+	const resume = useCurrentResume();
+	const selectedTemplate = resume.data.metadata.template;
 	const updateResumeData = useUpdateResumeData();
 
 	function onSelectTemplate(template: Template) {
diff --git a/apps/web/src/routes/builder/$resumeId/-components/dock.tsx b/apps/web/src/routes/builder/$resumeId/-components/dock.tsx
index 2977129c4..ff9b4dfc0 100644
--- a/apps/web/src/routes/builder/$resumeId/-components/dock.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-components/dock.tsx
@@ -23,7 +23,7 @@ import { Tooltip, TooltipContent, TooltipTrigger } from "@reactive-resume/ui/com
 import { downloadWithAnchor, generateFilename } from "@reactive-resume/utils/file";
 import { buildDocx } from "@reactive-resume/utils/resume/docx";
 import { cn } from "@reactive-resume/utils/style";
-import { useCurrentResume } from "@/components/resume/use-resume";
+import { useCurrentResume } from "@/components/resume/builder-resume-draft";
 import { authClient } from "@/libs/auth/client";
 import { createResumePdfBlob } from "@/libs/resume/pdf-document";
 
diff --git a/apps/web/src/routes/builder/$resumeId/-components/header.tsx b/apps/web/src/routes/builder/$resumeId/-components/header.tsx
index 326a84d88..442329908 100644
--- a/apps/web/src/routes/builder/$resumeId/-components/header.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-components/header.tsx
@@ -21,7 +21,7 @@ import {
 	DropdownMenuSeparator,
 	DropdownMenuTrigger,
 } from "@reactive-resume/ui/components/dropdown-menu";
-import { useCurrentResume, usePatchResume } from "@/components/resume/use-resume";
+import { useCurrentResume, usePatchResume } from "@/components/resume/builder-resume-draft";
 import { useDialogStore } from "@/dialogs/store";
 import { useConfirm } from "@/hooks/use-confirm";
 import { getResumeErrorMessage } from "@/libs/error-message";
diff --git a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/awards.tsx b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/awards.tsx
index 1c574de4d..5f6081564 100644
--- a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/awards.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/awards.tsx
@@ -3,7 +3,7 @@ import type z from "zod";
 import { Trans } from "@lingui/react/macro";
 import { AnimatePresence, Reorder } from "motion/react";
 import { cn } from "@reactive-resume/utils/style";
-import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
+import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { SectionBase } from "../shared/section-base";
 import { SectionAddItemButton, SectionItem } from "../shared/section-item";
 
diff --git a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/basics.tsx b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/basics.tsx
index 75f505e34..f534967ca 100644
--- a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/basics.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/basics.tsx
@@ -4,7 +4,7 @@ import { basicsSchema } from "@reactive-resume/schema/resume/data";
 import { FormControl, FormItem, FormLabel, FormMessage } from "@reactive-resume/ui/components/form";
 import { Input } from "@reactive-resume/ui/components/input";
 import { URLInput } from "@/components/input/url-input";
-import { useCurrentBuilderResumeSelector, useUpdateResumeData } from "@/components/resume/use-resume";
+import { useCurrentBuilderResumeSelector, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { useAppForm } from "@/libs/tanstack-form";
 import { SectionBase } from "../shared/section-base";
 import { CustomFieldsSection } from "./custom-fields";
diff --git a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/certifications.tsx b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/certifications.tsx
index 0ea49b10e..97d80d59f 100644
--- a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/certifications.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/certifications.tsx
@@ -3,7 +3,7 @@ import type z from "zod";
 import { Trans } from "@lingui/react/macro";
 import { AnimatePresence, Reorder } from "motion/react";
 import { cn } from "@reactive-resume/utils/style";
-import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
+import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { SectionBase } from "../shared/section-base";
 import { SectionAddItemButton, SectionItem } from "../shared/section-item";
 
diff --git a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
index e26f1ebdc..4bf7abf34 100644
--- a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/custom.tsx
@@ -32,7 +32,7 @@ import {
 } from "@reactive-resume/ui/components/dropdown-menu";
 import { stripHtml } from "@reactive-resume/utils/string";
 import { cn } from "@reactive-resume/utils/style";
-import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
+import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { useDialogStore } from "@/dialogs/store";
 import { useConfirm } from "@/hooks/use-confirm";
 import { getSectionTitle } from "@/libs/resume/section";
diff --git a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/education.tsx b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/education.tsx
index 325af0294..ab6c11095 100644
--- a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/education.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/education.tsx
@@ -3,7 +3,7 @@ import type z from "zod";
 import { Trans } from "@lingui/react/macro";
 import { AnimatePresence, Reorder } from "motion/react";
 import { cn } from "@reactive-resume/utils/style";
-import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
+import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { SectionBase } from "../shared/section-base";
 import { SectionAddItemButton, SectionItem } from "../shared/section-item";
 
diff --git a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/experience.tsx b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/experience.tsx
index fe63a51fd..52cdf1483 100644
--- a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/experience.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/experience.tsx
@@ -4,7 +4,7 @@ import { plural } from "@lingui/core/macro";
 import { Trans } from "@lingui/react/macro";
 import { AnimatePresence, Reorder } from "motion/react";
 import { cn } from "@reactive-resume/utils/style";
-import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
+import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { SectionBase } from "../shared/section-base";
 import { SectionAddItemButton, SectionItem } from "../shared/section-item";
 
diff --git a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/interests.tsx b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/interests.tsx
index e4d771af2..345a94266 100644
--- a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/interests.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/interests.tsx
@@ -3,7 +3,7 @@ import type z from "zod";
 import { Trans } from "@lingui/react/macro";
 import { AnimatePresence, Reorder } from "motion/react";
 import { cn } from "@reactive-resume/utils/style";
-import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
+import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { SectionBase } from "../shared/section-base";
 import { SectionAddItemButton, SectionItem } from "../shared/section-item";
 
diff --git a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/languages.tsx b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/languages.tsx
index fc9d32913..1ad1f8467 100644
--- a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/languages.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/languages.tsx
@@ -3,7 +3,7 @@ import type z from "zod";
 import { Trans } from "@lingui/react/macro";
 import { AnimatePresence, Reorder } from "motion/react";
 import { cn } from "@reactive-resume/utils/style";
-import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
+import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { SectionBase } from "../shared/section-base";
 import { SectionAddItemButton, SectionItem } from "../shared/section-item";
 
diff --git a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
index 2b1d02efd..db169b2af 100644
--- a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
@@ -17,7 +17,7 @@ import {
 	InputGroupText,
 } from "@reactive-resume/ui/components/input-group";
 import { ColorPicker } from "@/components/input/color-picker";
-import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
+import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { getReadableErrorMessage } from "@/libs/error-message";
 import { orpc } from "@/libs/orpc/client";
 import { useAppForm } from "@/libs/tanstack-form";
diff --git a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/profiles.tsx b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/profiles.tsx
index 7e08d90cf..fbaeb97c6 100644
--- a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/profiles.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/profiles.tsx
@@ -3,7 +3,7 @@ import type z from "zod";
 import { Trans } from "@lingui/react/macro";
 import { AnimatePresence, Reorder } from "motion/react";
 import { cn } from "@reactive-resume/utils/style";
-import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
+import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { SectionBase } from "../shared/section-base";
 import { SectionAddItemButton, SectionItem } from "../shared/section-item";
 
diff --git a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/projects.tsx b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/projects.tsx
index 3c7858999..7521782b7 100644
--- a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/projects.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/projects.tsx
@@ -3,7 +3,7 @@ import type z from "zod";
 import { Trans } from "@lingui/react/macro";
 import { AnimatePresence, Reorder } from "motion/react";
 import { cn } from "@reactive-resume/utils/style";
-import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
+import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { SectionBase } from "../shared/section-base";
 import { SectionAddItemButton, SectionItem } from "../shared/section-item";
 
diff --git a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/publications.tsx b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/publications.tsx
index ba581eca3..bf6e4dedf 100644
--- a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/publications.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/publications.tsx
@@ -3,7 +3,7 @@ import type z from "zod";
 import { Trans } from "@lingui/react/macro";
 import { AnimatePresence, Reorder } from "motion/react";
 import { cn } from "@reactive-resume/utils/style";
-import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
+import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { SectionBase } from "../shared/section-base";
 import { SectionAddItemButton, SectionItem } from "../shared/section-item";
 
diff --git a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/references.tsx b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/references.tsx
index c99841760..6a063eb1f 100644
--- a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/references.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/references.tsx
@@ -3,7 +3,7 @@ import type z from "zod";
 import { Trans } from "@lingui/react/macro";
 import { AnimatePresence, Reorder } from "motion/react";
 import { cn } from "@reactive-resume/utils/style";
-import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
+import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { SectionBase } from "../shared/section-base";
 import { SectionAddItemButton, SectionItem } from "../shared/section-item";
 
diff --git a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/skills.tsx b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/skills.tsx
index 065441e5e..2908305ae 100644
--- a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/skills.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/skills.tsx
@@ -3,7 +3,7 @@ import type z from "zod";
 import { Trans } from "@lingui/react/macro";
 import { AnimatePresence, Reorder } from "motion/react";
 import { cn } from "@reactive-resume/utils/style";
-import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
+import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { SectionBase } from "../shared/section-base";
 import { SectionAddItemButton, SectionItem } from "../shared/section-item";
 
diff --git a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/summary.tsx b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/summary.tsx
index c612cdbce..5c0492d8d 100644
--- a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/summary.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/summary.tsx
@@ -1,5 +1,5 @@
 import { RichInput } from "@/components/input/rich-input";
-import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
+import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { SectionBase } from "../shared/section-base";
 
 export function SummarySectionBuilder() {
diff --git a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/volunteer.tsx b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/volunteer.tsx
index 1233fb03e..d422d2e18 100644
--- a/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/volunteer.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-sidebar/left/sections/volunteer.tsx
@@ -3,7 +3,7 @@ import type z from "zod";
 import { Trans } from "@lingui/react/macro";
 import { AnimatePresence, Reorder } from "motion/react";
 import { cn } from "@reactive-resume/utils/style";
-import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
+import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { SectionBase } from "../shared/section-base";
 import { SectionAddItemButton, SectionItem } from "../shared/section-item";
 
diff --git a/apps/web/src/routes/builder/$resumeId/-sidebar/left/shared/section-base.tsx b/apps/web/src/routes/builder/$resumeId/-sidebar/left/shared/section-base.tsx
index eab1084f1..c01b7f534 100644
--- a/apps/web/src/routes/builder/$resumeId/-sidebar/left/shared/section-base.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-sidebar/left/shared/section-base.tsx
@@ -4,7 +4,7 @@ import { CaretDownIcon } from "@phosphor-icons/react";
 import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "@reactive-resume/ui/components/accordion";
 import { Button } from "@reactive-resume/ui/components/button";
 import { cn } from "@reactive-resume/utils/style";
-import { useCurrentResume } from "@/components/resume/use-resume";
+import { useCurrentResume } from "@/components/resume/builder-resume-draft";
 import { getSectionIcon, getSectionTitle } from "@/libs/resume/section";
 import { useSectionStore } from "../../../-store/section";
 import { SectionDropdownMenu } from "./section-menu";
diff --git a/apps/web/src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx b/apps/web/src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
index 00b1dcb50..b8518a1db 100644
--- a/apps/web/src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-sidebar/left/shared/section-item.tsx
@@ -36,7 +36,7 @@ import {
 	DropdownMenuTrigger,
 } from "@reactive-resume/ui/components/dropdown-menu";
 import { cn } from "@reactive-resume/utils/style";
-import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
+import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { useDialogStore } from "@/dialogs/store";
 import { useConfirm } from "@/hooks/use-confirm";
 import {
diff --git a/apps/web/src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx b/apps/web/src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
index d7ed9d864..223941c0f 100644
--- a/apps/web/src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-sidebar/left/shared/section-menu.tsx
@@ -24,7 +24,7 @@ import {
 	DropdownMenuSubTrigger,
 	DropdownMenuTrigger,
 } from "@reactive-resume/ui/components/dropdown-menu";
-import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
+import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { useDialogStore } from "@/dialogs/store";
 import { useConfirm } from "@/hooks/use-confirm";
 import { usePrompt } from "@/hooks/use-prompt";
diff --git a/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx b/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
index 505f02a77..2bf8152da 100644
--- a/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/design.tsx
@@ -11,7 +11,7 @@ import { ColorPicker } from "@/components/input/color-picker";
 import { IconPicker } from "@/components/input/icon-picker";
 import { LevelTypeCombobox } from "@/components/level/combobox";
 import { LevelDisplay } from "@/components/level/display";
-import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
+import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { useAppForm } from "@/libs/tanstack-form";
 import { SectionBase } from "../shared/section-base";
 
diff --git a/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx b/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
index c4f61d0f0..d81be46b7 100644
--- a/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
@@ -6,7 +6,7 @@ import { toast } from "sonner";
 import { Button } from "@reactive-resume/ui/components/button";
 import { downloadWithAnchor, generateFilename } from "@reactive-resume/utils/file";
 import { buildDocx } from "@reactive-resume/utils/resume/docx";
-import { useResume } from "@/components/resume/use-resume";
+import { useResume } from "@/components/resume/builder-resume-draft";
 import { createResumePdfBlob } from "@/libs/resume/pdf-document";
 import { SectionBase } from "../shared/section-base";
 
diff --git a/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/layout/index.tsx b/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/layout/index.tsx
index c6a1732c6..3014355d7 100644
--- a/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/layout/index.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/layout/index.tsx
@@ -9,7 +9,7 @@ import {
 	InputGroupText,
 } from "@reactive-resume/ui/components/input-group";
 import { Slider } from "@reactive-resume/ui/components/slider";
-import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
+import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { useAppForm } from "@/libs/tanstack-form";
 import { SectionBase } from "../../shared/section-base";
 import { LayoutPages } from "./pages";
diff --git a/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx b/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
index 84d398a3a..ea740784e 100644
--- a/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
@@ -20,7 +20,7 @@ import { match } from "ts-pattern";
 import { Button } from "@reactive-resume/ui/components/button";
 import { Switch } from "@reactive-resume/ui/components/switch";
 import { cn } from "@reactive-resume/utils/style";
-import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
+import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { templates } from "@/dialogs/resume/template/data";
 import { getSectionTitle } from "@/libs/resume/section";
 
diff --git a/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/notes.tsx b/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/notes.tsx
index c11cf6628..ca5a31a95 100644
--- a/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/notes.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/notes.tsx
@@ -1,6 +1,6 @@
 import { Trans } from "@lingui/react/macro";
 import { RichInput } from "@/components/input/rich-input";
-import { useCurrentResume, useUpdateResumeData } from "@/components/resume/use-resume";
+import { useCurrentResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { SectionBase } from "../shared/section-base";
 
 export function NotesSectionBuilder() {
diff --git a/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx b/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
index 174825acc..7953fb841 100644
--- a/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/page.tsx
@@ -11,7 +11,7 @@ import {
 } from "@reactive-resume/ui/components/input-group";
 import { Switch } from "@reactive-resume/ui/components/switch";
 import { getLocaleOptions } from "@/components/locale/combobox";
-import { useResume, useUpdateResumeData } from "@/components/resume/use-resume";
+import { useResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { Combobox } from "@/components/ui/combobox";
 import { useAppForm } from "@/libs/tanstack-form";
 import { SectionBase } from "../shared/section-base";
diff --git a/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx b/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
index 37fe68731..23fb647f1 100644
--- a/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/resume-analysis.tsx
@@ -10,7 +10,7 @@ import { useAIStore } from "@reactive-resume/ai/store";
 import { Alert, AlertDescription } from "@reactive-resume/ui/components/alert";
 import { Badge } from "@reactive-resume/ui/components/badge";
 import { Button } from "@reactive-resume/ui/components/button";
-import { useResume } from "@/components/resume/use-resume";
+import { useResume } from "@/components/resume/builder-resume-draft";
 import { getOrpcErrorMessage } from "@/libs/error-message";
 import { orpc } from "@/libs/orpc/client";
 import { SectionBase } from "../shared/section-base";
diff --git a/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx b/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
index 29988a6b9..fb2a0a2cc 100644
--- a/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
@@ -10,7 +10,7 @@ import { Button } from "@reactive-resume/ui/components/button";
 import { Input } from "@reactive-resume/ui/components/input";
 import { Label } from "@reactive-resume/ui/components/label";
 import { Switch } from "@reactive-resume/ui/components/switch";
-import { useCurrentResume, usePatchResume } from "@/components/resume/use-resume";
+import { useCurrentResume, usePatchResume } from "@/components/resume/builder-resume-draft";
 import { useConfirm } from "@/hooks/use-confirm";
 import { usePrompt } from "@/hooks/use-prompt";
 import { authClient } from "@/libs/auth/client";
diff --git a/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/template.tsx b/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/template.tsx
index d52d9c38a..8280fec3a 100644
--- a/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/template.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/template.tsx
@@ -2,7 +2,7 @@ import { useLingui } from "@lingui/react";
 import { SwapIcon } from "@phosphor-icons/react";
 import { Badge } from "@reactive-resume/ui/components/badge";
 import { Button } from "@reactive-resume/ui/components/button";
-import { useCurrentResume } from "@/components/resume/use-resume";
+import { useCurrentResume } from "@/components/resume/builder-resume-draft";
 import { templates } from "@/dialogs/resume/template/data";
 import { useDialogStore } from "@/dialogs/store";
 import { SectionBase } from "../shared/section-base";
diff --git a/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx b/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
index f7908a6b5..982b97319 100644
--- a/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
+++ b/apps/web/src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
@@ -10,7 +10,7 @@ import {
 	InputGroupText,
 } from "@reactive-resume/ui/components/input-group";
 import { Separator } from "@reactive-resume/ui/components/separator";
-import { useResume, useUpdateResumeData } from "@/components/resume/use-resume";
+import { useResume, useUpdateResumeData } from "@/components/resume/builder-resume-draft";
 import { FontFamilyCombobox, FontWeightCombobox, getNextWeights } from "@/components/typography/combobox";
 import { useAppForm } from "@/libs/tanstack-form";
 import { SectionBase } from "../shared/section-base";
diff --git a/apps/web/src/routes/builder/$resumeId/route.tsx b/apps/web/src/routes/builder/$resumeId/route.tsx
index 02713e175..078de0983 100644
--- a/apps/web/src/routes/builder/$resumeId/route.tsx
+++ b/apps/web/src/routes/builder/$resumeId/route.tsx
@@ -13,7 +13,7 @@ import {
 	useMergeResumeMetadata,
 	useResumeCleanup,
 	useResumeStore,
-} from "@/components/resume/use-resume";
+} from "@/components/resume/builder-resume-draft";
 import { useIsMobile } from "@/hooks/use-mobile";
 import { orpc } from "@/libs/orpc/client";
 import { BuilderHeader } from "./-components/header";
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index d86866741..67dfe71d6 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -218,9 +218,6 @@ importers:
       es-toolkit:
         specifier: ^1.46.1
         version: 1.46.1
-      fast-deep-equal:
-        specifier: ^3.1.3
-        version: 3.1.3
       fuse.js:
         specifier: ^7.3.0
         version: 7.3.0
@@ -272,9 +269,6 @@ importers:
       zod:
         specifier: ^4.4.3
         version: 4.4.3
-      zundo:
-        specifier: ^2.3.0
-        version: 2.3.0(zustand@5.0.13(@types/react@19.2.14)(immer@11.1.7)(react@19.2.6)(use-sync-external-store@1.6.0(react@19.2.6)))
       zustand:
         specifier: ^5.0.13
         version: 5.0.13(@types/react@19.2.14)(immer@11.1.7)(react@19.2.6)(use-sync-external-store@1.6.0(react@19.2.6))
@@ -9034,11 +9028,6 @@ packages:
   zod@4.4.3:
     resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==}
 
-  zundo@2.3.0:
-    resolution: {integrity: sha512-4GXYxXA17SIKYhVbWHdSEU04P697IMyVGXrC2TnzoyohEAWytFNOKqOp5gTGvaW93F/PM5Y0evbGtOPF0PWQwQ==}
-    peerDependencies:
-      zustand: ^4.3.0 || ^5.0.0
-
   zustand@5.0.13:
     resolution: {integrity: sha512-efI2tVaVQPqtOh114loML/Z80Y4NP3yc+Ff0fYiZJPauNeWZeIp/bRFD7I9bfmCOYBh/PHxlglQ9+wvlwnPikQ==}
     engines: {node: '>=12.20.0'}
@@ -17521,10 +17510,6 @@ snapshots:
 
   zod@4.4.3: {}
 
-  zundo@2.3.0(zustand@5.0.13(@types/react@19.2.14)(immer@11.1.7)(react@19.2.6)(use-sync-external-store@1.6.0(react@19.2.6))):
-    dependencies:
-      zustand: 5.0.13(@types/react@19.2.14)(immer@11.1.7)(react@19.2.6)(use-sync-external-store@1.6.0(react@19.2.6))
-
   zustand@5.0.13(@types/react@19.2.14)(immer@11.1.7)(react@19.2.6)(use-sync-external-store@1.6.0(react@19.2.6)):
     optionalDependencies:
       '@types/react': 19.2.14
