chore: update dependencies

This commit is contained in:
Amruth Pillai
2026-09-04 11:05:22 +02:00
parent 0a092ee2a4
commit 84645f122b
76 changed files with 2443 additions and 2644 deletions
-15
View File
@@ -28,21 +28,6 @@ Boundaries: code/commits/PRs written normal.
<!-- caveman-end -->
<!-- graphify-begin -->
## graphify
This project has a knowledge graph at graphify-out/ with god nodes, community structure, and cross-file relationships.
When the user types `/graphify`, use the installed graphify skill or instructions before doing anything else.
Rules:
- For codebase questions, first run `graphify query "<question>"` when graphify-out/graph.json exists. Use `graphify path "<A>" "<B>"` for relationships and `graphify explain "<concept>"` for focused concepts. These return a scoped subgraph, usually much smaller than GRAPH_REPORT.md or raw grep output.
- Dirty graphify-out/ files are expected after hooks or incremental updates; dirty graph files are not a reason to skip graphify. Only skip graphify if the task is about stale or incorrect graph output, or the user explicitly says not to use it.
- If graphify-out/wiki/index.md exists, use it for broad navigation instead of raw source browsing.
- Read graphify-out/GRAPH_REPORT.md only for broad architecture review or when query/path/explain do not surface enough context.
- After modifying code, run `graphify update .` to keep the graph current (AST-only, no API cost).
<!-- graphify-end -->
# AGENTS.md
## Agent skills
+26 -26
View File
@@ -18,23 +18,23 @@
"#react-pdf-renderer": "@react-pdf/renderer"
},
"dependencies": {
"@ai-sdk/anthropic": "^4.0.44",
"@ai-sdk/cerebras": "^3.0.39",
"@ai-sdk/cohere": "^4.0.33",
"@ai-sdk/deepseek": "^3.0.35",
"@ai-sdk/fireworks": "^3.0.42",
"@ai-sdk/google": "^4.0.54",
"@ai-sdk/groq": "^4.0.33",
"@ai-sdk/mistral": "^4.0.35",
"@ai-sdk/openai": "^4.0.50",
"@ai-sdk/openai-compatible": "^3.0.39",
"@ai-sdk/perplexity": "^4.0.34",
"@ai-sdk/togetherai": "^3.0.40",
"@ai-sdk/xai": "^4.0.47",
"@aws-sdk/client-s3": "^3.1119.0",
"@ai-sdk/anthropic": "^4.0.49",
"@ai-sdk/cerebras": "^3.0.43",
"@ai-sdk/cohere": "^4.0.37",
"@ai-sdk/deepseek": "^3.0.39",
"@ai-sdk/fireworks": "^3.0.46",
"@ai-sdk/google": "^4.0.63",
"@ai-sdk/groq": "^4.0.37",
"@ai-sdk/mistral": "^4.0.39",
"@ai-sdk/openai": "^4.0.58",
"@ai-sdk/openai-compatible": "^3.0.43",
"@ai-sdk/perplexity": "^4.0.39",
"@ai-sdk/togetherai": "^3.0.44",
"@ai-sdk/xai": "^4.0.54",
"@aws-sdk/client-s3": "^3.1126.0",
"@better-auth/api-key": "^1.7.2",
"@better-auth/drizzle-adapter": "^1.7.2",
"@better-auth/infra": "^0.4.3",
"@better-auth/infra": "^0.4.5",
"@better-auth/oauth-provider": "^1.7.2",
"@better-auth/passkey": "^1.7.2",
"@bramus/specificity": "^2.4.2",
@@ -46,7 +46,7 @@
"@orpc/openapi": "^1.15.0",
"@orpc/server": "^1.15.0",
"@orpc/zod": "^1.15.0",
"@react-pdf/renderer": "^4.8.1",
"@react-pdf/renderer": "^4.9.0",
"@reactive-resume/api": "workspace:*",
"@reactive-resume/auth": "workspace:*",
"@reactive-resume/db": "workspace:*",
@@ -54,10 +54,10 @@
"@reactive-resume/mcp": "workspace:*",
"@reactive-resume/schema": "workspace:*",
"@reactive-resume/utils": "workspace:*",
"@sindresorhus/slugify": "^3.0.0",
"@sindresorhus/slugify": "^3.0.1",
"@t3-oss/env-core": "^0.13.11",
"@uiw/color-convert": "^2.10.3",
"ai": "^7.0.83",
"ai": "^7.0.92",
"bcrypt": "^6.0.0",
"better-auth": "1.7.2",
"cjk-regex": "^3.4.0",
@@ -65,12 +65,12 @@
"deepmerge-ts": "^8.0.2",
"drizzle-orm": "1.0.0-rc.4",
"drizzle-zod": "1.0.0-beta.14-a36c63d",
"es-toolkit": "^1.51.0",
"es-toolkit": "^1.52.0",
"fast-json-patch": "^3.1.1",
"hono": "^4.13.5",
"jsonrepair": "^3.15.0",
"node-html-parser": "^9.0.1",
"nodemailer": "^9.0.5",
"node-html-parser": "^9.0.3",
"nodemailer": "^10.0.0",
"ollama-ai-provider-v2": "^4.0.1",
"pg": "^8.23.0",
"phosphor-icons-react-pdf": "^0.1.3",
@@ -83,17 +83,17 @@
"ts-pattern": "^5.9.0",
"unique-names-generator": "^4.7.1",
"uuid": "^14.0.2",
"zod": "^4.4.3"
"zod": "^4.5.4"
},
"devDependencies": {
"@reactive-resume/config": "workspace:*",
"@types/node": "^26.4.0",
"@types/node": "^26.4.1",
"@types/pg": "^8.23.1",
"@types/react": "^19.2.18",
"@typescript/native-preview": "7.0.0-dev.20260707.2",
"tsdown": "^0.22.14",
"tsx": "^4.23.12",
"tsdown": "^0.23.0",
"tsx": "^4.23.13",
"typescript": "^7.0.2",
"vitest": "^4.1.11"
"vitest": "^5.0.0"
}
}
+4 -3
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: af\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Afrikaans\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -2857,7 +2857,7 @@ msgstr "john.doe@example.com"
#. Import source option for standard JSON Resume format
#: src/dialogs/resume/import.tsx
msgid "JSON Resume"
msgstr "JSON Resume"
msgstr "JSON-lewe loopbaanopsomming"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
@@ -4880,7 +4880,7 @@ msgstr "Sloweens"
#: src/dialogs/resume/index.tsx
msgid "Slug"
msgstr "Slug"
msgstr "Slak"
#: src/libs/resume/ats.ts
msgid "Some application systems require one before you can submit."
@@ -6569,3 +6569,4 @@ msgstr "Zoem uit"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zoeloe"
+2 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: am\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Amharic\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -6569,3 +6569,4 @@ msgstr "አጉር"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "ዙሉ"
+5 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ar\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Arabic\n"
"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n"
@@ -2857,7 +2857,7 @@ msgstr "john.doe@example.com"
#. Import source option for standard JSON Resume format
#: src/dialogs/resume/import.tsx
msgid "JSON Resume"
msgstr "JSON Resume"
msgstr "استئناف JSON"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
@@ -4061,7 +4061,7 @@ msgstr "Reactive Resume - الانتقال إلى الصفحة الرئيسية"
#. Import source option for current Reactive Resume JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume (JSON)"
msgstr "Reactive Resume (JSON)"
msgstr "استئناف تفاعلي (JSON)"
#: src/routes/_home/-sections/prefooter.tsx
msgid "Reactive Resume gets better because people give it their time. Contributors on GitHub build the features and fix the bugs, translators on Crowdin make it readable in other languages, and donors help keep development going. This project owes its progress to all of them."
@@ -4095,7 +4095,7 @@ msgstr "السيرة الذاتية التفاعلية v<0>{__APP_VERSION__}</0>
#. Import source option for legacy Reactive Resume v4 JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
msgstr "استئناف تفاعلي الإصدار 4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
@@ -6569,3 +6569,4 @@ msgstr "تصغير"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "الزولو"
+2 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: az\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Azerbaijani\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -6569,3 +6569,4 @@ msgstr "Uzaqlaşdır"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+2 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: bg\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Bulgarian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -6569,3 +6569,4 @@ msgstr "Намаляване"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Зулуски"
+2 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: bn\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Bengali\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -6569,3 +6569,4 @@ msgstr "জুম আউট"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "জুলু"
+4 -3
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ca\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Catalan\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -4061,7 +4061,7 @@ msgstr "Reactive Resume - Ves a la pàgina inicial"
#. Import source option for current Reactive Resume JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume (JSON)"
msgstr "Reactive Resume (JSON)"
msgstr "Currículum reactiu (JSON)"
#: src/routes/_home/-sections/prefooter.tsx
msgid "Reactive Resume gets better because people give it their time. Contributors on GitHub build the features and fix the bugs, translators on Crowdin make it readable in other languages, and donors help keep development going. This project owes its progress to all of them."
@@ -4090,7 +4090,7 @@ msgstr "Reactive Resume continua sent gratuït, de codi obert i independent perq
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Currículum reactiu v<0>{__APP_VERSION__}</0>"
#. Import source option for legacy Reactive Resume v4 JSON format
#: src/dialogs/resume/import.tsx
@@ -6569,3 +6569,4 @@ msgstr "Allunya"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulú"
+2 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: cs\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Czech\n"
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
@@ -6569,3 +6569,4 @@ msgstr "Oddálit"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+5 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: da\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Danish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -2857,7 +2857,7 @@ msgstr "john.doe@example.com"
#. Import source option for standard JSON Resume format
#: src/dialogs/resume/import.tsx
msgid "JSON Resume"
msgstr "JSON Resume"
msgstr "JSON CV"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
@@ -3733,11 +3733,11 @@ msgstr "Passkey registreret."
#: src/features/settings/authentication/components/passkeys.tsx
msgid "Passkeys"
msgstr "Passkeys"
msgstr "Nøgler"
#: src/routes/_home/-sections/features.tsx
msgid "Passkeys & 2FA"
msgstr "Passkeys & 2FA"
msgstr "Adgangsnøgler & 2FA"
#. Authentication provider display name in account settings
#. Label for password input on login form
@@ -6569,3 +6569,4 @@ msgstr "Zoom ud"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+6 -5
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: de\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -1565,7 +1565,7 @@ msgstr "Dunkles Design"
#: src/routes/dashboard/-components/sidebar.tsx
msgid "Dashboard"
msgstr "Dashboard"
msgstr "Armaturenbrett"
#: src/routes/_home/-sections/features.tsx
msgid "Data Security"
@@ -2857,7 +2857,7 @@ msgstr "john.doe@example.com"
#. Import source option for standard JSON Resume format
#: src/dialogs/resume/import.tsx
msgid "JSON Resume"
msgstr "JSON Resume"
msgstr "JSON Lebenslauf"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
@@ -3721,7 +3721,7 @@ msgstr "Absatz- und Überschriftenstil"
#: src/features/auth/components/social-auth.tsx
#: src/features/settings/authentication/components/hooks.tsx
msgid "Passkey"
msgstr "Passkey"
msgstr "Hauptschlüssel"
#: src/features/settings/authentication/components/passkeys.tsx
msgid "Passkey deleted."
@@ -3733,7 +3733,7 @@ msgstr "Passkey registriert."
#: src/features/settings/authentication/components/passkeys.tsx
msgid "Passkeys"
msgstr "Passkeys"
msgstr "Passwörter"
#: src/routes/_home/-sections/features.tsx
msgid "Passkeys & 2FA"
@@ -6569,3 +6569,4 @@ msgstr "Herauszoomen"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+6 -5
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: el\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -2857,7 +2857,7 @@ msgstr "john.doe@example.com"
#. Import source option for standard JSON Resume format
#: src/dialogs/resume/import.tsx
msgid "JSON Resume"
msgstr "JSON Resume"
msgstr "JSON Βιογραφικό σημείωμα"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
@@ -4061,7 +4061,7 @@ msgstr "Reactive Resume - Μετάβαση στην αρχική σελίδα"
#. Import source option for current Reactive Resume JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume (JSON)"
msgstr "Reactive Resume (JSON)"
msgstr "Αντιδραστικό βιογραφικό σημείωμα (JSON)"
#: src/routes/_home/-sections/prefooter.tsx
msgid "Reactive Resume gets better because people give it their time. Contributors on GitHub build the features and fix the bugs, translators on Crowdin make it readable in other languages, and donors help keep development going. This project owes its progress to all of them."
@@ -4090,12 +4090,12 @@ msgstr "Το Reactive Resume παραμένει δωρεάν, ανοιχτού
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Αντιδραστικό βιογραφικό v<0>{__APP_VERSION__}</0>"
#. Import source option for legacy Reactive Resume v4 JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
msgstr "Αντιδραστικό βιογραφικό σημείωμα v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
@@ -6569,3 +6569,4 @@ msgstr "Σμίκρυνση"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Ζουλού"
+2 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: en_GB\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: English, United Kingdom\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -6569,3 +6569,4 @@ msgstr "Zoom out"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+5 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: es\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -4061,7 +4061,7 @@ msgstr "Reactive Resume - Ir a la página de inicio"
#. Import source option for current Reactive Resume JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume (JSON)"
msgstr "Reactive Resume (JSON)"
msgstr "Hoja de vida reactiva (JSON)"
#: src/routes/_home/-sections/prefooter.tsx
msgid "Reactive Resume gets better because people give it their time. Contributors on GitHub build the features and fix the bugs, translators on Crowdin make it readable in other languages, and donors help keep development going. This project owes its progress to all of them."
@@ -4090,12 +4090,12 @@ msgstr "Reactive Resume sigue siendo gratuito, de código abierto e independient
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Reanudación reactiva v<0>{__APP_VERSION__}</0>"
#. Import source option for legacy Reactive Resume v4 JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
msgstr "Currículum reactivo v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
@@ -6569,3 +6569,4 @@ msgstr "Alejar"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulú"
+2 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: fa\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Persian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -6569,3 +6569,4 @@ msgstr "کوچک‌نمایی"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "زولو"
+6 -5
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: fi\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Finnish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -2857,7 +2857,7 @@ msgstr "john.doe@example.com"
#. Import source option for standard JSON Resume format
#: src/dialogs/resume/import.tsx
msgid "JSON Resume"
msgstr "JSON Resume"
msgstr "JSON-ansioluettelo"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
@@ -4061,7 +4061,7 @@ msgstr "Reactive Resume – Siirry etusivulle"
#. Import source option for current Reactive Resume JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume (JSON)"
msgstr "Reactive Resume (JSON)"
msgstr "Reaktiivinen ansioluettelo (JSON)"
#: src/routes/_home/-sections/prefooter.tsx
msgid "Reactive Resume gets better because people give it their time. Contributors on GitHub build the features and fix the bugs, translators on Crowdin make it readable in other languages, and donors help keep development going. This project owes its progress to all of them."
@@ -4090,12 +4090,12 @@ msgstr "Reactive Resume pysyy ilmaisena, avoimen lähdekoodin ja itsenäisenä,
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Reaktiivinen ansioluettelo v<0>{__APP_VERSION__}</0>"
#. Import source option for legacy Reactive Resume v4 JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
msgstr "Reaktiivinen ansioluettelo v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
@@ -6569,3 +6569,4 @@ msgstr "Loitonna"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+3 -2
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: fr\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -4090,7 +4090,7 @@ msgstr "Reactive Resume reste gratuit, open source et indépendant grâce au sou
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "React Resume v<0>{__APP_VERSION__}</0>"
#. Import source option for legacy Reactive Resume v4 JSON format
#: src/dialogs/resume/import.tsx
@@ -6569,3 +6569,4 @@ msgstr "Zoom arrière"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zoulou"
+2 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: he\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Hebrew\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n==2 ? 1 : 2);\n"
@@ -6569,3 +6569,4 @@ msgstr "התרחקות"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "זולו"
+2 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: hi\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Hindi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -6569,3 +6569,4 @@ msgstr "ज़ूम आउट"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "ज़ुलु"
+6 -5
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: hu\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Hungarian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -2857,7 +2857,7 @@ msgstr "john.doe@example.com"
#. Import source option for standard JSON Resume format
#: src/dialogs/resume/import.tsx
msgid "JSON Resume"
msgstr "JSON Resume"
msgstr "JSON önéletrajz"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
@@ -4061,7 +4061,7 @@ msgstr "Reactive Resume – Ugrás a kezdőlapra"
#. Import source option for current Reactive Resume JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume (JSON)"
msgstr "Reactive Resume (JSON)"
msgstr "Reaktív önéletrajz (JSON)"
#: src/routes/_home/-sections/prefooter.tsx
msgid "Reactive Resume gets better because people give it their time. Contributors on GitHub build the features and fix the bugs, translators on Crowdin make it readable in other languages, and donors help keep development going. This project owes its progress to all of them."
@@ -4090,12 +4090,12 @@ msgstr "A Reactive Resume azért marad ingyenes, nyílt forráskódú és függe
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Reaktív önéletrajz v<0>{__APP_VERSION__}</0>"
#. Import source option for legacy Reactive Resume v4 JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
msgstr "Reaktív önéletrajz v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
@@ -6569,3 +6569,4 @@ msgstr "Kicsinyítés"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+7 -6
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: id\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -2857,7 +2857,7 @@ msgstr "john.doe@example.com"
#. Import source option for standard JSON Resume format
#: src/dialogs/resume/import.tsx
msgid "JSON Resume"
msgstr "JSON Resume"
msgstr "Lanjutkan JSON"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
@@ -4061,7 +4061,7 @@ msgstr "Reactive Resume - Pergi ke beranda"
#. Import source option for current Reactive Resume JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume (JSON)"
msgstr "Reactive Resume (JSON)"
msgstr "Lanjutkan Reaktif (JSON)"
#: src/routes/_home/-sections/prefooter.tsx
msgid "Reactive Resume gets better because people give it their time. Contributors on GitHub build the features and fix the bugs, translators on Crowdin make it readable in other languages, and donors help keep development going. This project owes its progress to all of them."
@@ -4090,12 +4090,12 @@ msgstr "Reactive Resume tetap gratis, open-source, dan independen karena perusah
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Reaktif Lanjutkan v<0>{__APP_VERSION__}</0>"
#. Import source option for legacy Reactive Resume v4 JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
msgstr "Lanjutkan Reaktif v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
@@ -4302,7 +4302,7 @@ msgstr "Pulihkan versi ini?"
#: src/routes/agent/-components/resume-pane.tsx
#: src/routes/agent/$threadId.tsx
msgid "Resume"
msgstr "Resume"
msgstr "Melanjutkan"
#: src/features/resume/preview/resume-accessible-text.tsx
msgid "Resume content"
@@ -6569,3 +6569,4 @@ msgstr "Perkecil"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+5 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: it\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -4061,7 +4061,7 @@ msgstr "Reactive Resume - Vai alla homepage"
#. Import source option for current Reactive Resume JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume (JSON)"
msgstr "Reactive Resume (JSON)"
msgstr "Ripresa reattiva (JSON)"
#: src/routes/_home/-sections/prefooter.tsx
msgid "Reactive Resume gets better because people give it their time. Contributors on GitHub build the features and fix the bugs, translators on Crowdin make it readable in other languages, and donors help keep development going. This project owes its progress to all of them."
@@ -4090,12 +4090,12 @@ msgstr "Reactive Resume rimane gratuito, open-source e indipendente perché le a
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Ripresa reattiva v<0>{__APP_VERSION__}</0>"
#. Import source option for legacy Reactive Resume v4 JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
msgstr "Ripresa reattiva v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
@@ -6569,3 +6569,4 @@ msgstr "Rimpicciolisci"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+28 -27
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ja\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -236,7 +236,7 @@ msgstr "A4"
#: src/routes/_home/-sections/features.tsx
msgid "Access your resumes and data programmatically using the API."
msgstr "API を使用して、プログラムから履歴書とデータにアクセスできます。"
msgstr "API を使用して、プログラムからレジュメとデータにアクセスできます。"
#: src/features/command-palette/pages/navigation.tsx
#: src/routes/dashboard/-components/sidebar.tsx
@@ -444,7 +444,7 @@ msgstr "[基本] の下にフルネームを追加します。"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Adjust the resume for a remote-first role that values async communication and ownership."
msgstr "非同期コミュニケーションと主体性を重視する、リモートワーク中心の職種に合わせて履歴書を調整しましょう。"
msgstr "非同期コミュニケーションと主体性を重視する、リモートワーク中心の職種に合わせてレジュメを調整しましょう。"
#: src/features/settings/integrations/components/ai-section.tsx
msgid "Advanced"
@@ -550,7 +550,7 @@ msgstr "予期せぬエラーが発生したため、このページを読み込
#. Fallback toast when importing a resume fails for an unknown reason
#: src/dialogs/resume/import.tsx
msgid "An unknown error occurred while importing your resume."
msgstr "履歴書のインポート中に不明なエラーが発生しました。"
msgstr "レジュメのインポート中に不明なエラーが発生しました。"
#: src/routes/_home/-sections/features.tsx
msgid "And many more..."
@@ -574,7 +574,7 @@ msgstr "公開 URL を開く人には、このパスワードが必要になり
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Anyone with the link can view and download the resume."
msgstr "リンクを知っている人は誰でも履歴書を表示してダウンロードできます。"
msgstr "リンクを知っている人は誰でもレジュメを表示してダウンロードできます。"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Anyone with the public URL will be able to view and download your resume without a password."
@@ -697,7 +697,7 @@ msgstr "本当にこの項目を削除しますか?"
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/use-resume-menu-actions.ts
msgid "Are you sure you want to delete this resume?"
msgstr "この履歴書を削除しますか?"
msgstr "このレジュメを削除しますか?"
#: src/features/settings/pages/account.tsx
msgid "Are you sure you want to delete your account?"
@@ -706,7 +706,7 @@ msgstr "このアカウントを削除しますか?"
#: src/routes/builder/$resumeId/-components/header.tsx
#: src/routes/dashboard/resumes/-components/menus/use-resume-menu-actions.ts
msgid "Are you sure you want to lock this resume?"
msgstr "この履歴書をロックしますか?"
msgstr "このレジュメをロックしますか?"
#: src/routes/builder/$resumeId/-sidebar/right/sections/sharing.tsx
msgid "Are you sure you want to remove password protection?"
@@ -726,7 +726,7 @@ msgstr "人工知能"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Ask anything about this resume"
msgstr "この履歴書について何でも質問してください"
msgstr "このレジュメについて何でも質問してください"
#: src/routes/builder/$resumeId/-sidebar/left/sections/picture.tsx
msgid "Aspect Ratio"
@@ -807,7 +807,7 @@ msgstr "認証設定に戻る"
#: src/routes/agent/-components/thread-sidebar.tsx
msgid "Back to resumes"
msgstr "履歴書に戻る"
msgstr "レジュメに戻る"
#. Action returning the visitor to the sign-in page after a failed sign-in
#. Secondary navigation button on 2FA verification screen
@@ -975,7 +975,7 @@ msgstr "テーマを…に変更します"
#: src/dialogs/resume/index.tsx
msgid "Changed your mind? Rename your resume to something more descriptive."
msgstr "やっぱり変更しますか?履歴書に、よりわかりやすい名前を付け直しましょう。"
msgstr "やっぱり変更しますか?レジュメに、よりわかりやすい名前を付け直しましょう。"
#: src/routes/_home/-sections/footer.tsx
msgid "Changelog"
@@ -1032,7 +1032,7 @@ msgstr "中国語(繁体字)"
#: src/routes/agent/-components/new-thread-setup.tsx
msgid "Choose a model and resume draft."
msgstr "モデルを選び、履歴書の下書きを作成してください。"
msgstr "モデルを選び、レジュメの下書きを作成してください。"
#: src/features/ats-checker/uploader.tsx
msgid "Choose a PDF"
@@ -1046,7 +1046,7 @@ msgstr "プリセットまたはカスタムシェードを選択します。"
#: src/routes/agent/-components/new-thread-setup.tsx
msgid "Choose a resume"
msgstr "履歴書を選択してください"
msgstr "レジュメを選択してください"
#: src/routes/builder/$resumeId/-sidebar/right/sections/export.tsx
msgid "Choose PDF, DOCX, Markdown, or JSON. Export your resume and cover letter separately when available."
@@ -1455,7 +1455,7 @@ msgstr "リファレンスを追加"
#: src/routes/dashboard/resumes/-components/cards/create-card.tsx
#: src/routes/dashboard/resumes/-components/list-view.tsx
msgid "Create a new resume"
msgstr "新しい履歴書を作成"
msgstr "新しいレジュメを作成"
#: src/dialogs/resume/sections/skill.tsx
msgid "Create a new skill"
@@ -1849,7 +1849,7 @@ msgstr "AI 下書きとして複製"
#: src/dialogs/resume/index.tsx
msgid "Duplicate Resume"
msgstr "履歴書を複製"
msgstr "レジュメを複製"
#: src/dialogs/resume/index.tsx
msgid "Duplicate your resume to create a new one, just like the original."
@@ -2632,7 +2632,7 @@ msgstr "ホーム"
#: src/routes/_home/-sections/faq.tsx
msgid "How do I share my resume?"
msgstr "履歴書はどのように共有できますか?"
msgstr "レジュメはどのように共有できますか?"
#: src/features/settings/pages/api-keys.tsx
msgid "How do I use the API?"
@@ -2677,7 +2677,7 @@ msgstr "{0} をインポート"
#: src/routes/dashboard/resumes/-components/cards/import-card.tsx
#: src/routes/dashboard/resumes/-components/list-view.tsx
msgid "Import an existing resume"
msgstr "既存の履歴書をインポート"
msgstr "既存のレジュメをインポート"
#: src/routes/dashboard/applications/index.tsx
msgid "Import CSV"
@@ -3223,7 +3223,7 @@ msgstr "Microsoft Word"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Missing working resume"
msgstr "履歴書が選択されていません"
msgstr "レジュメが選択されていません"
#: src/features/settings/integrations/components/ai-section.tsx
msgid "Mistral AI"
@@ -4090,7 +4090,7 @@ msgstr "Reactive Resumeが無料、オープンソース、そして独立した
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "リアクティブレジューム v<0>{__APP_VERSION__}</0>"
#. Import source option for legacy Reactive Resume v4 JSON format
#: src/dialogs/resume/import.tsx
@@ -4302,7 +4302,7 @@ msgstr "このバージョンを復元しますか?"
#: src/routes/agent/-components/resume-pane.tsx
#: src/routes/agent/$threadId.tsx
msgid "Resume"
msgstr "履歴書"
msgstr "レジュメ"
#: src/features/resume/preview/resume-accessible-text.tsx
msgid "Resume content"
@@ -4331,7 +4331,7 @@ msgstr "履歴書の選択肢"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Resume patch"
msgstr "履歴書パッチ"
msgstr "レジュメパッチ"
#: src/dialogs/resume/template/gallery.tsx
msgid "Resume templates for different professions and tastes. Pick the one that suits you."
@@ -4343,7 +4343,7 @@ msgstr "さまざまな職種や好みに合わせた履歴書テンプレート
#: src/routes/dashboard/-components/sidebar.tsx
#: src/routes/dashboard/resumes/index.tsx
msgid "Resumes"
msgstr "履歴書"
msgstr "レジュメ"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Retry"
@@ -4577,7 +4577,7 @@ msgstr "{0} を選択"
#: src/routes/agent/-components/new-thread-setup.tsx
msgid "Select a resume"
msgstr "履歴書を選択してください"
msgstr "レジュメを選択してください"
#: src/routes/agent/index.tsx
msgid "Select a thread"
@@ -5031,12 +5031,12 @@ msgstr "スレッドを開始する"
#: src/dialogs/resume/index.tsx
msgid "Start building your resume by giving it a name."
msgstr "まず履歴書に名前を付けてください。"
msgstr "まずレジュメに名前を付けてください。"
#: src/routes/dashboard/resumes/-components/cards/create-card.tsx
#: src/routes/dashboard/resumes/-components/list-view.tsx
msgid "Start building your resume from scratch"
msgstr "ゼロから履歴書の作成を始める"
msgstr "ゼロからレジュメの作成を始める"
#: src/features/ats-checker/messages.ts
msgid "Start each one with a concrete verb: built, led, reduced, migrated."
@@ -5159,7 +5159,7 @@ msgstr "タグ"
#: src/dialogs/resume/index.tsx
msgid "Tags can be used to categorize your resume by keywords."
msgstr "タグを使って、履歴書をキーワードで分類できます。"
msgstr "タグを使って、レジュメをキーワードで分類できます。"
#: src/features/ats-checker/messages.ts
msgid "Tags give software an explicit reading order. Enable them when exporting, if your tool offers it."
@@ -5563,7 +5563,7 @@ msgstr "この履歴書はロックされています"
#: src/features/resume/builder/draft.ts
msgid "This resume is locked and cannot be updated."
msgstr "この履歴書はロックされているため、更新できません。"
msgstr "このレジュメはロックされているため、更新できません。"
#: src/features/ats-checker/messages.ts
msgid "This resume is long."
@@ -5946,7 +5946,7 @@ msgstr "パスワードを更新"
#: src/dialogs/resume/index.tsx
msgid "Update Resume"
msgstr "履歴書を更新"
msgstr "レジュメを更新"
#: src/features/applications/components/application-detail-sheet.tsx
msgid "Update the calendar date for this timeline entry."
@@ -6569,3 +6569,4 @@ msgstr "ズームアウト"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "ズールー語"
+3 -2
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: km\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Khmer\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -4090,7 +4090,7 @@ msgstr "Reactive Resume នៅតែឥតគិតថ្លៃ ជាប្រ
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "ប្រវត្តិរូបសង្ខេបដែលមានប្រតិកម្ម v<0>{__APP_VERSION__}</0>"
#. Import source option for legacy Reactive Resume v4 JSON format
#: src/dialogs/resume/import.tsx
@@ -6569,3 +6569,4 @@ msgstr "បង្រួម"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+2 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: kn\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Kannada\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -6569,3 +6569,4 @@ msgstr "ಗಾತ್ರ ಕುಗ್ಗಿಸಿ"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "ಜೂಲೂ"
+4 -3
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ko\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -2857,7 +2857,7 @@ msgstr "john.doe@example.com"
#. Import source option for standard JSON Resume format
#: src/dialogs/resume/import.tsx
msgid "JSON Resume"
msgstr "JSON Resume"
msgstr "JSON 이력서"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
@@ -4090,7 +4090,7 @@ msgstr "Reactive Resume는 기업들의 후원 덕분에 무료 오픈소스 독
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "반응형 재개 v<0>{__APP_VERSION__}</0>"
#. Import source option for legacy Reactive Resume v4 JSON format
#: src/dialogs/resume/import.tsx
@@ -6569,3 +6569,4 @@ msgstr "축소"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "줄루어"
+2 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: lt\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Lithuanian\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && (n%100>19 || n%100<11) ? 0 : (n%10>=2 && n%10<=9) && (n%100>19 || n%100<11) ? 1 : n%1!=0 ? 2: 3);\n"
@@ -6569,3 +6569,4 @@ msgstr "Tolinti"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulų"
+2 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: lv\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Latvian\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n"
@@ -6569,3 +6569,4 @@ msgstr "Tālināt"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+3 -2
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ml\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Malayalam\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -4061,7 +4061,7 @@ msgstr "Reactive Resume - ഹോംപേജിലേക്കു പോകു
#. Import source option for current Reactive Resume JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume (JSON)"
msgstr "Reactive Resume (JSON)"
msgstr "പ്രതികരിക്കുന്ന റെസ്യൂമെ (ജെസൺ)"
#: src/routes/_home/-sections/prefooter.tsx
msgid "Reactive Resume gets better because people give it their time. Contributors on GitHub build the features and fix the bugs, translators on Crowdin make it readable in other languages, and donors help keep development going. This project owes its progress to all of them."
@@ -6569,3 +6569,4 @@ msgstr "സൂം ഔട്ട് ചെയ്യുക"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "സൂളു"
+3 -2
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: mr\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Marathi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -2685,7 +2685,7 @@ msgstr "CSV आयात करा"
#: src/features/applications/components/import-applications-sheet.tsx
msgid "Import failed. Check the CSV and try again."
msgstr "आयात अयशस्वी झाले. CSV तपासा आणि पुन्हा प्रयत्न करा."
msgstr "failed आयात करा. CSV तपासा आणि again वापरून पहा."
#: src/features/applications/components/import-applications-sheet.tsx
#: src/routes/dashboard/applications/index.tsx
@@ -6569,3 +6569,4 @@ msgstr "बाहेर झूम करा"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "झुलू"
+7 -6
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ms\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Malay\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -2236,7 +2236,7 @@ msgstr "Gagal mengemas kini pembekal."
#: src/routes/agent/-components/agent-chat.tsx
msgid "Failed to update thread settings."
msgstr "Gagal mengemas kini tetapan thread."
msgstr "Gagal mengemas kini tetapan bebenang."
#. Fallback toast when changing account password fails
#: src/dialogs/auth/change-password.tsx
@@ -2857,7 +2857,7 @@ msgstr "john.doe@example.com"
#. Import source option for standard JSON Resume format
#: src/dialogs/resume/import.tsx
msgid "JSON Resume"
msgstr "JSON Resume"
msgstr "Ringkasan JSON"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
@@ -4061,7 +4061,7 @@ msgstr "Reactive Resume - Pergi ke laman utama"
#. Import source option for current Reactive Resume JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume (JSON)"
msgstr "Reactive Resume (JSON)"
msgstr "Resume Reaktif (JSON)"
#: src/routes/_home/-sections/prefooter.tsx
msgid "Reactive Resume gets better because people give it their time. Contributors on GitHub build the features and fix the bugs, translators on Crowdin make it readable in other languages, and donors help keep development going. This project owes its progress to all of them."
@@ -4090,12 +4090,12 @@ msgstr "Reactive Resume kekal percuma, sumber terbuka dan bebas kerana syarikat
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Resume Reaktif v<0>{__APP_VERSION__}</0>"
#. Import source option for legacy Reactive Resume v4 JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
msgstr "Reaktif Resume v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
@@ -6569,3 +6569,4 @@ msgstr "Zum keluar"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+9 -8
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ne\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Nepali\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -888,11 +888,11 @@ msgstr "बुल्गेरियन"
#: src/features/applications/components/table-view.tsx
msgid "Bulk delete failed. Please try again."
msgstr "बल्क मेटाउन असफल भयो। कृपया फेरि प्रयास गर्नुहोस्।"
msgstr "बल्क मेटाउनुहोस् failed। कृपया again प्रयास गर्नुहोस्।"
#: src/features/applications/components/table-view.tsx
msgid "Bulk update failed. Please try again."
msgstr "बल्क अपडेट असफल भयो। कृपया फेरि प्रयास गर्नुहोस्।"
msgstr "बल्क अपडेट failed। कृपया again प्रयास गर्नुहोस्।"
#: src/components/input/rich-input.tsx
msgid "Bullet List"
@@ -1330,7 +1330,7 @@ msgstr "नोट सुरक्षित गर्न सकिएन।"
#: src/features/applications/components/application-form-sheet.tsx
msgid "Couldn't save your changes. Please try again."
msgstr "तपाईंका परिवर्तनहरू सुरक्षित गर्न सकिएन। कृपया फेरि प्रयास गर्नुहोस्।"
msgstr "तपाईंका परिवर्तनहरू सुरक्षित गर्न सकिएन। कृपया again प्रयास गर्नुहोस्।"
#: src/features/applications/components/application-detail-sheet.tsx
msgid "Couldn't update the timeline entry."
@@ -1338,7 +1338,7 @@ msgstr "समयरेखा प्रविष्टि अद्यावध
#: src/features/applications/components/file-attachment-field.tsx
msgid "Couldn't upload the file. Please try again."
msgstr "फाइल अपलोड गर्न सकिएन। कृपया फेरि प्रयास गर्नुहोस्।"
msgstr "फाइल अपलोड गर्न सकिएन। कृपया again प्रयास गर्नुहोस्।"
#: src/features/applications/components/insights-view.tsx
msgid "Count by source"
@@ -1818,7 +1818,7 @@ msgstr "अनुगमन ड्राफ्ट गर्नुहोस्"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Drafting failed."
msgstr "ड्राफ्टिङ असफल भयो।"
msgstr "ड्राफ्टिङ failed।"
#: src/routes/builder/$resumeId/-sidebar/right/sections/layout/pages.tsx
msgid "Drag and drop sections here to move them between columns"
@@ -2685,7 +2685,7 @@ msgstr "CSV आयात गर्नुहोस्"
#: src/features/applications/components/import-applications-sheet.tsx
msgid "Import failed. Check the CSV and try again."
msgstr "आयात असफल भयो। CSV जाँच गर्नुहोस् र फेरि प्रयास गर्नुहोस्।"
msgstr "failed आयात गर्नुहोस्। CSV जाँच गर्नुहोस् र again प्रयास गर्नुहोस्।"
#: src/features/applications/components/import-applications-sheet.tsx
#: src/routes/dashboard/applications/index.tsx
@@ -5678,7 +5678,7 @@ msgstr "आफ्नो खाता मेटाउन, तल पुष्ट
#: src/features/settings/integrations/components/ai-section.tsx
msgid "Together.ai"
msgstr "Together.ai"
msgstr "Together.ai का थप वस्तुहरू"
#: src/routes/builder/$resumeId/-sidebar/left/shared/section-base.tsx
#: src/routes/builder/$resumeId/-sidebar/right/shared/section-base.tsx
@@ -6569,3 +6569,4 @@ msgstr "जूम आउट"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "जुलु"
+5 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: nl\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -2857,7 +2857,7 @@ msgstr "john.doe@example.com"
#. Import source option for standard JSON Resume format
#: src/dialogs/resume/import.tsx
msgid "JSON Resume"
msgstr "JSON Resume"
msgstr "JSON hervatten"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
@@ -3733,7 +3733,7 @@ msgstr "Passkey geregistreerd."
#: src/features/settings/authentication/components/passkeys.tsx
msgid "Passkeys"
msgstr "Passkeys"
msgstr "Passleutels"
#: src/routes/_home/-sections/features.tsx
msgid "Passkeys & 2FA"
@@ -5647,7 +5647,7 @@ msgstr "Onderwerp verwijderd."
#: src/routes/agent/-components/thread-sidebar.tsx
#: src/routes/agent/$threadId.tsx
msgid "Threads"
msgstr "Threads"
msgstr "Draden"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Tighten the skills section so it supports the target role instead of reading like a keyword dump."
@@ -6569,3 +6569,4 @@ msgstr "Uitzoomen"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+2 -1
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: no\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -6569,3 +6569,4 @@ msgstr "Zoom ut"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+3 -2
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: or\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Odia\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -2102,7 +2102,7 @@ msgstr "ଗୋଟିଏ କ୍ଲିକ୍‌ରେ, କୌଣସି ଅପେ
#: src/features/applications/components/insights-view.tsx
msgid "Exported pipeline-flow.png"
msgstr "ରପ୍ତାନି ହୋଇଥିବା pipeline-flow.png"
msgstr "ରପ୍ତାନି ହୋଇଥିବା ପାଇପଲାଇନ-ପ୍ରବାହ। png |"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
@@ -6569,3 +6569,4 @@ msgstr "ଜୁମ୍ ଆଉଟ୍ କରନ୍ତୁ"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "ଜୁଲୁ"
+6 -5
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: pl\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
@@ -850,7 +850,7 @@ msgstr "Blokada"
#: src/routes/dashboard/applications/index.tsx
msgid "Board"
msgstr "Tablica"
msgstr "Deska"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgctxt "Body Text (paragraphs, lists, etc.)"
@@ -2102,7 +2102,7 @@ msgstr "Wyeksportuj swoje CV do PDF jednym kliknięciem, bez czekania."
#: src/features/applications/components/insights-view.tsx
msgid "Exported pipeline-flow.png"
msgstr "Wyeksportowano pipeline-flow.png"
msgstr "Wyeksportowany przepływ potoku.png"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Failed"
@@ -2857,7 +2857,7 @@ msgstr "john.doe@example.com"
#. Import source option for standard JSON Resume format
#: src/dialogs/resume/import.tsx
msgid "JSON Resume"
msgstr "JSON Resume"
msgstr "Wznowienie JSON"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
@@ -5149,7 +5149,7 @@ msgstr "Zsynchronizowano zmiany wprowadzone w innej karcie."
#: src/routes/dashboard/applications/index.tsx
msgid "Table"
msgstr "Tabela"
msgstr "Stół"
#: src/dialogs/resume/index.tsx
#: src/features/applications/components/application-form-sheet.tsx
@@ -6569,3 +6569,4 @@ msgstr "Pomniejsz"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+9 -8
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: pt\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Portuguese, Brazilian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -621,7 +621,7 @@ msgstr "Copiloto de Candidaturas"
#: src/features/applications/components/application-actions-menu.tsx
#: src/features/applications/components/application-detail-sheet.tsx
msgid "Application deleted."
msgstr "Candidatura excluída."
msgstr "Aplicativo excluído."
#: src/routes/_home/-sections/statistics.tsx
msgid "Application Statistics"
@@ -850,7 +850,7 @@ msgstr "Bloqueio"
#: src/routes/dashboard/applications/index.tsx
msgid "Board"
msgstr "Quadro"
msgstr "Conselho"
#: src/routes/builder/$resumeId/-sidebar/right/sections/typography.tsx
msgctxt "Body Text (paragraphs, lists, etc.)"
@@ -4061,7 +4061,7 @@ msgstr "Reactive Resume - Ir para a página inicial"
#. Import source option for current Reactive Resume JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume (JSON)"
msgstr "Reactive Resume (JSON)"
msgstr "Currículo reativo (JSON)"
#: src/routes/_home/-sections/prefooter.tsx
msgid "Reactive Resume gets better because people give it their time. Contributors on GitHub build the features and fix the bugs, translators on Crowdin make it readable in other languages, and donors help keep development going. This project owes its progress to all of them."
@@ -4090,12 +4090,12 @@ msgstr "O Reactive Resume permanece gratuito, de código aberto e independente p
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Retomar reativo v<0>{__APP_VERSION__}</0>"
#. Import source option for legacy Reactive Resume v4 JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
msgstr "Currículo reativo v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
@@ -5010,7 +5010,7 @@ msgstr "Etapa"
#: src/features/applications/components/application-form-sheet.tsx
msgid "Stage date"
msgstr "Data da etapa"
msgstr "Data do estágio"
#: src/components/input/github-stars-button.tsx
msgid "Star us on GitHub (opens in new tab)"
@@ -6267,7 +6267,7 @@ msgstr "Quando bloqueado, o currículo não pode ser atualizado ou excluído."
#: src/features/applications/components/insights-view.tsx
msgid "Where applications come from"
msgstr "De onde vêm as candidaturas"
msgstr "De onde vêm os aplicativos"
#: src/features/applications/components/insights-view.tsx
msgid "Where your applications went"
@@ -6569,3 +6569,4 @@ msgstr "Diminuir zoom"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+6 -5
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: pt\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Portuguese\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -4061,7 +4061,7 @@ msgstr "Reactive Resume - Ir para a página inicial"
#. Import source option for current Reactive Resume JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume (JSON)"
msgstr "Reactive Resume (JSON)"
msgstr "Currículo reativo (JSON)"
#: src/routes/_home/-sections/prefooter.tsx
msgid "Reactive Resume gets better because people give it their time. Contributors on GitHub build the features and fix the bugs, translators on Crowdin make it readable in other languages, and donors help keep development going. This project owes its progress to all of them."
@@ -4090,12 +4090,12 @@ msgstr "O Reactive Resume continua a ser gratuito, de código aberto e independe
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Reativo reativo v<0>{__APP_VERSION__}</0>"
#. Import source option for legacy Reactive Resume v4 JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
msgstr "Currículo reativo v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
@@ -6267,7 +6267,7 @@ msgstr "Quando bloqueado, o currículo não pode ser atualizado nem eliminado."
#: src/features/applications/components/insights-view.tsx
msgid "Where applications come from"
msgstr "De onde vêm as candidaturas"
msgstr "De onde vêm as aplicações"
#: src/features/applications/components/insights-view.tsx
msgid "Where your applications went"
@@ -6569,3 +6569,4 @@ msgstr "Afastar"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+6 -5
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ro\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Romanian\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100>0 && n%100<20)) ? 1 : 2);\n"
@@ -2857,7 +2857,7 @@ msgstr "john.doe@example.com"
#. Import source option for standard JSON Resume format
#: src/dialogs/resume/import.tsx
msgid "JSON Resume"
msgstr "JSON Resume"
msgstr "Rezumat JSON"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
@@ -4061,7 +4061,7 @@ msgstr "Reactive Resume - Mergi la pagina principală"
#. Import source option for current Reactive Resume JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume (JSON)"
msgstr "Reactive Resume (JSON)"
msgstr "Rezumat reactiv (JSON)"
#: src/routes/_home/-sections/prefooter.tsx
msgid "Reactive Resume gets better because people give it their time. Contributors on GitHub build the features and fix the bugs, translators on Crowdin make it readable in other languages, and donors help keep development going. This project owes its progress to all of them."
@@ -4090,12 +4090,12 @@ msgstr "Reactive Resume rămâne gratuit, open-source și independent, deoarece
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "CV reactiv v<0>{__APP_VERSION__}</0>"
#. Import source option for legacy Reactive Resume v4 JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
msgstr "CV reactiv v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
@@ -6569,3 +6569,4 @@ msgstr "Micșorează"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+4 -3
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ru\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
@@ -738,7 +738,7 @@ msgstr "Компания Atlas Cloud поддерживает проект React
#: src/libs/resume/section.tsx
msgid "ATS Check"
msgstr "Проверка ATS"
msgstr "Проверка АТС"
#: src/routes/_home/-sections/features.tsx
#: src/routes/_home/ats-checker.tsx
@@ -2857,7 +2857,7 @@ msgstr "john.doe@example.com"
#. Import source option for standard JSON Resume format
#: src/dialogs/resume/import.tsx
msgid "JSON Resume"
msgstr "JSON Resume"
msgstr "JSON Резюме"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
@@ -6569,3 +6569,4 @@ msgstr "Уменьшить"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Зулу"
+4 -3
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: sk\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Slovak\n"
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
@@ -5725,7 +5725,7 @@ msgstr "Sledujte prácu, o ktorú sa uchádzate, a prepojte životopis, ktorý s
#: src/routes/dashboard/applications/index.tsx
msgid "Track your first application"
msgstr "Sledujte svoju prvú žiadosť"
msgstr "Sledujte svoju prvú aplikáciu"
#: src/routes/builder/$resumeId/-sidebar/right/sections/statistics.tsx
msgid "Track your resume's views and downloads"
@@ -6267,7 +6267,7 @@ msgstr "Keď je životopis uzamknutý, nemožno ho aktualizovať ani vymazať."
#: src/features/applications/components/insights-view.tsx
msgid "Where applications come from"
msgstr "Odkiaľ pochádzajú žiadosti"
msgstr "Odkiaľ pochádzajú aplikácie"
#: src/features/applications/components/insights-view.tsx
msgid "Where your applications went"
@@ -6569,3 +6569,4 @@ msgstr "Oddialiť"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+4 -3
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: sl\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Slovenian\n"
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n"
@@ -4880,7 +4880,7 @@ msgstr "Slovenščina"
#: src/dialogs/resume/index.tsx
msgid "Slug"
msgstr "Slug"
msgstr "Polž"
#: src/libs/resume/ats.ts
msgid "Some application systems require one before you can submit."
@@ -6267,7 +6267,7 @@ msgstr "Ko je zaklenjen, življenjepisa ni mogoče posodobiti ali izbrisati."
#: src/features/applications/components/insights-view.tsx
msgid "Where applications come from"
msgstr "Od kod prihajajo prijave"
msgstr "Od kod prihajajo aplikacije"
#: src/features/applications/components/insights-view.tsx
msgid "Where your applications went"
@@ -6569,3 +6569,4 @@ msgstr "Oddalji"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zuluščina"
+7 -6
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: sq\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Albanian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -2857,7 +2857,7 @@ msgstr "john.doe@example.com"
#. Import source option for standard JSON Resume format
#: src/dialogs/resume/import.tsx
msgid "JSON Resume"
msgstr "JSON Resume"
msgstr "CV në JSON"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
@@ -4061,7 +4061,7 @@ msgstr "Reactive Resume - Shko në faqen kryesore"
#. Import source option for current Reactive Resume JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume (JSON)"
msgstr "Reactive Resume (JSON)"
msgstr "Rezervë Reaktive (JSON)"
#: src/routes/_home/-sections/prefooter.tsx
msgid "Reactive Resume gets better because people give it their time. Contributors on GitHub build the features and fix the bugs, translators on Crowdin make it readable in other languages, and donors help keep development going. This project owes its progress to all of them."
@@ -4090,7 +4090,7 @@ msgstr "Reactive Resume mbetet falas, me burim të hapur dhe i pavarur sepse kom
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Rezyme Reaktive v<0>{__APP_VERSION__}</0>"
#. Import source option for legacy Reactive Resume v4 JSON format
#: src/dialogs/resume/import.tsx
@@ -5006,7 +5006,7 @@ msgstr "Katrori"
#: src/features/applications/components/application-form-sheet.tsx
#: src/features/applications/components/table-view.tsx
msgid "Stage"
msgstr "Faza"
msgstr "Skena"
#: src/features/applications/components/application-form-sheet.tsx
msgid "Stage date"
@@ -5725,7 +5725,7 @@ msgstr "Ndiqni një punë për të cilën po aplikoni dhe lidhni CV-në që keni
#: src/routes/dashboard/applications/index.tsx
msgid "Track your first application"
msgstr "Ndiqni aplikimin tuaj të parë"
msgstr "Ndiqni aplikacionin tuaj të parë"
#: src/routes/builder/$resumeId/-sidebar/right/sections/statistics.tsx
msgid "Track your resume's views and downloads"
@@ -6569,3 +6569,4 @@ msgstr "Zvogëlo"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+12 -11
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: sr\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Serbian (Cyrillic)\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
@@ -123,7 +123,7 @@ msgstr "Прошло је {passedRules} од {totalRules} провера"
#: src/libs/resume/ats.ts
msgid "{sectionTitle} · Item {itemNumber}"
msgstr "{sectionTitle} · Ставка {itemNumber}"
msgstr "# · Ставка # "
#: src/routes/_home/-sections/hero.tsx
msgid "<0>Finally,</0><1>A free and open-source resume builder</1>"
@@ -749,7 +749,7 @@ msgstr "ATS провера"
#: src/features/applications/components/application-detail-sheet.tsx
#: src/features/applications/components/application-form-sheet.tsx
msgid "Attach a cover letter (PDF)"
msgstr "Приложите пропратно писмо (PDF)"
msgstr "Приложите пропратно писмо (ПДФ)"
#: src/features/applications/components/application-detail-sheet.tsx
msgid "Attach a resume file (PDF)"
@@ -1391,7 +1391,7 @@ msgstr "Креирај"
#: src/features/applications/components/application-ai-copilot.tsx
msgid "Create a copy tuned to this job"
msgstr "Направите копију прилагођену овом послу"
msgstr "Направите копију прилагођену овом задатку"
#: src/features/auth/pages/register.tsx
msgid "Create a new account"
@@ -1518,7 +1518,7 @@ msgstr "Обрезивање слике"
#: src/features/applications/components/import-applications-sheet.tsx
msgid "CSV data"
msgstr "CSV подаци"
msgstr "ЦСВ подаци"
#: src/dialogs/auth/change-password.tsx
msgid "Current Password"
@@ -2090,7 +2090,7 @@ msgstr "Извези моје податке"
#: src/features/applications/components/insights-view.tsx
msgid "Export PNG"
msgstr "Извези PNG"
msgstr "Извези ПНГ"
#: src/features/ats-checker/messages.ts
msgid "Export the resume as a text PDF rather than as an image or a scan."
@@ -2748,7 +2748,7 @@ msgstr "Унутрашњи кôд"
#: src/routes/dashboard/applications/index.tsx
msgid "Insights"
msgstr "Увиди"
msgstr "Инсигхтс"
#. placeholder {0}: progress.page
#. placeholder {1}: progress.pageCount
@@ -2857,7 +2857,7 @@ msgstr "john.doe@example.com"
#. Import source option for standard JSON Resume format
#: src/dialogs/resume/import.tsx
msgid "JSON Resume"
msgstr "JSON Resume"
msgstr "ЈСОН резиме"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
@@ -3817,7 +3817,7 @@ msgstr "Закрпа је враћена уназад."
#. File format label in import source selector
#: src/dialogs/resume/import.tsx
msgid "PDF"
msgstr "PDF"
msgstr "ПДФ"
#: src/dialogs/resume/sections/education.tsx
#: src/dialogs/resume/sections/experience.tsx
@@ -5149,7 +5149,7 @@ msgstr "Синхронизоване измене направљене на др
#: src/routes/dashboard/applications/index.tsx
msgid "Table"
msgstr "Табела"
msgstr "Табле"
#: src/dialogs/resume/index.tsx
#: src/features/applications/components/application-form-sheet.tsx
@@ -5832,7 +5832,7 @@ msgstr "Украјински"
#: src/features/applications/components/application-actions-menu.tsx
#: src/features/applications/components/application-detail-sheet.tsx
msgid "Unarchive"
msgstr "Врати из архиве"
msgstr "Унарцхиве"
#: src/components/input/rich-input.tsx
msgid "Underline"
@@ -6569,3 +6569,4 @@ msgstr "Умањи"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Зулу"
+5 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: sv\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -1565,7 +1565,7 @@ msgstr "Mörkt tema"
#: src/routes/dashboard/-components/sidebar.tsx
msgid "Dashboard"
msgstr "Dashboard"
msgstr "Instrumentpanel"
#: src/routes/_home/-sections/features.tsx
msgid "Data Security"
@@ -2857,7 +2857,7 @@ msgstr "john.doe@example.com"
#. Import source option for standard JSON Resume format
#: src/dialogs/resume/import.tsx
msgid "JSON Resume"
msgstr "JSON Resume"
msgstr "JSON CV"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
@@ -3737,7 +3737,7 @@ msgstr "Passkeys"
#: src/routes/_home/-sections/features.tsx
msgid "Passkeys & 2FA"
msgstr "Passkeys & 2FA"
msgstr "Passnycklar & 2FA"
#. Authentication provider display name in account settings
#. Label for password input on login form
@@ -6569,3 +6569,4 @@ msgstr "Zooma ut"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+5 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: ta\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Tamil\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -2857,7 +2857,7 @@ msgstr "john.doe@example.com"
#. Import source option for standard JSON Resume format
#: src/dialogs/resume/import.tsx
msgid "JSON Resume"
msgstr "JSON Resume"
msgstr "ஜேசன் சுயவிவரம்"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
@@ -4061,7 +4061,7 @@ msgstr "Reactive Resume - முகப்புப் பக்கத்து
#. Import source option for current Reactive Resume JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume (JSON)"
msgstr "Reactive Resume (JSON)"
msgstr "எதிர்வினை விவரக்குறிப்பு (JSON)"
#: src/routes/_home/-sections/prefooter.tsx
msgid "Reactive Resume gets better because people give it their time. Contributors on GitHub build the features and fix the bugs, translators on Crowdin make it readable in other languages, and donors help keep development going. This project owes its progress to all of them."
@@ -4095,7 +4095,7 @@ msgstr "ரியாக்டிவ் ரெஸ்யூம் v<0>{__APP_VERSI
#. Import source option for legacy Reactive Resume v4 JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
msgstr "எதிர்வினை ரெஸ்யூம் v4 (ஜேசன்)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
@@ -6569,3 +6569,4 @@ msgstr "சிறிதாக்கு"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "ஜூலு"
+3 -2
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: te\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Telugu\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -4061,7 +4061,7 @@ msgstr "Reactive Resume - హోమ్‌పేజీకి వెళ్ళం
#. Import source option for current Reactive Resume JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume (JSON)"
msgstr "Reactive Resume (JSON)"
msgstr "ప్రతిస్పందించే రెస్యూమ్ (JSON)"
#: src/routes/_home/-sections/prefooter.tsx
msgid "Reactive Resume gets better because people give it their time. Contributors on GitHub build the features and fix the bugs, translators on Crowdin make it readable in other languages, and donors help keep development going. This project owes its progress to all of them."
@@ -6569,3 +6569,4 @@ msgstr "జూమ్ అవుట్ చేయండి"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "జులు"
+7 -6
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: th\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -2857,7 +2857,7 @@ msgstr "john.doe@example.com"
#. Import source option for standard JSON Resume format
#: src/dialogs/resume/import.tsx
msgid "JSON Resume"
msgstr "JSON Resume"
msgstr "ประวัติย่อในรูปแบบ JSON"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
@@ -3219,7 +3219,7 @@ msgstr "ผลกระทบปานกลาง"
#. File format label in import source selector
#: src/dialogs/resume/import.tsx
msgid "Microsoft Word"
msgstr "Microsoft Word"
msgstr "ไมโครซอฟต์ เวิร์ด"
#: src/routes/agent/-components/resume-pane.tsx
msgid "Missing working resume"
@@ -4061,7 +4061,7 @@ msgstr "Reactive Resume - ไปที่หน้าแรก"
#. Import source option for current Reactive Resume JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume (JSON)"
msgstr "Reactive Resume (JSON)"
msgstr "เรกติก รีซูเม (JSON)"
#: src/routes/_home/-sections/prefooter.tsx
msgid "Reactive Resume gets better because people give it their time. Contributors on GitHub build the features and fix the bugs, translators on Crowdin make it readable in other languages, and donors help keep development going. This project owes its progress to all of them."
@@ -4095,7 +4095,7 @@ msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
#. Import source option for legacy Reactive Resume v4 JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
msgstr "เรแอคทีฟ เรซูเม่ v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
@@ -4880,7 +4880,7 @@ msgstr "ภาษาสโลวีเนีย"
#: src/dialogs/resume/index.tsx
msgid "Slug"
msgstr "Slug"
msgstr "ชื่อ"
#: src/libs/resume/ats.ts
msgid "Some application systems require one before you can submit."
@@ -6569,3 +6569,4 @@ msgstr "ซูมออก"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "ซูลู"
+6 -5
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: tr\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -2857,7 +2857,7 @@ msgstr "john.doe@example.com"
#. Import source option for standard JSON Resume format
#: src/dialogs/resume/import.tsx
msgid "JSON Resume"
msgstr "JSON Resume"
msgstr "JSON Özgeçmiş"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
@@ -4061,7 +4061,7 @@ msgstr "Reactive Resume - Ana sayfaya git"
#. Import source option for current Reactive Resume JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume (JSON)"
msgstr "Reactive Resume (JSON)"
msgstr "Reaktif Özgeçmiş (JSON)"
#: src/routes/_home/-sections/prefooter.tsx
msgid "Reactive Resume gets better because people give it their time. Contributors on GitHub build the features and fix the bugs, translators on Crowdin make it readable in other languages, and donors help keep development going. This project owes its progress to all of them."
@@ -4090,12 +4090,12 @@ msgstr "Reactive Resume, şirketlerin arkasındaki çalışmaları desteklemeyi
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Reaktif Özgeçmiş v<0>{__APP_VERSION__}</0>"
#. Import source option for legacy Reactive Resume v4 JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
msgstr "Reaktif Özgeçmiş v4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
@@ -6569,3 +6569,4 @@ msgstr "Uzaklaştır"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+3 -2
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: uk\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Ukrainian\n"
"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
@@ -2857,7 +2857,7 @@ msgstr "john.doe@example.com"
#. Import source option for standard JSON Resume format
#: src/dialogs/resume/import.tsx
msgid "JSON Resume"
msgstr "JSON Resume"
msgstr "JSON Резюме"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
@@ -6569,3 +6569,4 @@ msgstr "Зменшити"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Зулу"
+3 -2
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: uz\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Uzbek\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -477,7 +477,7 @@ msgstr "Agentlar"
#: src/dialogs/resume/import.tsx
msgid "AI"
msgstr "AI"
msgstr "SO"
#: src/routes/agent/-components/new-thread-setup.tsx
msgid "AI agent setup is unavailable right now. Please try again in a moment."
@@ -6569,3 +6569,4 @@ msgstr "Kichraytirish"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+5 -4
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: vi\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -2857,7 +2857,7 @@ msgstr "john.doe@example.com"
#. Import source option for standard JSON Resume format
#: src/dialogs/resume/import.tsx
msgid "JSON Resume"
msgstr "JSON Resume"
msgstr "Sơ yếu lý lịch định dạng JSON"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
@@ -4061,7 +4061,7 @@ msgstr "Reactive Resume - Về trang chủ"
#. Import source option for current Reactive Resume JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume (JSON)"
msgstr "Reactive Resume (JSON)"
msgstr "Sơ yếu lý lịch động (JSON)"
#: src/routes/_home/-sections/prefooter.tsx
msgid "Reactive Resume gets better because people give it their time. Contributors on GitHub build the features and fix the bugs, translators on Crowdin make it readable in other languages, and donors help keep development going. This project owes its progress to all of them."
@@ -4095,7 +4095,7 @@ msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
#. Import source option for legacy Reactive Resume v4 JSON format
#: src/dialogs/resume/import.tsx
msgid "Reactive Resume v4 (JSON)"
msgstr "Reactive Resume v4 (JSON)"
msgstr "Sơ yếu lý lịch phản hồi phiên bản 4 (JSON)"
#: src/routes/agent/-components/tool-part-card.tsx
msgid "Read an attachment"
@@ -6569,3 +6569,4 @@ msgstr "Thu nhỏ"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "Zulu"
+8 -7
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: zh\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -738,7 +738,7 @@ msgstr "Atlas Cloud 以项目赞助商的身份支持 Reactive Resume 项目。
#: src/libs/resume/section.tsx
msgid "ATS Check"
msgstr "ATS 检查"
msgstr "ATS检查”"
#: src/routes/_home/-sections/features.tsx
#: src/routes/_home/ats-checker.tsx
@@ -2857,7 +2857,7 @@ msgstr "john.doe@example.com"
#. Import source option for standard JSON Resume format
#: src/dialogs/resume/import.tsx
msgid "JSON Resume"
msgstr "JSON Resume"
msgstr "JSON 简历"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
@@ -4090,7 +4090,7 @@ msgstr "Reactive Resume之所以能保持免费、开源和独立,是因为有
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "响应式恢复 v<0>{__APP_VERSION__}</0>"
#. Import source option for legacy Reactive Resume v4 JSON format
#: src/dialogs/resume/import.tsx
@@ -5124,7 +5124,7 @@ msgstr "尽你所能支持这个应用!"
#: src/features/ats-checker/messages.ts
#: src/libs/resume/ats.ts
msgid "Swap the start and end dates."
msgstr "交换开始日期和结束日期。"
msgstr "交换开始日期和结束日期。”"
#: src/libs/locale.ts
msgid "Swedish"
@@ -5390,7 +5390,7 @@ msgstr "这些检查在你输入时运行,且从不离开你的浏览器。它
#: src/libs/resume/ats.ts
msgid "These dates will not be read correctly."
msgstr "这些日期将无法正确读取。"
msgstr "这些日期将无法正确读取。”"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Thinking"
@@ -6181,7 +6181,7 @@ msgstr "想为你的文案获取第二意见吗?"
#: src/features/ats-checker/messages.ts
#: src/routes/builder/$resumeId/-sidebar/right/sections/ats-check.tsx
msgid "Warning"
msgstr "警告"
msgstr "警告”"
#: src/dialogs/resume/import.tsx
msgid "We couldn't detect the format automatically. Choose it above."
@@ -6569,3 +6569,4 @@ msgstr "缩小"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "祖鲁语"
+8 -7
View File
@@ -8,7 +8,7 @@ msgstr ""
"Language: zh\n"
"Project-Id-Version: reactive-resume\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-08-27 07:41\n"
"PO-Revision-Date: 2026-08-29 04:29\n"
"Last-Translator: \n"
"Language-Team: Chinese Traditional\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -738,7 +738,7 @@ msgstr "Atlas Cloud 以專案贊助商的身份支持 Reactive Resume 專案。
#: src/libs/resume/section.tsx
msgid "ATS Check"
msgstr "ATS 檢查"
msgstr "ATS檢查”"
#: src/routes/_home/-sections/features.tsx
#: src/routes/_home/ats-checker.tsx
@@ -2857,7 +2857,7 @@ msgstr "john.doe@example.com"
#. Import source option for standard JSON Resume format
#: src/dialogs/resume/import.tsx
msgid "JSON Resume"
msgstr "JSON Resume"
msgstr "JSON 簡歷"
#: src/components/input/rich-input.tsx
msgid "Justify Align"
@@ -4090,7 +4090,7 @@ msgstr "Reactive Resume之所以能保持免費、開放原始碼和獨立,是
#. App version label in footer; includes semantic version variable
#: src/components/ui/copyright.tsx
msgid "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "Reactive Resume v<0>{__APP_VERSION__}</0>"
msgstr "響應式恢復 v<0>{__APP_VERSION__}</0>"
#. Import source option for legacy Reactive Resume v4 JSON format
#: src/dialogs/resume/import.tsx
@@ -5124,7 +5124,7 @@ msgstr "盡您所能支持此應用程式!"
#: src/features/ats-checker/messages.ts
#: src/libs/resume/ats.ts
msgid "Swap the start and end dates."
msgstr "交換開始日期和結束日期。"
msgstr "交換開始日期和結束日期。 」"
#: src/libs/locale.ts
msgid "Swedish"
@@ -5390,7 +5390,7 @@ msgstr "這些檢查會在您輸入時執行,而且不會離開您的瀏覽器
#: src/libs/resume/ats.ts
msgid "These dates will not be read correctly."
msgstr "這些日期將無法正確讀取。"
msgstr "這些日期將無法正確讀取。 」"
#: src/routes/agent/-components/agent-chat.tsx
msgid "Thinking"
@@ -6181,7 +6181,7 @@ msgstr "想為您的文案取得第二意見嗎?"
#: src/features/ats-checker/messages.ts
#: src/routes/builder/$resumeId/-sidebar/right/sections/ats-check.tsx
msgid "Warning"
msgstr "警告"
msgstr "警告”"
#: src/dialogs/resume/import.tsx
msgid "We couldn't detect the format automatically. Choose it above."
@@ -6569,3 +6569,4 @@ msgstr "縮小"
#: src/libs/locale.ts
msgid "Zulu"
msgstr "祖魯語"
+24 -24
View File
@@ -16,10 +16,10 @@
"lingui:extract": "lingui extract --clean --overwrite"
},
"dependencies": {
"@ai-sdk/react": "^4.0.86",
"@base-ui/react": "^1.7.0",
"@ai-sdk/react": "^4.0.95",
"@base-ui/react": "^1.8.0",
"@better-auth/api-key": "^1.7.2",
"@better-auth/infra": "^0.4.3",
"@better-auth/infra": "^0.4.5",
"@better-auth/oauth-provider": "^1.7.2",
"@better-auth/passkey": "^1.7.2",
"@codemirror/autocomplete": "^6.20.3",
@@ -27,9 +27,9 @@
"@codemirror/lang-css": "^6.3.1",
"@codemirror/language": "^6.12.4",
"@codemirror/lint": "^6.9.7",
"@codemirror/search": "^6.7.1",
"@codemirror/state": "^6.7.1",
"@codemirror/view": "^6.43.9",
"@codemirror/search": "^6.7.2",
"@codemirror/state": "^6.7.3",
"@codemirror/view": "^6.43.11",
"@dnd-kit/core": "^6.3.1",
"@dnd-kit/sortable": "^10.0.0",
"@dnd-kit/utilities": "^3.2.2",
@@ -39,7 +39,7 @@
"@orpc/server": "^1.15.0",
"@orpc/tanstack-query": "^1.15.0",
"@phosphor-icons/react": "^2.1.10",
"@react-pdf/renderer": "^4.8.1",
"@react-pdf/renderer": "^4.9.0",
"@reactive-resume/ai": "workspace:*",
"@reactive-resume/api": "workspace:*",
"@reactive-resume/auth": "workspace:*",
@@ -54,29 +54,29 @@
"@tailwindcss/vite": "^4.3.3",
"@tanstack/react-form": "^1.33.5",
"@tanstack/react-hotkeys": "^0.10.0",
"@tanstack/react-query": "^5.102.6",
"@tanstack/react-query": "^5.102.8",
"@tanstack/react-router": "^1.170.32",
"@tiptap/extension-color": "^3.30.5",
"@tiptap/extension-highlight": "^3.30.5",
"@tiptap/extension-text-align": "^3.30.5",
"@tiptap/extension-text-style": "^3.30.5",
"@tiptap/pm": "^3.30.5",
"@tiptap/react": "^3.30.5",
"@tiptap/starter-kit": "^3.30.5",
"@tiptap/extension-color": "^3.31.2",
"@tiptap/extension-highlight": "^3.31.2",
"@tiptap/extension-text-align": "^3.31.2",
"@tiptap/extension-text-style": "^3.31.2",
"@tiptap/pm": "^3.31.2",
"@tiptap/react": "^3.31.2",
"@tiptap/starter-kit": "^3.31.2",
"@types/js-cookie": "^3.0.6",
"@uiw/color-convert": "^2.10.3",
"@uiw/react-color-colorful": "^2.10.3",
"ai": "^7.0.83",
"ai": "^7.0.92",
"better-auth": "1.7.2",
"buffer": "^6.0.3",
"cmdk": "^1.1.1",
"drizzle-orm": "1.0.0-rc.4",
"es-toolkit": "^1.51.0",
"es-toolkit": "^1.52.0",
"fuse.js": "^7.5.0",
"immer": "^11.1.18",
"js-cookie": "^3.0.8",
"motion": "^13.1.1",
"pdfjs-dist": "6.2.108",
"motion": "^13.2.0",
"pdfjs-dist": "6.3.289",
"pg": "^8.23.0",
"prettier": "^3.9.6",
"qrcode.react": "^4.2.0",
@@ -86,11 +86,11 @@
"react-markdown": "^10.1.0",
"react-resizable-panels": "^4.12.3",
"react-window": "^2.3.0",
"react-zoom-pan-pinch": "^4.0.4",
"react-zoom-pan-pinch": "^4.2.0",
"remark-gfm": "^4.0.1",
"ts-pattern": "^5.9.0",
"usehooks-ts": "^3.1.1",
"zod": "^4.4.3",
"zod": "^4.5.4",
"zustand": "^5.0.15"
},
"devDependencies": {
@@ -104,15 +104,15 @@
"@shadcn/helpers": "^0.2.0",
"@tanstack/devtools-vite": "^0.8.5",
"@tanstack/react-devtools": "^0.10.12",
"@tanstack/react-query-devtools": "^5.102.6",
"@tanstack/react-query-devtools": "^5.102.8",
"@tanstack/react-router-devtools": "^1.167.1",
"@tanstack/router-plugin": "^1.168.35",
"@types/babel__core": "^7.20.5",
"@types/pg": "^8.23.1",
"@types/react": "^19.2.18",
"@types/react-dom": "^19.2.5",
"@types/react-dom": "^19.2.7",
"@typescript/native-preview": "7.0.0-dev.20260707.2",
"@vitejs/plugin-react": "^6.1.0",
"@vitejs/plugin-react": "^6.1.1",
"babel-plugin-macros": "^3.1.0",
"babel-plugin-react-compiler": "^1.0.0",
"rimraf": "^6.1.3",
+210 -34
View File
@@ -288,7 +288,8 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
"required": [
"id",
"icon",
"text"
"text",
"link"
]
},
"description": "The custom fields to display on the resume."
@@ -345,7 +346,11 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"title",
"icon",
"columns",
"hidden",
"keepTogether",
"startOnNewPage",
"content"
],
"description": "Summary section of the resume, useful for a short bio or introduction"
@@ -442,7 +447,8 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"url",
"label"
"label",
"inlineLink"
]
}
},
@@ -450,8 +456,10 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
"id",
"hidden",
"icon",
"iconColor",
"network",
"username"
"username",
"website"
]
},
"description": "The items to display in the profiles section."
@@ -459,7 +467,11 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"title",
"icon",
"columns",
"hidden",
"keepTogether",
"startOnNewPage",
"items"
],
"description": "The section to display the profiles of the author."
@@ -552,7 +564,8 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"url",
"label"
"label",
"inlineLink"
]
},
"description": {
@@ -599,7 +612,9 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
"position",
"location",
"period",
"description"
"website",
"description",
"roles"
]
},
"description": "The items to display in the experience section."
@@ -607,7 +622,11 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"title",
"icon",
"columns",
"hidden",
"keepTogether",
"startOnNewPage",
"items"
],
"description": "The section to display the experience of the author."
@@ -708,7 +727,8 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"url",
"label"
"label",
"inlineLink"
]
},
"description": {
@@ -725,6 +745,7 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
"grade",
"location",
"period",
"website",
"description"
]
},
@@ -733,7 +754,11 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"title",
"icon",
"columns",
"hidden",
"keepTogether",
"startOnNewPage",
"items"
],
"description": "The section to display the education of the author."
@@ -818,7 +843,8 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"url",
"label"
"label",
"inlineLink"
]
},
"description": {
@@ -831,6 +857,7 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
"hidden",
"name",
"period",
"website",
"description"
]
},
@@ -839,7 +866,11 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"title",
"icon",
"columns",
"hidden",
"keepTogether",
"startOnNewPage",
"items"
],
"description": "The section to display the projects of the author."
@@ -928,8 +959,11 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
"id",
"hidden",
"icon",
"iconColor",
"name",
"proficiency"
"proficiency",
"level",
"keywords"
]
},
"description": "The items to display in the skills section."
@@ -937,7 +971,11 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"title",
"icon",
"columns",
"hidden",
"keepTogether",
"startOnNewPage",
"items"
],
"description": "The section to display the skills of the author."
@@ -1009,7 +1047,8 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
"id",
"hidden",
"language",
"fluency"
"fluency",
"level"
]
},
"description": "The items to display in the languages section."
@@ -1017,7 +1056,11 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"title",
"icon",
"columns",
"hidden",
"keepTogether",
"startOnNewPage",
"items"
],
"description": "The section to display the languages of the author."
@@ -1095,7 +1138,9 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
"id",
"hidden",
"icon",
"name"
"iconColor",
"name",
"keywords"
]
},
"description": "The items to display in the interests section."
@@ -1103,7 +1148,11 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"title",
"icon",
"columns",
"hidden",
"keepTogether",
"startOnNewPage",
"items"
],
"description": "The section to display the interests of the author."
@@ -1192,7 +1241,8 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"url",
"label"
"label",
"inlineLink"
]
},
"description": {
@@ -1206,6 +1256,7 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
"title",
"awarder",
"date",
"website",
"description"
]
},
@@ -1214,7 +1265,11 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"title",
"icon",
"columns",
"hidden",
"keepTogether",
"startOnNewPage",
"items"
],
"description": "The section to display the awards of the author."
@@ -1303,7 +1358,8 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"url",
"label"
"label",
"inlineLink"
]
},
"description": {
@@ -1317,6 +1373,7 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
"title",
"issuer",
"date",
"website",
"description"
]
},
@@ -1325,7 +1382,11 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"title",
"icon",
"columns",
"hidden",
"keepTogether",
"startOnNewPage",
"items"
],
"description": "The section to display the certifications of the author."
@@ -1414,7 +1475,8 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"url",
"label"
"label",
"inlineLink"
]
},
"description": {
@@ -1428,6 +1490,7 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
"title",
"publisher",
"date",
"website",
"description"
]
},
@@ -1436,7 +1499,11 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"title",
"icon",
"columns",
"hidden",
"keepTogether",
"startOnNewPage",
"items"
],
"description": "The section to display the publications of the author."
@@ -1525,7 +1592,8 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"url",
"label"
"label",
"inlineLink"
]
},
"description": {
@@ -1539,6 +1607,7 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
"organization",
"location",
"period",
"website",
"description"
]
},
@@ -1547,7 +1616,11 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"title",
"icon",
"columns",
"hidden",
"keepTogether",
"startOnNewPage",
"items"
],
"description": "The section to display the volunteer experience of the author."
@@ -1632,7 +1705,8 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"url",
"label"
"label",
"inlineLink"
]
},
"phone": {
@@ -1649,6 +1723,7 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
"hidden",
"name",
"position",
"website",
"phone",
"description"
]
@@ -1658,7 +1733,11 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"title",
"icon",
"columns",
"hidden",
"keepTogether",
"startOnNewPage",
"items"
],
"description": "The section to display the references of the author."
@@ -1761,7 +1840,11 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"title",
"icon",
"columns",
"hidden",
"keepTogether",
"startOnNewPage",
"id",
"type",
"items"
@@ -1839,7 +1922,11 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"title",
"icon",
"columns",
"hidden",
"keepTogether",
"startOnNewPage",
"id",
"type",
"items"
@@ -1943,7 +2030,8 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"url",
"label"
"label",
"inlineLink"
]
}
},
@@ -1951,8 +2039,10 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
"id",
"hidden",
"icon",
"iconColor",
"network",
"username"
"username",
"website"
],
"additionalProperties": {}
},
@@ -1961,7 +2051,11 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"title",
"icon",
"columns",
"hidden",
"keepTogether",
"startOnNewPage",
"id",
"type",
"items"
@@ -2064,7 +2158,8 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"url",
"label"
"label",
"inlineLink"
]
},
"description": {
@@ -2111,7 +2206,9 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
"position",
"location",
"period",
"description"
"website",
"description",
"roles"
],
"additionalProperties": {}
},
@@ -2120,7 +2217,11 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"title",
"icon",
"columns",
"hidden",
"keepTogether",
"startOnNewPage",
"id",
"type",
"items"
@@ -2231,7 +2332,8 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"url",
"label"
"label",
"inlineLink"
]
},
"description": {
@@ -2248,6 +2350,7 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
"grade",
"location",
"period",
"website",
"description"
],
"additionalProperties": {}
@@ -2257,7 +2360,11 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"title",
"icon",
"columns",
"hidden",
"keepTogether",
"startOnNewPage",
"id",
"type",
"items"
@@ -2352,7 +2459,8 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"url",
"label"
"label",
"inlineLink"
]
},
"description": {
@@ -2365,6 +2473,7 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
"hidden",
"name",
"period",
"website",
"description"
],
"additionalProperties": {}
@@ -2374,7 +2483,11 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"title",
"icon",
"columns",
"hidden",
"keepTogether",
"startOnNewPage",
"id",
"type",
"items"
@@ -2473,8 +2586,11 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
"id",
"hidden",
"icon",
"iconColor",
"name",
"proficiency"
"proficiency",
"level",
"keywords"
],
"additionalProperties": {}
},
@@ -2483,7 +2599,11 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"title",
"icon",
"columns",
"hidden",
"keepTogether",
"startOnNewPage",
"id",
"type",
"items"
@@ -2565,7 +2685,8 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
"id",
"hidden",
"language",
"fluency"
"fluency",
"level"
],
"additionalProperties": {}
},
@@ -2574,7 +2695,11 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"title",
"icon",
"columns",
"hidden",
"keepTogether",
"startOnNewPage",
"id",
"type",
"items"
@@ -2662,7 +2787,9 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
"id",
"hidden",
"icon",
"name"
"iconColor",
"name",
"keywords"
],
"additionalProperties": {}
},
@@ -2671,7 +2798,11 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"title",
"icon",
"columns",
"hidden",
"keepTogether",
"startOnNewPage",
"id",
"type",
"items"
@@ -2770,7 +2901,8 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"url",
"label"
"label",
"inlineLink"
]
},
"description": {
@@ -2784,6 +2916,7 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
"title",
"awarder",
"date",
"website",
"description"
],
"additionalProperties": {}
@@ -2793,7 +2926,11 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"title",
"icon",
"columns",
"hidden",
"keepTogether",
"startOnNewPage",
"id",
"type",
"items"
@@ -2892,7 +3029,8 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"url",
"label"
"label",
"inlineLink"
]
},
"description": {
@@ -2906,6 +3044,7 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
"title",
"issuer",
"date",
"website",
"description"
],
"additionalProperties": {}
@@ -2915,7 +3054,11 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"title",
"icon",
"columns",
"hidden",
"keepTogether",
"startOnNewPage",
"id",
"type",
"items"
@@ -3014,7 +3157,8 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"url",
"label"
"label",
"inlineLink"
]
},
"description": {
@@ -3028,6 +3172,7 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
"title",
"publisher",
"date",
"website",
"description"
],
"additionalProperties": {}
@@ -3037,7 +3182,11 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"title",
"icon",
"columns",
"hidden",
"keepTogether",
"startOnNewPage",
"id",
"type",
"items"
@@ -3136,7 +3285,8 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"url",
"label"
"label",
"inlineLink"
]
},
"description": {
@@ -3150,6 +3300,7 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
"organization",
"location",
"period",
"website",
"description"
],
"additionalProperties": {}
@@ -3159,7 +3310,11 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"title",
"icon",
"columns",
"hidden",
"keepTogether",
"startOnNewPage",
"id",
"type",
"items"
@@ -3254,7 +3409,8 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"url",
"label"
"label",
"inlineLink"
]
},
"phone": {
@@ -3271,6 +3427,7 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
"hidden",
"name",
"position",
"website",
"phone",
"description"
],
@@ -3281,7 +3438,11 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"title",
"icon",
"columns",
"hidden",
"keepTogether",
"startOnNewPage",
"id",
"type",
"items"
@@ -3360,6 +3521,7 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
}
},
"required": [
"sidebarWidth",
"pages"
],
"description": "The layout of the resume. Determines the structure and arrangement of the sections on the resume."
@@ -3424,7 +3586,14 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
},
"required": [
"gapX",
"gapY"
"gapY",
"marginX",
"marginY",
"format",
"locale",
"hideLinkUnderline",
"hideIcons",
"hideSectionIcons"
],
"description": "The page settings of the resume. Determines the margins, format, and locale of the resume."
},
@@ -3533,7 +3702,10 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
}
},
"required": [
"fontFamily"
"fontFamily",
"fontWeights",
"fontSize",
"lineHeight"
],
"description": "The typography for the body of the resume."
},
@@ -3581,7 +3753,10 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
}
},
"required": [
"fontFamily"
"fontFamily",
"fontWeights",
"fontSize",
"lineHeight"
],
"description": "The typography for the headings of the resume."
}
@@ -3597,7 +3772,6 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
"description": "Personal notes for the resume. Can be used to add any additional information or instructions for the resume. These notes are not displayed on the resume, they are only visible to the author of the resume when editing the resume. This should be a HTML-formatted string."
},
"styleRules": {
"default": [],
"description": "Structured style rules that target semantic resume sections and slots for React PDF rendering.",
"type": "array",
"items": {}
@@ -3639,11 +3813,13 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
}
},
"required": [
"template",
"layout",
"page",
"design",
"typography",
"notes"
"notes",
"styleRules"
],
"description": "Metadata for the resume, such as template, layout, typography, etc. This section describes the overall design and appearance of the resume."
}
+10 -10
View File
@@ -13,7 +13,7 @@
"type": "git",
"url": "https://github.com/amruthpillai/reactive-resume.git"
},
"packageManager": "pnpm@11.24.0+sha512.bd27e345e976dcb0be0b7a1228217b049a817e21b1f355c90dbe7dc46671895a8bc1e6d06c24554505ea93ea0b45f489a27ec1bfbc8de6a9659fca0f16fa0000",
"packageManager": "pnpm@11.25.0",
"workspaces": [
"apps/*",
"packages/*",
@@ -42,26 +42,26 @@
"test:agent": "turbo run test:agent --concurrency=4"
},
"devDependencies": {
"@biomejs/biome": "^2.5.10",
"@biomejs/biome": "^2.5.12",
"@commitlint/cli": "^21.2.2",
"@commitlint/config-conventional": "^21.2.2",
"@playwright/test": "^1.62.1",
"@reactive-resume/config": "workspace:*",
"@testing-library/dom": "^10.4.1",
"@testing-library/jest-dom": "^7.0.1",
"@testing-library/react": "^16.3.2",
"@testing-library/user-event": "^14.6.6",
"@types/node": "^26.4.0",
"@testing-library/react": "^16.3.3",
"@testing-library/user-event": "^14.6.7",
"@types/node": "^26.4.1",
"@types/pg": "^8.23.1",
"@vitest/coverage-v8": "^4.1.11",
"@vitest/coverage-v8": "^5.0.0",
"github-actionlint": "1.7.12",
"happy-dom": "^20.11.8",
"knip": "^6.32.3",
"lefthook": "^2.1.10",
"happy-dom": "^20.14.0",
"knip": "^6.34.0",
"lefthook": "^2.1.12",
"markdownlint-cli2": "0.23.2",
"pg": "^8.23.0",
"turbo": "^2.10.12",
"typescript": "^7.0.2",
"vitest": "^4.1.11"
"vitest": "^5.0.0"
}
}
+2 -2
View File
@@ -25,11 +25,11 @@
"@reactive-resume/utils": "workspace:*",
"deepmerge-ts": "^8.0.2",
"jsonrepair": "^3.15.0",
"zod": "^4.4.3"
"zod": "^4.5.4"
},
"devDependencies": {
"@reactive-resume/config": "workspace:*",
"ai": "^7.0.83",
"ai": "^7.0.92",
"@typescript/native-preview": "7.0.0-dev.20260707.2",
"typescript": "^7.0.2"
}
+17 -17
View File
@@ -21,20 +21,20 @@
"test:agent": "vitest run --reporter=agent --reporter=json --outputFile.json=reports/vitest-results.json --passWithNoTests"
},
"dependencies": {
"@ai-sdk/anthropic": "^4.0.44",
"@ai-sdk/cerebras": "^3.0.39",
"@ai-sdk/cohere": "^4.0.33",
"@ai-sdk/deepseek": "^3.0.35",
"@ai-sdk/fireworks": "^3.0.42",
"@ai-sdk/google": "^4.0.54",
"@ai-sdk/groq": "^4.0.33",
"@ai-sdk/mistral": "^4.0.35",
"@ai-sdk/openai": "^4.0.50",
"@ai-sdk/openai-compatible": "^3.0.39",
"@ai-sdk/perplexity": "^4.0.34",
"@ai-sdk/togetherai": "^3.0.40",
"@ai-sdk/xai": "^4.0.47",
"@aws-sdk/client-s3": "^3.1119.0",
"@ai-sdk/anthropic": "^4.0.49",
"@ai-sdk/cerebras": "^3.0.43",
"@ai-sdk/cohere": "^4.0.37",
"@ai-sdk/deepseek": "^3.0.39",
"@ai-sdk/fireworks": "^3.0.46",
"@ai-sdk/google": "^4.0.63",
"@ai-sdk/groq": "^4.0.37",
"@ai-sdk/mistral": "^4.0.39",
"@ai-sdk/openai": "^4.0.58",
"@ai-sdk/openai-compatible": "^3.0.43",
"@ai-sdk/perplexity": "^4.0.39",
"@ai-sdk/togetherai": "^3.0.44",
"@ai-sdk/xai": "^4.0.54",
"@aws-sdk/client-s3": "^3.1126.0",
"@orpc/client": "^1.15.0",
"@orpc/experimental-ratelimit": "^1.15.0",
"@orpc/server": "^1.15.0",
@@ -46,12 +46,12 @@
"@reactive-resume/resume": "workspace:*",
"@reactive-resume/schema": "workspace:*",
"@reactive-resume/utils": "workspace:*",
"ai": "^7.0.83",
"ai": "^7.0.92",
"bcrypt": "^6.0.0",
"better-auth": "1.7.2",
"drizzle-orm": "1.0.0-rc.4",
"drizzle-zod": "1.0.0-beta.14-a36c63d",
"es-toolkit": "^1.51.0",
"es-toolkit": "^1.52.0",
"ioredis": "^6.0.0",
"jsonrepair": "^3.15.0",
"ollama-ai-provider-v2": "^4.0.1",
@@ -60,7 +60,7 @@
"sharp": "^0.35.4",
"tokenx": "^2.1.0",
"ts-pattern": "^5.9.0",
"zod": "^4.4.3"
"zod": "^4.5.4"
},
"devDependencies": {
"@reactive-resume/config": "workspace:*",
+1 -1
View File
@@ -17,7 +17,7 @@
"dependencies": {
"@better-auth/api-key": "^1.7.2",
"@better-auth/drizzle-adapter": "^1.7.2",
"@better-auth/infra": "^0.4.3",
"@better-auth/infra": "^0.4.5",
"@better-auth/oauth-provider": "^1.7.2",
"@better-auth/passkey": "^1.7.2",
"@reactive-resume/db": "workspace:*",
+4 -4
View File
@@ -56,16 +56,16 @@
"@deepseek-ai/schemastery": "^3.18.1"
},
"devDependencies": {
"@deepseek-ai/cordis": "^4.0.1",
"@deepseek-ai/cordis": "^4.0.2",
"@deepseek-ai/dsh-mcp-client": "^0.1.0-rc.8",
"@deepseek-ai/dsh-system-prompt": "^0.1.0-rc.8",
"@deepseek-ai/schemastery": "^3.18.1",
"@deepseek-ai/schemastery": "^3.18.2",
"@reactive-resume/config": "workspace:*",
"@reactive-resume/mcp": "workspace:*",
"@typescript/native-preview": "7.0.0-dev.20260707.2",
"tsdown": "^0.22.14",
"tsdown": "^0.23.0",
"typescript": "^7.0.2",
"vitest": "^4.1.11"
"vitest": "^5.0.0"
},
"dsh": {
"bundle": {
+1 -1
View File
@@ -17,7 +17,7 @@
},
"dependencies": {
"@reactive-resume/env": "workspace:*",
"nodemailer": "^9.0.5",
"nodemailer": "^10.0.0",
"react": "^19.2.8",
"react-email": "^6.9.3"
},
+2 -2
View File
@@ -16,11 +16,11 @@
"dependencies": {
"@reactive-resume/utils": "workspace:*",
"@t3-oss/env-core": "^0.13.11",
"zod": "^4.4.3"
"zod": "^4.5.4"
},
"devDependencies": {
"@reactive-resume/config": "workspace:*",
"@types/node": "^26.4.0",
"@types/node": "^26.4.1",
"@typescript/native-preview": "7.0.0-dev.20260707.2",
"typescript": "^7.0.2"
}
+1 -1
View File
@@ -19,7 +19,7 @@
"@reactive-resume/resume": "workspace:*",
"@reactive-resume/schema": "workspace:*",
"@reactive-resume/utils": "workspace:*",
"zod": "^4.4.3"
"zod": "^4.5.4"
},
"devDependencies": {
"@reactive-resume/config": "workspace:*",
+2 -2
View File
@@ -23,12 +23,12 @@
"@reactive-resume/env": "workspace:*",
"@reactive-resume/resume": "workspace:*",
"@reactive-resume/schema": "workspace:*",
"zod": "^4.4.3"
"zod": "^4.5.4"
},
"devDependencies": {
"@reactive-resume/config": "workspace:*",
"@typescript/native-preview": "7.0.0-dev.20260707.2",
"typescript": "^7.0.2",
"vitest": "^4.1.11"
"vitest": "^5.0.0"
}
}
+4 -4
View File
@@ -24,24 +24,24 @@
"test:agent": "vitest run --reporter=agent --reporter=json --outputFile.json=reports/vitest-results.json --passWithNoTests"
},
"dependencies": {
"@react-pdf/renderer": "^4.8.1",
"@react-pdf/renderer": "^4.9.0",
"@reactive-resume/fonts": "workspace:*",
"@reactive-resume/resume": "workspace:*",
"@reactive-resume/schema": "workspace:*",
"@reactive-resume/utils": "workspace:*",
"cjk-regex": "^3.4.0",
"node-html-parser": "^9.0.1",
"node-html-parser": "^9.0.3",
"phosphor-icons-react-pdf": "^0.1.3",
"react": "^19.2.8",
"react-pdf-html": "^2.1.5"
},
"devDependencies": {
"@napi-rs/canvas": "1.0.8",
"@react-pdf/types": "^2.13.1",
"@react-pdf/types": "^2.14.0",
"@reactive-resume/config": "workspace:*",
"@types/react": "^19.2.18",
"@typescript/native-preview": "7.0.0-dev.20260707.2",
"pdfjs-dist": "6.2.108",
"pdfjs-dist": "6.3.289",
"pixelmatch": "^7.2.0",
"typescript": "^7.0.2"
}
+2 -2
View File
@@ -28,13 +28,13 @@
"css-tree": "^3.2.1",
"fast-json-patch": "^3.1.1",
"wink-porter2-stemmer": "2.0.1",
"zod": "^4.4.3"
"zod": "^4.5.4"
},
"devDependencies": {
"@reactive-resume/config": "workspace:*",
"@typescript/native-preview": "7.0.0-dev.20260707.2",
"fast-check": "^4.9.0",
"tsx": "^4.23.12",
"tsx": "^4.23.13",
"typescript": "^7.0.2"
}
}
+1 -1
View File
@@ -19,7 +19,7 @@
"test:agent": "vitest run --reporter=agent --reporter=json --outputFile.json=reports/vitest-results.json --passWithNoTests"
},
"dependencies": {
"zod": "^4.4.3"
"zod": "^4.5.4"
},
"devDependencies": {
"@reactive-resume/config": "workspace:*",
@@ -61,7 +61,7 @@ describe("createCustomSectionItemJsonSchemas", () => {
expect(schemas.experience).toMatchObject({
schemaName: "experienceItemSchema",
schema: {
required: ["id", "hidden", "company", "position", "location", "period", "description"],
required: ["id", "hidden", "company", "position", "location", "period", "website", "description", "roles"],
},
});
expect(schemas["cover-letter"]).toMatchObject({
+5 -5
View File
@@ -18,18 +18,18 @@
"test:agent": "vitest run --reporter=agent --reporter=json --outputFile.json=reports/vitest-results.json --passWithNoTests"
},
"dependencies": {
"@base-ui/react": "^1.7.0",
"@base-ui/react": "^1.8.0",
"@fontsource-variable/ibm-plex-sans": "^5.3.0",
"@phosphor-icons/react": "^2.1.10",
"@phosphor-icons/web": "^2.1.2",
"@reactive-resume/utils": "workspace:*",
"@shadcn/react": "^0.3.0",
"@shadcn/react": "^0.3.1",
"class-variance-authority": "^0.7.1",
"cmdk": "^1.1.1",
"react": "^19.2.8",
"react-dom": "^19.2.8",
"react-resizable-panels": "^4.12.3",
"shadcn": "^4.19.0",
"shadcn": "^4.21.0",
"tw-animate-css": "^1.4.0"
},
"devDependencies": {
@@ -37,9 +37,9 @@
"@tailwindcss/postcss": "^4.3.3",
"@tailwindcss/typography": "^0.5.20",
"@types/react": "^19.2.18",
"@types/react-dom": "^19.2.5",
"@types/react-dom": "^19.2.7",
"@typescript/native-preview": "7.0.0-dev.20260707.2",
"postcss": "^8.5.26",
"postcss": "^8.5.28",
"tailwindcss": "^4.3.3",
"typescript": "^7.0.2"
}
+3 -3
View File
@@ -22,17 +22,17 @@
"test:agent": "vitest run --reporter=agent --reporter=json --outputFile.json=reports/vitest-results.json --passWithNoTests"
},
"dependencies": {
"@sindresorhus/slugify": "^3.0.0",
"@sindresorhus/slugify": "^3.0.1",
"@uiw/color-convert": "^2.10.3",
"clsx": "^2.1.1",
"tailwind-merge": "^3.6.0",
"unique-names-generator": "^4.7.1",
"uuid": "^14.0.2",
"zod": "^4.4.3"
"zod": "^4.5.4"
},
"devDependencies": {
"@reactive-resume/config": "workspace:*",
"@types/node": "^26.4.0",
"@types/node": "^26.4.1",
"@typescript/native-preview": "7.0.0-dev.20260707.2",
"typescript": "^7.0.2"
}
+1671 -2086
View File
File diff suppressed because it is too large Load Diff
+189 -189
View File
@@ -15,18 +15,18 @@ Choose one coherent shape for each union value. Required fields are local to tha
| Path | Type/variant | Item schema | Representative required shape |
| --- | --- | --- | --- |
| `customSections[]` | `summary` | `summaryItemSchema` | `{ id, hidden, content }` |
| `customSections[]` | `profiles` | `profileItemSchema` | `{ id, hidden, icon, network, username }` |
| `customSections[]` | `experience` | `experienceItemSchema` | `{ id, hidden, company, position, location, period, description }` |
| `customSections[]` | `education` | `educationItemSchema` | `{ id, hidden, school, degree, area, grade, location, period, description }` |
| `customSections[]` | `projects` | `projectItemSchema` | `{ id, hidden, name, period, description }` |
| `customSections[]` | `skills` | `skillItemSchema` | `{ id, hidden, icon, name, proficiency }` |
| `customSections[]` | `languages` | `languageItemSchema` | `{ id, hidden, language, fluency }` |
| `customSections[]` | `interests` | `interestItemSchema` | `{ id, hidden, icon, name }` |
| `customSections[]` | `awards` | `awardItemSchema` | `{ id, hidden, title, awarder, date, description }` |
| `customSections[]` | `certifications` | `certificationItemSchema` | `{ id, hidden, title, issuer, date, description }` |
| `customSections[]` | `publications` | `publicationItemSchema` | `{ id, hidden, title, publisher, date, description }` |
| `customSections[]` | `volunteer` | `volunteerItemSchema` | `{ id, hidden, organization, location, period, description }` |
| `customSections[]` | `references` | `referenceItemSchema` | `{ id, hidden, name, position, phone, description }` |
| `customSections[]` | `profiles` | `profileItemSchema` | `{ id, hidden, icon, iconColor, network, username, website }` |
| `customSections[]` | `experience` | `experienceItemSchema` | `{ id, hidden, company, position, location, period, website, description, roles }` |
| `customSections[]` | `education` | `educationItemSchema` | `{ id, hidden, school, degree, area, grade, location, period, website, description }` |
| `customSections[]` | `projects` | `projectItemSchema` | `{ id, hidden, name, period, website, description }` |
| `customSections[]` | `skills` | `skillItemSchema` | `{ id, hidden, icon, iconColor, name, proficiency, level, keywords }` |
| `customSections[]` | `languages` | `languageItemSchema` | `{ id, hidden, language, fluency, level }` |
| `customSections[]` | `interests` | `interestItemSchema` | `{ id, hidden, icon, iconColor, name, keywords }` |
| `customSections[]` | `awards` | `awardItemSchema` | `{ id, hidden, title, awarder, date, website, description }` |
| `customSections[]` | `certifications` | `certificationItemSchema` | `{ id, hidden, title, issuer, date, website, description }` |
| `customSections[]` | `publications` | `publicationItemSchema` | `{ id, hidden, title, publisher, date, website, description }` |
| `customSections[]` | `volunteer` | `volunteerItemSchema` | `{ id, hidden, organization, location, period, website, description }` |
| `customSections[]` | `references` | `referenceItemSchema` | `{ id, hidden, name, position, website, phone, description }` |
| `customSections[]` | `cover-letter` | `coverLetterItemSchema` | `{ id, hidden, recipient, content }` |
## Field catalog
@@ -58,42 +58,42 @@ Choose one coherent shape for each union value. Required fields are local to tha
| `basics.customFields[].id` | `string` | yes | — | The unique identifier for the custom field. Usually generated as a UUID. |
| `basics.customFields[].icon` | `string` | yes | — | The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available. |
| `basics.customFields[].text` | `string` | yes | — | The text to display for the custom field. |
| `basics.customFields[].link` | `string` | no | default: "" | If the custom field should be a link, the URL to link to. |
| `basics.customFields[].link` | `string` | yes | default: "" | If the custom field should be a link, the URL to link to. |
| `summary` | `object` | yes | — | Summary section of the resume, useful for a short bio or introduction |
| `summary.title` | `string` | yes | — | The title of the summary of the resume. |
| `summary.icon` | `string` | no | default: "" | Phosphor icon name to display before the summary section title in the PDF output. Empty string uses the default summary icon; 'none' hides the icon. |
| `summary.columns` | `integer` | no | minimum: 1; maximum: 6; default: 1 | The number of columns the summary should span across. |
| `summary.icon` | `string` | yes | default: "" | Phosphor icon name to display before the summary section title in the PDF output. Empty string uses the default summary icon; 'none' hides the icon. |
| `summary.columns` | `integer` | yes | minimum: 1; maximum: 6; default: 1 | The number of columns the summary should span across. |
| `summary.hidden` | `boolean` | yes | — | Whether to hide the summary from the resume. |
| `summary.keepTogether` | `boolean` | no | default: false | If true, the summary is kept on a single page instead of splitting across a page break. |
| `summary.startOnNewPage` | `boolean` | no | default: false | If true, the summary always begins on a new page. |
| `summary.keepTogether` | `boolean` | yes | default: false | If true, the summary is kept on a single page instead of splitting across a page break. |
| `summary.startOnNewPage` | `boolean` | yes | default: false | If true, the summary always begins on a new page. |
| `summary.content` | `string` | yes | — | The content of the summary of the resume. This should be a HTML-formatted string. |
| `sections` | `object` | yes | — | Various sections of the resume, such as experience, education, projects, etc. |
| `sections.profiles` | `object` | yes | — | The section to display the profiles of the author. |
| `sections.profiles.title` | `string` | yes | — | The title of the section. |
| `sections.profiles.icon` | `string` | no | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.profiles.columns` | `integer` | no | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.profiles.icon` | `string` | yes | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.profiles.columns` | `integer` | yes | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.profiles.hidden` | `boolean` | yes | — | Whether to hide the section from the resume. |
| `sections.profiles.keepTogether` | `boolean` | no | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.profiles.startOnNewPage` | `boolean` | no | default: false | If true, the section always begins on a new page. |
| `sections.profiles.keepTogether` | `boolean` | yes | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.profiles.startOnNewPage` | `boolean` | yes | default: false | If true, the section always begins on a new page. |
| `sections.profiles.items` | `array` | yes | — | The items to display in the profiles section. |
| `sections.profiles.items[]` | `object` | — | — | — |
| `sections.profiles.items[].id` | `string` | yes | — | The unique identifier for the item. Usually generated as a UUID. |
| `sections.profiles.items[].hidden` | `boolean` | yes | — | Whether to hide the item from the resume. |
| `sections.profiles.items[].icon` | `string` | yes | — | The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available. |
| `sections.profiles.items[].iconColor` | `string` | no | default: "" | Custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color. |
| `sections.profiles.items[].iconColor` | `string` | yes | default: "" | Custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color. |
| `sections.profiles.items[].network` | `string` | yes | minLength: 1 | The name of the network or platform. |
| `sections.profiles.items[].username` | `string` | yes | — | The username of the author on the network or platform. |
| `sections.profiles.items[].website` | `object` | no | default: {"url":"","label":"","inlineLink":false} | The link to the profile of the author on the network or platform, if any. |
| `sections.profiles.items[].website` | `object` | yes | default: {"url":"","label":"","inlineLink":false} | The link to the profile of the author on the network or platform, if any. |
| `sections.profiles.items[].website.url` | `string` | yes | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `sections.profiles.items[].website.label` | `string` | yes | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `sections.profiles.items[].website.inlineLink` | `boolean` | no | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `sections.profiles.items[].website.inlineLink` | `boolean` | yes | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `sections.experience` | `object` | yes | — | The section to display the experience of the author. |
| `sections.experience.title` | `string` | yes | — | The title of the section. |
| `sections.experience.icon` | `string` | no | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.experience.columns` | `integer` | no | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.experience.icon` | `string` | yes | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.experience.columns` | `integer` | yes | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.experience.hidden` | `boolean` | yes | — | Whether to hide the section from the resume. |
| `sections.experience.keepTogether` | `boolean` | no | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.experience.startOnNewPage` | `boolean` | no | default: false | If true, the section always begins on a new page. |
| `sections.experience.keepTogether` | `boolean` | yes | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.experience.startOnNewPage` | `boolean` | yes | default: false | If true, the section always begins on a new page. |
| `sections.experience.items` | `array` | yes | — | The items to display in the experience section. |
| `sections.experience.items[]` | `object` | — | — | — |
| `sections.experience.items[].id` | `string` | yes | — | The unique identifier for the item. Usually generated as a UUID. |
@@ -102,12 +102,12 @@ Choose one coherent shape for each union value. Required fields are local to tha
| `sections.experience.items[].position` | `string` | yes | — | The position held at the company or organization. Used when there is only a single role. If multiple roles are provided in the 'roles' field, this serves as a summary title or can be left blank. |
| `sections.experience.items[].location` | `string` | yes | — | The location of the company or organization. |
| `sections.experience.items[].period` | `string` | yes | — | The overall period of time at the company. When multiple roles are used, this should reflect the total tenure. |
| `sections.experience.items[].website` | `object` | no | default: {"url":"","label":"","inlineLink":false} | The website of the company or organization, if any. |
| `sections.experience.items[].website` | `object` | yes | default: {"url":"","label":"","inlineLink":false} | The website of the company or organization, if any. |
| `sections.experience.items[].website.url` | `string` | yes | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `sections.experience.items[].website.label` | `string` | yes | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `sections.experience.items[].website.inlineLink` | `boolean` | no | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `sections.experience.items[].website.inlineLink` | `boolean` | yes | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `sections.experience.items[].description` | `string` | yes | — | The description of the experience. This should be a HTML-formatted string. |
| `sections.experience.items[].roles` | `array` | no | default: [] | List of individual roles held at this company to show career progression. |
| `sections.experience.items[].roles` | `array` | yes | default: [] | List of individual roles held at this company to show career progression. |
| `sections.experience.items[].roles[]` | `object` | — | — | — |
| `sections.experience.items[].roles[].id` | `string` | yes | — | The unique identifier for the role. Usually generated as a UUID. |
| `sections.experience.items[].roles[].position` | `string` | yes | — | The position or job title for this role. |
@@ -115,11 +115,11 @@ Choose one coherent shape for each union value. Required fields are local to tha
| `sections.experience.items[].roles[].description` | `string` | yes | — | The description of this specific role. This should be a HTML-formatted string. |
| `sections.education` | `object` | yes | — | The section to display the education of the author. |
| `sections.education.title` | `string` | yes | — | The title of the section. |
| `sections.education.icon` | `string` | no | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.education.columns` | `integer` | no | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.education.icon` | `string` | yes | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.education.columns` | `integer` | yes | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.education.hidden` | `boolean` | yes | — | Whether to hide the section from the resume. |
| `sections.education.keepTogether` | `boolean` | no | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.education.startOnNewPage` | `boolean` | no | default: false | If true, the section always begins on a new page. |
| `sections.education.keepTogether` | `boolean` | yes | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.education.startOnNewPage` | `boolean` | yes | default: false | If true, the section always begins on a new page. |
| `sections.education.items` | `array` | yes | — | The items to display in the education section. |
| `sections.education.items[]` | `object` | — | — | — |
| `sections.education.items[].id` | `string` | yes | — | The unique identifier for the item. Usually generated as a UUID. |
@@ -130,84 +130,84 @@ Choose one coherent shape for each union value. Required fields are local to tha
| `sections.education.items[].grade` | `string` | yes | — | The grade or score achieved. |
| `sections.education.items[].location` | `string` | yes | — | The location of the school or institution. |
| `sections.education.items[].period` | `string` | yes | — | The period of time the education was obtained over. |
| `sections.education.items[].website` | `object` | no | default: {"url":"","label":"","inlineLink":false} | The website of the school or institution, if any. |
| `sections.education.items[].website` | `object` | yes | default: {"url":"","label":"","inlineLink":false} | The website of the school or institution, if any. |
| `sections.education.items[].website.url` | `string` | yes | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `sections.education.items[].website.label` | `string` | yes | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `sections.education.items[].website.inlineLink` | `boolean` | no | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `sections.education.items[].website.inlineLink` | `boolean` | yes | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `sections.education.items[].description` | `string` | yes | — | The description of the education. This should be a HTML-formatted string. |
| `sections.projects` | `object` | yes | — | The section to display the projects of the author. |
| `sections.projects.title` | `string` | yes | — | The title of the section. |
| `sections.projects.icon` | `string` | no | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.projects.columns` | `integer` | no | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.projects.icon` | `string` | yes | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.projects.columns` | `integer` | yes | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.projects.hidden` | `boolean` | yes | — | Whether to hide the section from the resume. |
| `sections.projects.keepTogether` | `boolean` | no | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.projects.startOnNewPage` | `boolean` | no | default: false | If true, the section always begins on a new page. |
| `sections.projects.keepTogether` | `boolean` | yes | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.projects.startOnNewPage` | `boolean` | yes | default: false | If true, the section always begins on a new page. |
| `sections.projects.items` | `array` | yes | — | The items to display in the projects section. |
| `sections.projects.items[]` | `object` | — | — | — |
| `sections.projects.items[].id` | `string` | yes | — | The unique identifier for the item. Usually generated as a UUID. |
| `sections.projects.items[].hidden` | `boolean` | yes | — | Whether to hide the item from the resume. |
| `sections.projects.items[].name` | `string` | yes | minLength: 1 | The name of the project. |
| `sections.projects.items[].period` | `string` | yes | — | The period of time the project was worked on. |
| `sections.projects.items[].website` | `object` | no | default: {"url":"","label":"","inlineLink":false} | The link to the project, if any. |
| `sections.projects.items[].website` | `object` | yes | default: {"url":"","label":"","inlineLink":false} | The link to the project, if any. |
| `sections.projects.items[].website.url` | `string` | yes | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `sections.projects.items[].website.label` | `string` | yes | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `sections.projects.items[].website.inlineLink` | `boolean` | no | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `sections.projects.items[].website.inlineLink` | `boolean` | yes | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `sections.projects.items[].description` | `string` | yes | — | The description of the project. This should be a HTML-formatted string. |
| `sections.skills` | `object` | yes | — | The section to display the skills of the author. |
| `sections.skills.title` | `string` | yes | — | The title of the section. |
| `sections.skills.icon` | `string` | no | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.skills.columns` | `integer` | no | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.skills.icon` | `string` | yes | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.skills.columns` | `integer` | yes | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.skills.hidden` | `boolean` | yes | — | Whether to hide the section from the resume. |
| `sections.skills.keepTogether` | `boolean` | no | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.skills.startOnNewPage` | `boolean` | no | default: false | If true, the section always begins on a new page. |
| `sections.skills.keepTogether` | `boolean` | yes | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.skills.startOnNewPage` | `boolean` | yes | default: false | If true, the section always begins on a new page. |
| `sections.skills.items` | `array` | yes | — | The items to display in the skills section. |
| `sections.skills.items[]` | `object` | — | — | — |
| `sections.skills.items[].id` | `string` | yes | — | The unique identifier for the item. Usually generated as a UUID. |
| `sections.skills.items[].hidden` | `boolean` | yes | — | Whether to hide the item from the resume. |
| `sections.skills.items[].icon` | `string` | yes | — | The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available. |
| `sections.skills.items[].iconColor` | `string` | no | default: "" | Custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color. |
| `sections.skills.items[].iconColor` | `string` | yes | default: "" | Custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color. |
| `sections.skills.items[].name` | `string` | yes | minLength: 1 | The name of the skill. |
| `sections.skills.items[].proficiency` | `string` | yes | — | The proficiency level of the skill. Can be any text, such as 'Beginner', 'Intermediate', 'Advanced', etc. |
| `sections.skills.items[].level` | `number` | no | minimum: 0; maximum: 5; default: 0 | The proficiency level of the skill, defined as a number between 0 and 5. If set to 0, the icons displaying the level will be hidden. |
| `sections.skills.items[].keywords` | `array` | no | default: [] | The keywords associated with the skill, if any. These are displayed as tags below the name. |
| `sections.skills.items[].level` | `number` | yes | minimum: 0; maximum: 5; default: 0 | The proficiency level of the skill, defined as a number between 0 and 5. If set to 0, the icons displaying the level will be hidden. |
| `sections.skills.items[].keywords` | `array` | yes | default: [] | The keywords associated with the skill, if any. These are displayed as tags below the name. |
| `sections.skills.items[].keywords[]` | `string` | — | — | — |
| `sections.languages` | `object` | yes | — | The section to display the languages of the author. |
| `sections.languages.title` | `string` | yes | — | The title of the section. |
| `sections.languages.icon` | `string` | no | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.languages.columns` | `integer` | no | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.languages.icon` | `string` | yes | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.languages.columns` | `integer` | yes | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.languages.hidden` | `boolean` | yes | — | Whether to hide the section from the resume. |
| `sections.languages.keepTogether` | `boolean` | no | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.languages.startOnNewPage` | `boolean` | no | default: false | If true, the section always begins on a new page. |
| `sections.languages.keepTogether` | `boolean` | yes | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.languages.startOnNewPage` | `boolean` | yes | default: false | If true, the section always begins on a new page. |
| `sections.languages.items` | `array` | yes | — | The items to display in the languages section. |
| `sections.languages.items[]` | `object` | — | — | — |
| `sections.languages.items[].id` | `string` | yes | — | The unique identifier for the item. Usually generated as a UUID. |
| `sections.languages.items[].hidden` | `boolean` | yes | — | Whether to hide the item from the resume. |
| `sections.languages.items[].language` | `string` | yes | minLength: 1 | The name of the language the author knows. |
| `sections.languages.items[].fluency` | `string` | yes | — | The fluency level of the language. Can be any text, such as 'Native', 'Fluent', 'Conversational', etc. or can also be a CEFR level (A1, A2, B1, B2, C1, C2). |
| `sections.languages.items[].level` | `number` | no | minimum: 0; maximum: 5; default: 0 | The proficiency level of the language, defined as a number between 0 and 5. If set to 0, the icons displaying the level will be hidden. |
| `sections.languages.items[].level` | `number` | yes | minimum: 0; maximum: 5; default: 0 | The proficiency level of the language, defined as a number between 0 and 5. If set to 0, the icons displaying the level will be hidden. |
| `sections.interests` | `object` | yes | — | The section to display the interests of the author. |
| `sections.interests.title` | `string` | yes | — | The title of the section. |
| `sections.interests.icon` | `string` | no | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.interests.columns` | `integer` | no | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.interests.icon` | `string` | yes | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.interests.columns` | `integer` | yes | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.interests.hidden` | `boolean` | yes | — | Whether to hide the section from the resume. |
| `sections.interests.keepTogether` | `boolean` | no | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.interests.startOnNewPage` | `boolean` | no | default: false | If true, the section always begins on a new page. |
| `sections.interests.keepTogether` | `boolean` | yes | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.interests.startOnNewPage` | `boolean` | yes | default: false | If true, the section always begins on a new page. |
| `sections.interests.items` | `array` | yes | — | The items to display in the interests section. |
| `sections.interests.items[]` | `object` | — | — | — |
| `sections.interests.items[].id` | `string` | yes | — | The unique identifier for the item. Usually generated as a UUID. |
| `sections.interests.items[].hidden` | `boolean` | yes | — | Whether to hide the item from the resume. |
| `sections.interests.items[].icon` | `string` | yes | — | The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available. |
| `sections.interests.items[].iconColor` | `string` | no | default: "" | Custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color. |
| `sections.interests.items[].iconColor` | `string` | yes | default: "" | Custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color. |
| `sections.interests.items[].name` | `string` | yes | minLength: 1 | The name of the interest/hobby. |
| `sections.interests.items[].keywords` | `array` | no | default: [] | The keywords associated with the interest/hobby, if any. These are displayed as tags below the name. |
| `sections.interests.items[].keywords` | `array` | yes | default: [] | The keywords associated with the interest/hobby, if any. These are displayed as tags below the name. |
| `sections.interests.items[].keywords[]` | `string` | — | — | — |
| `sections.awards` | `object` | yes | — | The section to display the awards of the author. |
| `sections.awards.title` | `string` | yes | — | The title of the section. |
| `sections.awards.icon` | `string` | no | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.awards.columns` | `integer` | no | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.awards.icon` | `string` | yes | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.awards.columns` | `integer` | yes | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.awards.hidden` | `boolean` | yes | — | Whether to hide the section from the resume. |
| `sections.awards.keepTogether` | `boolean` | no | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.awards.startOnNewPage` | `boolean` | no | default: false | If true, the section always begins on a new page. |
| `sections.awards.keepTogether` | `boolean` | yes | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.awards.startOnNewPage` | `boolean` | yes | default: false | If true, the section always begins on a new page. |
| `sections.awards.items` | `array` | yes | — | The items to display in the awards section. |
| `sections.awards.items[]` | `object` | — | — | — |
| `sections.awards.items[].id` | `string` | yes | — | The unique identifier for the item. Usually generated as a UUID. |
@@ -215,18 +215,18 @@ Choose one coherent shape for each union value. Required fields are local to tha
| `sections.awards.items[].title` | `string` | yes | minLength: 1 | The title of the award. |
| `sections.awards.items[].awarder` | `string` | yes | — | The awarder of the award. |
| `sections.awards.items[].date` | `string` | yes | — | The date when the award was received. |
| `sections.awards.items[].website` | `object` | no | default: {"url":"","label":"","inlineLink":false} | The website of the award, if any. |
| `sections.awards.items[].website` | `object` | yes | default: {"url":"","label":"","inlineLink":false} | The website of the award, if any. |
| `sections.awards.items[].website.url` | `string` | yes | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `sections.awards.items[].website.label` | `string` | yes | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `sections.awards.items[].website.inlineLink` | `boolean` | no | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `sections.awards.items[].website.inlineLink` | `boolean` | yes | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `sections.awards.items[].description` | `string` | yes | — | The description of the award. This should be a HTML-formatted string. |
| `sections.certifications` | `object` | yes | — | The section to display the certifications of the author. |
| `sections.certifications.title` | `string` | yes | — | The title of the section. |
| `sections.certifications.icon` | `string` | no | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.certifications.columns` | `integer` | no | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.certifications.icon` | `string` | yes | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.certifications.columns` | `integer` | yes | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.certifications.hidden` | `boolean` | yes | — | Whether to hide the section from the resume. |
| `sections.certifications.keepTogether` | `boolean` | no | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.certifications.startOnNewPage` | `boolean` | no | default: false | If true, the section always begins on a new page. |
| `sections.certifications.keepTogether` | `boolean` | yes | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.certifications.startOnNewPage` | `boolean` | yes | default: false | If true, the section always begins on a new page. |
| `sections.certifications.items` | `array` | yes | — | The items to display in the certifications section. |
| `sections.certifications.items[]` | `object` | — | — | — |
| `sections.certifications.items[].id` | `string` | yes | — | The unique identifier for the item. Usually generated as a UUID. |
@@ -234,18 +234,18 @@ Choose one coherent shape for each union value. Required fields are local to tha
| `sections.certifications.items[].title` | `string` | yes | minLength: 1 | The title of the certification. |
| `sections.certifications.items[].issuer` | `string` | yes | — | The issuer of the certification. |
| `sections.certifications.items[].date` | `string` | yes | — | The date when the certification was received. |
| `sections.certifications.items[].website` | `object` | no | default: {"url":"","label":"","inlineLink":false} | The website of the certification, if any. |
| `sections.certifications.items[].website` | `object` | yes | default: {"url":"","label":"","inlineLink":false} | The website of the certification, if any. |
| `sections.certifications.items[].website.url` | `string` | yes | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `sections.certifications.items[].website.label` | `string` | yes | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `sections.certifications.items[].website.inlineLink` | `boolean` | no | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `sections.certifications.items[].website.inlineLink` | `boolean` | yes | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `sections.certifications.items[].description` | `string` | yes | — | The description of the certification. This should be a HTML-formatted string. |
| `sections.publications` | `object` | yes | — | The section to display the publications of the author. |
| `sections.publications.title` | `string` | yes | — | The title of the section. |
| `sections.publications.icon` | `string` | no | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.publications.columns` | `integer` | no | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.publications.icon` | `string` | yes | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.publications.columns` | `integer` | yes | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.publications.hidden` | `boolean` | yes | — | Whether to hide the section from the resume. |
| `sections.publications.keepTogether` | `boolean` | no | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.publications.startOnNewPage` | `boolean` | no | default: false | If true, the section always begins on a new page. |
| `sections.publications.keepTogether` | `boolean` | yes | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.publications.startOnNewPage` | `boolean` | yes | default: false | If true, the section always begins on a new page. |
| `sections.publications.items` | `array` | yes | — | The items to display in the publications section. |
| `sections.publications.items[]` | `object` | — | — | — |
| `sections.publications.items[].id` | `string` | yes | — | The unique identifier for the item. Usually generated as a UUID. |
@@ -253,18 +253,18 @@ Choose one coherent shape for each union value. Required fields are local to tha
| `sections.publications.items[].title` | `string` | yes | minLength: 1 | The title of the publication. |
| `sections.publications.items[].publisher` | `string` | yes | — | The publisher of the publication. |
| `sections.publications.items[].date` | `string` | yes | — | The date when the publication was published. |
| `sections.publications.items[].website` | `object` | no | default: {"url":"","label":"","inlineLink":false} | The link to the publication, if any. |
| `sections.publications.items[].website` | `object` | yes | default: {"url":"","label":"","inlineLink":false} | The link to the publication, if any. |
| `sections.publications.items[].website.url` | `string` | yes | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `sections.publications.items[].website.label` | `string` | yes | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `sections.publications.items[].website.inlineLink` | `boolean` | no | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `sections.publications.items[].website.inlineLink` | `boolean` | yes | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `sections.publications.items[].description` | `string` | yes | — | The description of the publication. This should be a HTML-formatted string. |
| `sections.volunteer` | `object` | yes | — | The section to display the volunteer experience of the author. |
| `sections.volunteer.title` | `string` | yes | — | The title of the section. |
| `sections.volunteer.icon` | `string` | no | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.volunteer.columns` | `integer` | no | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.volunteer.icon` | `string` | yes | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.volunteer.columns` | `integer` | yes | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.volunteer.hidden` | `boolean` | yes | — | Whether to hide the section from the resume. |
| `sections.volunteer.keepTogether` | `boolean` | no | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.volunteer.startOnNewPage` | `boolean` | no | default: false | If true, the section always begins on a new page. |
| `sections.volunteer.keepTogether` | `boolean` | yes | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.volunteer.startOnNewPage` | `boolean` | yes | default: false | If true, the section always begins on a new page. |
| `sections.volunteer.items` | `array` | yes | — | The items to display in the volunteer section. |
| `sections.volunteer.items[]` | `object` | — | — | — |
| `sections.volunteer.items[].id` | `string` | yes | — | The unique identifier for the item. Usually generated as a UUID. |
@@ -272,39 +272,39 @@ Choose one coherent shape for each union value. Required fields are local to tha
| `sections.volunteer.items[].organization` | `string` | yes | minLength: 1 | The name of the organization or company. |
| `sections.volunteer.items[].location` | `string` | yes | — | The location of the organization or company. |
| `sections.volunteer.items[].period` | `string` | yes | — | The period of time the author was volunteered at the organization or company. |
| `sections.volunteer.items[].website` | `object` | no | default: {"url":"","label":"","inlineLink":false} | The link to the organization or company, if any. |
| `sections.volunteer.items[].website` | `object` | yes | default: {"url":"","label":"","inlineLink":false} | The link to the organization or company, if any. |
| `sections.volunteer.items[].website.url` | `string` | yes | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `sections.volunteer.items[].website.label` | `string` | yes | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `sections.volunteer.items[].website.inlineLink` | `boolean` | no | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `sections.volunteer.items[].website.inlineLink` | `boolean` | yes | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `sections.volunteer.items[].description` | `string` | yes | — | The description of the volunteer experience. This should be a HTML-formatted string. |
| `sections.references` | `object` | yes | — | The section to display the references of the author. |
| `sections.references.title` | `string` | yes | — | The title of the section. |
| `sections.references.icon` | `string` | no | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.references.columns` | `integer` | no | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.references.icon` | `string` | yes | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `sections.references.columns` | `integer` | yes | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `sections.references.hidden` | `boolean` | yes | — | Whether to hide the section from the resume. |
| `sections.references.keepTogether` | `boolean` | no | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.references.startOnNewPage` | `boolean` | no | default: false | If true, the section always begins on a new page. |
| `sections.references.keepTogether` | `boolean` | yes | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `sections.references.startOnNewPage` | `boolean` | yes | default: false | If true, the section always begins on a new page. |
| `sections.references.items` | `array` | yes | — | The items to display in the references section. |
| `sections.references.items[]` | `object` | — | — | — |
| `sections.references.items[].id` | `string` | yes | — | The unique identifier for the item. Usually generated as a UUID. |
| `sections.references.items[].hidden` | `boolean` | yes | — | Whether to hide the item from the resume. |
| `sections.references.items[].name` | `string` | yes | minLength: 1 | The name of the reference, or a note such as 'Available upon request'. |
| `sections.references.items[].position` | `string` | yes | — | The position or job title of the reference. |
| `sections.references.items[].website` | `object` | no | default: {"url":"","label":"","inlineLink":false} | The website or LinkedIn profile of the reference, if any. |
| `sections.references.items[].website` | `object` | yes | default: {"url":"","label":"","inlineLink":false} | The website or LinkedIn profile of the reference, if any. |
| `sections.references.items[].website.url` | `string` | yes | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `sections.references.items[].website.label` | `string` | yes | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `sections.references.items[].website.inlineLink` | `boolean` | no | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `sections.references.items[].website.inlineLink` | `boolean` | yes | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `sections.references.items[].phone` | `string` | yes | — | The phone number of the reference. |
| `sections.references.items[].description` | `string` | yes | — | The description of the reference. Can be used to display a quote, a testimonial, etc. This should be a HTML-formatted string. |
| `customSections` | `array` | yes | — | Custom sections of the resume, such as a custom section for notes, etc. |
| `customSections[]` | `object or object or object or object or object or object or object or object or object or object or object or object or object or object` | — | — | — |
| `customSections[]` | `object` | — (type summary, schema summaryItemSchema at customSections[]) | — | — |
| `customSections[].title` | `string` | yes (type summary, schema summaryItemSchema at customSections[]) | — | The title of the section. |
| `customSections[].icon` | `string` | no (type summary, schema summaryItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | no (type summary, schema summaryItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].icon` | `string` | yes (type summary, schema summaryItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | yes (type summary, schema summaryItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].hidden` | `boolean` | yes (type summary, schema summaryItemSchema at customSections[]) | — | Whether to hide the section from the resume. |
| `customSections[].keepTogether` | `boolean` | no (type summary, schema summaryItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | no (type summary, schema summaryItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].keepTogether` | `boolean` | yes (type summary, schema summaryItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | yes (type summary, schema summaryItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].id` | `string` | yes (type summary, schema summaryItemSchema at customSections[]) | — | The unique identifier for the custom section. Usually generated as a UUID. |
| `customSections[].type` | `string` | yes (type summary, schema summaryItemSchema at customSections[]) | — | The type of items this custom section contains. Determines which item schema and form fields to use. |
| `customSections[].items` | `array` | yes (type summary, schema summaryItemSchema at customSections[]) | — | The items to display in the custom section. Items follow the schema of the section type. |
@@ -314,11 +314,11 @@ Choose one coherent shape for each union value. Required fields are local to tha
| `customSections[].items[].content` | `string` | yes (type summary, schema summaryItemSchema at customSections[]) | — | The rich text content of the summary item. This should be a HTML-formatted string. |
| `customSections[]` | `object` | — (type profiles, schema profileItemSchema at customSections[]) | — | — |
| `customSections[].title` | `string` | yes (type profiles, schema profileItemSchema at customSections[]) | — | The title of the section. |
| `customSections[].icon` | `string` | no (type profiles, schema profileItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | no (type profiles, schema profileItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].icon` | `string` | yes (type profiles, schema profileItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | yes (type profiles, schema profileItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].hidden` | `boolean` | yes (type profiles, schema profileItemSchema at customSections[]) | — | Whether to hide the section from the resume. |
| `customSections[].keepTogether` | `boolean` | no (type profiles, schema profileItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | no (type profiles, schema profileItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].keepTogether` | `boolean` | yes (type profiles, schema profileItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | yes (type profiles, schema profileItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].id` | `string` | yes (type profiles, schema profileItemSchema at customSections[]) | — | The unique identifier for the custom section. Usually generated as a UUID. |
| `customSections[].type` | `string` | yes (type profiles, schema profileItemSchema at customSections[]) | — | The type of items this custom section contains. Determines which item schema and form fields to use. |
| `customSections[].items` | `array` | yes (type profiles, schema profileItemSchema at customSections[]) | — | The items to display in the custom section. Items follow the schema of the section type. |
@@ -326,20 +326,20 @@ Choose one coherent shape for each union value. Required fields are local to tha
| `customSections[].items[].id` | `string` | yes (type profiles, schema profileItemSchema at customSections[]) | — | The unique identifier for the item. Usually generated as a UUID. |
| `customSections[].items[].hidden` | `boolean` | yes (type profiles, schema profileItemSchema at customSections[]) | — | Whether to hide the item from the resume. |
| `customSections[].items[].icon` | `string` | yes (type profiles, schema profileItemSchema at customSections[]) | — | The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available. |
| `customSections[].items[].iconColor` | `string` | no (type profiles, schema profileItemSchema at customSections[]) | default: "" | Custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color. |
| `customSections[].items[].iconColor` | `string` | yes (type profiles, schema profileItemSchema at customSections[]) | default: "" | Custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color. |
| `customSections[].items[].network` | `string` | yes (type profiles, schema profileItemSchema at customSections[]) | minLength: 1 | The name of the network or platform. |
| `customSections[].items[].username` | `string` | yes (type profiles, schema profileItemSchema at customSections[]) | — | The username of the author on the network or platform. |
| `customSections[].items[].website` | `object` | no (type profiles, schema profileItemSchema at customSections[]) | default: {"url":"","label":"","inlineLink":false} | The link to the profile of the author on the network or platform, if any. |
| `customSections[].items[].website` | `object` | yes (type profiles, schema profileItemSchema at customSections[]) | default: {"url":"","label":"","inlineLink":false} | The link to the profile of the author on the network or platform, if any. |
| `customSections[].items[].website.url` | `string` | yes (type profiles, schema profileItemSchema at customSections[]) | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `customSections[].items[].website.label` | `string` | yes (type profiles, schema profileItemSchema at customSections[]) | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `customSections[].items[].website.inlineLink` | `boolean` | no (type profiles, schema profileItemSchema at customSections[]) | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `customSections[].items[].website.inlineLink` | `boolean` | yes (type profiles, schema profileItemSchema at customSections[]) | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `customSections[]` | `object` | — (type experience, schema experienceItemSchema at customSections[]) | — | — |
| `customSections[].title` | `string` | yes (type experience, schema experienceItemSchema at customSections[]) | — | The title of the section. |
| `customSections[].icon` | `string` | no (type experience, schema experienceItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | no (type experience, schema experienceItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].icon` | `string` | yes (type experience, schema experienceItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | yes (type experience, schema experienceItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].hidden` | `boolean` | yes (type experience, schema experienceItemSchema at customSections[]) | — | Whether to hide the section from the resume. |
| `customSections[].keepTogether` | `boolean` | no (type experience, schema experienceItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | no (type experience, schema experienceItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].keepTogether` | `boolean` | yes (type experience, schema experienceItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | yes (type experience, schema experienceItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].id` | `string` | yes (type experience, schema experienceItemSchema at customSections[]) | — | The unique identifier for the custom section. Usually generated as a UUID. |
| `customSections[].type` | `string` | yes (type experience, schema experienceItemSchema at customSections[]) | — | The type of items this custom section contains. Determines which item schema and form fields to use. |
| `customSections[].items` | `array` | yes (type experience, schema experienceItemSchema at customSections[]) | — | The items to display in the custom section. Items follow the schema of the section type. |
@@ -350,12 +350,12 @@ Choose one coherent shape for each union value. Required fields are local to tha
| `customSections[].items[].position` | `string` | yes (type experience, schema experienceItemSchema at customSections[]) | — | The position held at the company or organization. Used when there is only a single role. If multiple roles are provided in the 'roles' field, this serves as a summary title or can be left blank. |
| `customSections[].items[].location` | `string` | yes (type experience, schema experienceItemSchema at customSections[]) | — | The location of the company or organization. |
| `customSections[].items[].period` | `string` | yes (type experience, schema experienceItemSchema at customSections[]) | — | The overall period of time at the company. When multiple roles are used, this should reflect the total tenure. |
| `customSections[].items[].website` | `object` | no (type experience, schema experienceItemSchema at customSections[]) | default: {"url":"","label":"","inlineLink":false} | The website of the company or organization, if any. |
| `customSections[].items[].website` | `object` | yes (type experience, schema experienceItemSchema at customSections[]) | default: {"url":"","label":"","inlineLink":false} | The website of the company or organization, if any. |
| `customSections[].items[].website.url` | `string` | yes (type experience, schema experienceItemSchema at customSections[]) | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `customSections[].items[].website.label` | `string` | yes (type experience, schema experienceItemSchema at customSections[]) | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `customSections[].items[].website.inlineLink` | `boolean` | no (type experience, schema experienceItemSchema at customSections[]) | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `customSections[].items[].website.inlineLink` | `boolean` | yes (type experience, schema experienceItemSchema at customSections[]) | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `customSections[].items[].description` | `string` | yes (type experience, schema experienceItemSchema at customSections[]) | — | The description of the experience. This should be a HTML-formatted string. |
| `customSections[].items[].roles` | `array` | no (type experience, schema experienceItemSchema at customSections[]) | default: [] | List of individual roles held at this company to show career progression. |
| `customSections[].items[].roles` | `array` | yes (type experience, schema experienceItemSchema at customSections[]) | default: [] | List of individual roles held at this company to show career progression. |
| `customSections[].items[].roles[]` | `object` | — (type experience, schema experienceItemSchema at customSections[]) | — | — |
| `customSections[].items[].roles[].id` | `string` | yes (type experience, schema experienceItemSchema at customSections[]) | — | The unique identifier for the role. Usually generated as a UUID. |
| `customSections[].items[].roles[].position` | `string` | yes (type experience, schema experienceItemSchema at customSections[]) | — | The position or job title for this role. |
@@ -363,11 +363,11 @@ Choose one coherent shape for each union value. Required fields are local to tha
| `customSections[].items[].roles[].description` | `string` | yes (type experience, schema experienceItemSchema at customSections[]) | — | The description of this specific role. This should be a HTML-formatted string. |
| `customSections[]` | `object` | — (type education, schema educationItemSchema at customSections[]) | — | — |
| `customSections[].title` | `string` | yes (type education, schema educationItemSchema at customSections[]) | — | The title of the section. |
| `customSections[].icon` | `string` | no (type education, schema educationItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | no (type education, schema educationItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].icon` | `string` | yes (type education, schema educationItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | yes (type education, schema educationItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].hidden` | `boolean` | yes (type education, schema educationItemSchema at customSections[]) | — | Whether to hide the section from the resume. |
| `customSections[].keepTogether` | `boolean` | no (type education, schema educationItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | no (type education, schema educationItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].keepTogether` | `boolean` | yes (type education, schema educationItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | yes (type education, schema educationItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].id` | `string` | yes (type education, schema educationItemSchema at customSections[]) | — | The unique identifier for the custom section. Usually generated as a UUID. |
| `customSections[].type` | `string` | yes (type education, schema educationItemSchema at customSections[]) | — | The type of items this custom section contains. Determines which item schema and form fields to use. |
| `customSections[].items` | `array` | yes (type education, schema educationItemSchema at customSections[]) | — | The items to display in the custom section. Items follow the schema of the section type. |
@@ -380,18 +380,18 @@ Choose one coherent shape for each union value. Required fields are local to tha
| `customSections[].items[].grade` | `string` | yes (type education, schema educationItemSchema at customSections[]) | — | The grade or score achieved. |
| `customSections[].items[].location` | `string` | yes (type education, schema educationItemSchema at customSections[]) | — | The location of the school or institution. |
| `customSections[].items[].period` | `string` | yes (type education, schema educationItemSchema at customSections[]) | — | The period of time the education was obtained over. |
| `customSections[].items[].website` | `object` | no (type education, schema educationItemSchema at customSections[]) | default: {"url":"","label":"","inlineLink":false} | The website of the school or institution, if any. |
| `customSections[].items[].website` | `object` | yes (type education, schema educationItemSchema at customSections[]) | default: {"url":"","label":"","inlineLink":false} | The website of the school or institution, if any. |
| `customSections[].items[].website.url` | `string` | yes (type education, schema educationItemSchema at customSections[]) | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `customSections[].items[].website.label` | `string` | yes (type education, schema educationItemSchema at customSections[]) | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `customSections[].items[].website.inlineLink` | `boolean` | no (type education, schema educationItemSchema at customSections[]) | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `customSections[].items[].website.inlineLink` | `boolean` | yes (type education, schema educationItemSchema at customSections[]) | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `customSections[].items[].description` | `string` | yes (type education, schema educationItemSchema at customSections[]) | — | The description of the education. This should be a HTML-formatted string. |
| `customSections[]` | `object` | — (type projects, schema projectItemSchema at customSections[]) | — | — |
| `customSections[].title` | `string` | yes (type projects, schema projectItemSchema at customSections[]) | — | The title of the section. |
| `customSections[].icon` | `string` | no (type projects, schema projectItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | no (type projects, schema projectItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].icon` | `string` | yes (type projects, schema projectItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | yes (type projects, schema projectItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].hidden` | `boolean` | yes (type projects, schema projectItemSchema at customSections[]) | — | Whether to hide the section from the resume. |
| `customSections[].keepTogether` | `boolean` | no (type projects, schema projectItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | no (type projects, schema projectItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].keepTogether` | `boolean` | yes (type projects, schema projectItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | yes (type projects, schema projectItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].id` | `string` | yes (type projects, schema projectItemSchema at customSections[]) | — | The unique identifier for the custom section. Usually generated as a UUID. |
| `customSections[].type` | `string` | yes (type projects, schema projectItemSchema at customSections[]) | — | The type of items this custom section contains. Determines which item schema and form fields to use. |
| `customSections[].items` | `array` | yes (type projects, schema projectItemSchema at customSections[]) | — | The items to display in the custom section. Items follow the schema of the section type. |
@@ -400,18 +400,18 @@ Choose one coherent shape for each union value. Required fields are local to tha
| `customSections[].items[].hidden` | `boolean` | yes (type projects, schema projectItemSchema at customSections[]) | — | Whether to hide the item from the resume. |
| `customSections[].items[].name` | `string` | yes (type projects, schema projectItemSchema at customSections[]) | minLength: 1 | The name of the project. |
| `customSections[].items[].period` | `string` | yes (type projects, schema projectItemSchema at customSections[]) | — | The period of time the project was worked on. |
| `customSections[].items[].website` | `object` | no (type projects, schema projectItemSchema at customSections[]) | default: {"url":"","label":"","inlineLink":false} | The link to the project, if any. |
| `customSections[].items[].website` | `object` | yes (type projects, schema projectItemSchema at customSections[]) | default: {"url":"","label":"","inlineLink":false} | The link to the project, if any. |
| `customSections[].items[].website.url` | `string` | yes (type projects, schema projectItemSchema at customSections[]) | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `customSections[].items[].website.label` | `string` | yes (type projects, schema projectItemSchema at customSections[]) | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `customSections[].items[].website.inlineLink` | `boolean` | no (type projects, schema projectItemSchema at customSections[]) | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `customSections[].items[].website.inlineLink` | `boolean` | yes (type projects, schema projectItemSchema at customSections[]) | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `customSections[].items[].description` | `string` | yes (type projects, schema projectItemSchema at customSections[]) | — | The description of the project. This should be a HTML-formatted string. |
| `customSections[]` | `object` | — (type skills, schema skillItemSchema at customSections[]) | — | — |
| `customSections[].title` | `string` | yes (type skills, schema skillItemSchema at customSections[]) | — | The title of the section. |
| `customSections[].icon` | `string` | no (type skills, schema skillItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | no (type skills, schema skillItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].icon` | `string` | yes (type skills, schema skillItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | yes (type skills, schema skillItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].hidden` | `boolean` | yes (type skills, schema skillItemSchema at customSections[]) | — | Whether to hide the section from the resume. |
| `customSections[].keepTogether` | `boolean` | no (type skills, schema skillItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | no (type skills, schema skillItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].keepTogether` | `boolean` | yes (type skills, schema skillItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | yes (type skills, schema skillItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].id` | `string` | yes (type skills, schema skillItemSchema at customSections[]) | — | The unique identifier for the custom section. Usually generated as a UUID. |
| `customSections[].type` | `string` | yes (type skills, schema skillItemSchema at customSections[]) | — | The type of items this custom section contains. Determines which item schema and form fields to use. |
| `customSections[].items` | `array` | yes (type skills, schema skillItemSchema at customSections[]) | — | The items to display in the custom section. Items follow the schema of the section type. |
@@ -419,19 +419,19 @@ Choose one coherent shape for each union value. Required fields are local to tha
| `customSections[].items[].id` | `string` | yes (type skills, schema skillItemSchema at customSections[]) | — | The unique identifier for the item. Usually generated as a UUID. |
| `customSections[].items[].hidden` | `boolean` | yes (type skills, schema skillItemSchema at customSections[]) | — | Whether to hide the item from the resume. |
| `customSections[].items[].icon` | `string` | yes (type skills, schema skillItemSchema at customSections[]) | — | The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available. |
| `customSections[].items[].iconColor` | `string` | no (type skills, schema skillItemSchema at customSections[]) | default: "" | Custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color. |
| `customSections[].items[].iconColor` | `string` | yes (type skills, schema skillItemSchema at customSections[]) | default: "" | Custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color. |
| `customSections[].items[].name` | `string` | yes (type skills, schema skillItemSchema at customSections[]) | minLength: 1 | The name of the skill. |
| `customSections[].items[].proficiency` | `string` | yes (type skills, schema skillItemSchema at customSections[]) | — | The proficiency level of the skill. Can be any text, such as 'Beginner', 'Intermediate', 'Advanced', etc. |
| `customSections[].items[].level` | `number` | no (type skills, schema skillItemSchema at customSections[]) | minimum: 0; maximum: 5; default: 0 | The proficiency level of the skill, defined as a number between 0 and 5. If set to 0, the icons displaying the level will be hidden. |
| `customSections[].items[].keywords` | `array` | no (type skills, schema skillItemSchema at customSections[]) | default: [] | The keywords associated with the skill, if any. These are displayed as tags below the name. |
| `customSections[].items[].level` | `number` | yes (type skills, schema skillItemSchema at customSections[]) | minimum: 0; maximum: 5; default: 0 | The proficiency level of the skill, defined as a number between 0 and 5. If set to 0, the icons displaying the level will be hidden. |
| `customSections[].items[].keywords` | `array` | yes (type skills, schema skillItemSchema at customSections[]) | default: [] | The keywords associated with the skill, if any. These are displayed as tags below the name. |
| `customSections[].items[].keywords[]` | `string` | — (type skills, schema skillItemSchema at customSections[]) | — | — |
| `customSections[]` | `object` | — (type languages, schema languageItemSchema at customSections[]) | — | — |
| `customSections[].title` | `string` | yes (type languages, schema languageItemSchema at customSections[]) | — | The title of the section. |
| `customSections[].icon` | `string` | no (type languages, schema languageItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | no (type languages, schema languageItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].icon` | `string` | yes (type languages, schema languageItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | yes (type languages, schema languageItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].hidden` | `boolean` | yes (type languages, schema languageItemSchema at customSections[]) | — | Whether to hide the section from the resume. |
| `customSections[].keepTogether` | `boolean` | no (type languages, schema languageItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | no (type languages, schema languageItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].keepTogether` | `boolean` | yes (type languages, schema languageItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | yes (type languages, schema languageItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].id` | `string` | yes (type languages, schema languageItemSchema at customSections[]) | — | The unique identifier for the custom section. Usually generated as a UUID. |
| `customSections[].type` | `string` | yes (type languages, schema languageItemSchema at customSections[]) | — | The type of items this custom section contains. Determines which item schema and form fields to use. |
| `customSections[].items` | `array` | yes (type languages, schema languageItemSchema at customSections[]) | — | The items to display in the custom section. Items follow the schema of the section type. |
@@ -440,14 +440,14 @@ Choose one coherent shape for each union value. Required fields are local to tha
| `customSections[].items[].hidden` | `boolean` | yes (type languages, schema languageItemSchema at customSections[]) | — | Whether to hide the item from the resume. |
| `customSections[].items[].language` | `string` | yes (type languages, schema languageItemSchema at customSections[]) | minLength: 1 | The name of the language the author knows. |
| `customSections[].items[].fluency` | `string` | yes (type languages, schema languageItemSchema at customSections[]) | — | The fluency level of the language. Can be any text, such as 'Native', 'Fluent', 'Conversational', etc. or can also be a CEFR level (A1, A2, B1, B2, C1, C2). |
| `customSections[].items[].level` | `number` | no (type languages, schema languageItemSchema at customSections[]) | minimum: 0; maximum: 5; default: 0 | The proficiency level of the language, defined as a number between 0 and 5. If set to 0, the icons displaying the level will be hidden. |
| `customSections[].items[].level` | `number` | yes (type languages, schema languageItemSchema at customSections[]) | minimum: 0; maximum: 5; default: 0 | The proficiency level of the language, defined as a number between 0 and 5. If set to 0, the icons displaying the level will be hidden. |
| `customSections[]` | `object` | — (type interests, schema interestItemSchema at customSections[]) | — | — |
| `customSections[].title` | `string` | yes (type interests, schema interestItemSchema at customSections[]) | — | The title of the section. |
| `customSections[].icon` | `string` | no (type interests, schema interestItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | no (type interests, schema interestItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].icon` | `string` | yes (type interests, schema interestItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | yes (type interests, schema interestItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].hidden` | `boolean` | yes (type interests, schema interestItemSchema at customSections[]) | — | Whether to hide the section from the resume. |
| `customSections[].keepTogether` | `boolean` | no (type interests, schema interestItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | no (type interests, schema interestItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].keepTogether` | `boolean` | yes (type interests, schema interestItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | yes (type interests, schema interestItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].id` | `string` | yes (type interests, schema interestItemSchema at customSections[]) | — | The unique identifier for the custom section. Usually generated as a UUID. |
| `customSections[].type` | `string` | yes (type interests, schema interestItemSchema at customSections[]) | — | The type of items this custom section contains. Determines which item schema and form fields to use. |
| `customSections[].items` | `array` | yes (type interests, schema interestItemSchema at customSections[]) | — | The items to display in the custom section. Items follow the schema of the section type. |
@@ -455,17 +455,17 @@ Choose one coherent shape for each union value. Required fields are local to tha
| `customSections[].items[].id` | `string` | yes (type interests, schema interestItemSchema at customSections[]) | — | The unique identifier for the item. Usually generated as a UUID. |
| `customSections[].items[].hidden` | `boolean` | yes (type interests, schema interestItemSchema at customSections[]) | — | Whether to hide the item from the resume. |
| `customSections[].items[].icon` | `string` | yes (type interests, schema interestItemSchema at customSections[]) | — | The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available. |
| `customSections[].items[].iconColor` | `string` | no (type interests, schema interestItemSchema at customSections[]) | default: "" | Custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color. |
| `customSections[].items[].iconColor` | `string` | yes (type interests, schema interestItemSchema at customSections[]) | default: "" | Custom color for the icon, defined as rgba(r, g, b, a). Leave blank to use the template default icon color. |
| `customSections[].items[].name` | `string` | yes (type interests, schema interestItemSchema at customSections[]) | minLength: 1 | The name of the interest/hobby. |
| `customSections[].items[].keywords` | `array` | no (type interests, schema interestItemSchema at customSections[]) | default: [] | The keywords associated with the interest/hobby, if any. These are displayed as tags below the name. |
| `customSections[].items[].keywords` | `array` | yes (type interests, schema interestItemSchema at customSections[]) | default: [] | The keywords associated with the interest/hobby, if any. These are displayed as tags below the name. |
| `customSections[].items[].keywords[]` | `string` | — (type interests, schema interestItemSchema at customSections[]) | — | — |
| `customSections[]` | `object` | — (type awards, schema awardItemSchema at customSections[]) | — | — |
| `customSections[].title` | `string` | yes (type awards, schema awardItemSchema at customSections[]) | — | The title of the section. |
| `customSections[].icon` | `string` | no (type awards, schema awardItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | no (type awards, schema awardItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].icon` | `string` | yes (type awards, schema awardItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | yes (type awards, schema awardItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].hidden` | `boolean` | yes (type awards, schema awardItemSchema at customSections[]) | — | Whether to hide the section from the resume. |
| `customSections[].keepTogether` | `boolean` | no (type awards, schema awardItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | no (type awards, schema awardItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].keepTogether` | `boolean` | yes (type awards, schema awardItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | yes (type awards, schema awardItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].id` | `string` | yes (type awards, schema awardItemSchema at customSections[]) | — | The unique identifier for the custom section. Usually generated as a UUID. |
| `customSections[].type` | `string` | yes (type awards, schema awardItemSchema at customSections[]) | — | The type of items this custom section contains. Determines which item schema and form fields to use. |
| `customSections[].items` | `array` | yes (type awards, schema awardItemSchema at customSections[]) | — | The items to display in the custom section. Items follow the schema of the section type. |
@@ -475,18 +475,18 @@ Choose one coherent shape for each union value. Required fields are local to tha
| `customSections[].items[].title` | `string` | yes (type awards, schema awardItemSchema at customSections[]) | minLength: 1 | The title of the award. |
| `customSections[].items[].awarder` | `string` | yes (type awards, schema awardItemSchema at customSections[]) | — | The awarder of the award. |
| `customSections[].items[].date` | `string` | yes (type awards, schema awardItemSchema at customSections[]) | — | The date when the award was received. |
| `customSections[].items[].website` | `object` | no (type awards, schema awardItemSchema at customSections[]) | default: {"url":"","label":"","inlineLink":false} | The website of the award, if any. |
| `customSections[].items[].website` | `object` | yes (type awards, schema awardItemSchema at customSections[]) | default: {"url":"","label":"","inlineLink":false} | The website of the award, if any. |
| `customSections[].items[].website.url` | `string` | yes (type awards, schema awardItemSchema at customSections[]) | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `customSections[].items[].website.label` | `string` | yes (type awards, schema awardItemSchema at customSections[]) | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `customSections[].items[].website.inlineLink` | `boolean` | no (type awards, schema awardItemSchema at customSections[]) | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `customSections[].items[].website.inlineLink` | `boolean` | yes (type awards, schema awardItemSchema at customSections[]) | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `customSections[].items[].description` | `string` | yes (type awards, schema awardItemSchema at customSections[]) | — | The description of the award. This should be a HTML-formatted string. |
| `customSections[]` | `object` | — (type certifications, schema certificationItemSchema at customSections[]) | — | — |
| `customSections[].title` | `string` | yes (type certifications, schema certificationItemSchema at customSections[]) | — | The title of the section. |
| `customSections[].icon` | `string` | no (type certifications, schema certificationItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | no (type certifications, schema certificationItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].icon` | `string` | yes (type certifications, schema certificationItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | yes (type certifications, schema certificationItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].hidden` | `boolean` | yes (type certifications, schema certificationItemSchema at customSections[]) | — | Whether to hide the section from the resume. |
| `customSections[].keepTogether` | `boolean` | no (type certifications, schema certificationItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | no (type certifications, schema certificationItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].keepTogether` | `boolean` | yes (type certifications, schema certificationItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | yes (type certifications, schema certificationItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].id` | `string` | yes (type certifications, schema certificationItemSchema at customSections[]) | — | The unique identifier for the custom section. Usually generated as a UUID. |
| `customSections[].type` | `string` | yes (type certifications, schema certificationItemSchema at customSections[]) | — | The type of items this custom section contains. Determines which item schema and form fields to use. |
| `customSections[].items` | `array` | yes (type certifications, schema certificationItemSchema at customSections[]) | — | The items to display in the custom section. Items follow the schema of the section type. |
@@ -496,18 +496,18 @@ Choose one coherent shape for each union value. Required fields are local to tha
| `customSections[].items[].title` | `string` | yes (type certifications, schema certificationItemSchema at customSections[]) | minLength: 1 | The title of the certification. |
| `customSections[].items[].issuer` | `string` | yes (type certifications, schema certificationItemSchema at customSections[]) | — | The issuer of the certification. |
| `customSections[].items[].date` | `string` | yes (type certifications, schema certificationItemSchema at customSections[]) | — | The date when the certification was received. |
| `customSections[].items[].website` | `object` | no (type certifications, schema certificationItemSchema at customSections[]) | default: {"url":"","label":"","inlineLink":false} | The website of the certification, if any. |
| `customSections[].items[].website` | `object` | yes (type certifications, schema certificationItemSchema at customSections[]) | default: {"url":"","label":"","inlineLink":false} | The website of the certification, if any. |
| `customSections[].items[].website.url` | `string` | yes (type certifications, schema certificationItemSchema at customSections[]) | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `customSections[].items[].website.label` | `string` | yes (type certifications, schema certificationItemSchema at customSections[]) | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `customSections[].items[].website.inlineLink` | `boolean` | no (type certifications, schema certificationItemSchema at customSections[]) | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `customSections[].items[].website.inlineLink` | `boolean` | yes (type certifications, schema certificationItemSchema at customSections[]) | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `customSections[].items[].description` | `string` | yes (type certifications, schema certificationItemSchema at customSections[]) | — | The description of the certification. This should be a HTML-formatted string. |
| `customSections[]` | `object` | — (type publications, schema publicationItemSchema at customSections[]) | — | — |
| `customSections[].title` | `string` | yes (type publications, schema publicationItemSchema at customSections[]) | — | The title of the section. |
| `customSections[].icon` | `string` | no (type publications, schema publicationItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | no (type publications, schema publicationItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].icon` | `string` | yes (type publications, schema publicationItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | yes (type publications, schema publicationItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].hidden` | `boolean` | yes (type publications, schema publicationItemSchema at customSections[]) | — | Whether to hide the section from the resume. |
| `customSections[].keepTogether` | `boolean` | no (type publications, schema publicationItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | no (type publications, schema publicationItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].keepTogether` | `boolean` | yes (type publications, schema publicationItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | yes (type publications, schema publicationItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].id` | `string` | yes (type publications, schema publicationItemSchema at customSections[]) | — | The unique identifier for the custom section. Usually generated as a UUID. |
| `customSections[].type` | `string` | yes (type publications, schema publicationItemSchema at customSections[]) | — | The type of items this custom section contains. Determines which item schema and form fields to use. |
| `customSections[].items` | `array` | yes (type publications, schema publicationItemSchema at customSections[]) | — | The items to display in the custom section. Items follow the schema of the section type. |
@@ -517,18 +517,18 @@ Choose one coherent shape for each union value. Required fields are local to tha
| `customSections[].items[].title` | `string` | yes (type publications, schema publicationItemSchema at customSections[]) | minLength: 1 | The title of the publication. |
| `customSections[].items[].publisher` | `string` | yes (type publications, schema publicationItemSchema at customSections[]) | — | The publisher of the publication. |
| `customSections[].items[].date` | `string` | yes (type publications, schema publicationItemSchema at customSections[]) | — | The date when the publication was published. |
| `customSections[].items[].website` | `object` | no (type publications, schema publicationItemSchema at customSections[]) | default: {"url":"","label":"","inlineLink":false} | The link to the publication, if any. |
| `customSections[].items[].website` | `object` | yes (type publications, schema publicationItemSchema at customSections[]) | default: {"url":"","label":"","inlineLink":false} | The link to the publication, if any. |
| `customSections[].items[].website.url` | `string` | yes (type publications, schema publicationItemSchema at customSections[]) | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `customSections[].items[].website.label` | `string` | yes (type publications, schema publicationItemSchema at customSections[]) | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `customSections[].items[].website.inlineLink` | `boolean` | no (type publications, schema publicationItemSchema at customSections[]) | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `customSections[].items[].website.inlineLink` | `boolean` | yes (type publications, schema publicationItemSchema at customSections[]) | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `customSections[].items[].description` | `string` | yes (type publications, schema publicationItemSchema at customSections[]) | — | The description of the publication. This should be a HTML-formatted string. |
| `customSections[]` | `object` | — (type volunteer, schema volunteerItemSchema at customSections[]) | — | — |
| `customSections[].title` | `string` | yes (type volunteer, schema volunteerItemSchema at customSections[]) | — | The title of the section. |
| `customSections[].icon` | `string` | no (type volunteer, schema volunteerItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | no (type volunteer, schema volunteerItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].icon` | `string` | yes (type volunteer, schema volunteerItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | yes (type volunteer, schema volunteerItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].hidden` | `boolean` | yes (type volunteer, schema volunteerItemSchema at customSections[]) | — | Whether to hide the section from the resume. |
| `customSections[].keepTogether` | `boolean` | no (type volunteer, schema volunteerItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | no (type volunteer, schema volunteerItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].keepTogether` | `boolean` | yes (type volunteer, schema volunteerItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | yes (type volunteer, schema volunteerItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].id` | `string` | yes (type volunteer, schema volunteerItemSchema at customSections[]) | — | The unique identifier for the custom section. Usually generated as a UUID. |
| `customSections[].type` | `string` | yes (type volunteer, schema volunteerItemSchema at customSections[]) | — | The type of items this custom section contains. Determines which item schema and form fields to use. |
| `customSections[].items` | `array` | yes (type volunteer, schema volunteerItemSchema at customSections[]) | — | The items to display in the custom section. Items follow the schema of the section type. |
@@ -538,18 +538,18 @@ Choose one coherent shape for each union value. Required fields are local to tha
| `customSections[].items[].organization` | `string` | yes (type volunteer, schema volunteerItemSchema at customSections[]) | minLength: 1 | The name of the organization or company. |
| `customSections[].items[].location` | `string` | yes (type volunteer, schema volunteerItemSchema at customSections[]) | — | The location of the organization or company. |
| `customSections[].items[].period` | `string` | yes (type volunteer, schema volunteerItemSchema at customSections[]) | — | The period of time the author was volunteered at the organization or company. |
| `customSections[].items[].website` | `object` | no (type volunteer, schema volunteerItemSchema at customSections[]) | default: {"url":"","label":"","inlineLink":false} | The link to the organization or company, if any. |
| `customSections[].items[].website` | `object` | yes (type volunteer, schema volunteerItemSchema at customSections[]) | default: {"url":"","label":"","inlineLink":false} | The link to the organization or company, if any. |
| `customSections[].items[].website.url` | `string` | yes (type volunteer, schema volunteerItemSchema at customSections[]) | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `customSections[].items[].website.label` | `string` | yes (type volunteer, schema volunteerItemSchema at customSections[]) | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `customSections[].items[].website.inlineLink` | `boolean` | no (type volunteer, schema volunteerItemSchema at customSections[]) | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `customSections[].items[].website.inlineLink` | `boolean` | yes (type volunteer, schema volunteerItemSchema at customSections[]) | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `customSections[].items[].description` | `string` | yes (type volunteer, schema volunteerItemSchema at customSections[]) | — | The description of the volunteer experience. This should be a HTML-formatted string. |
| `customSections[]` | `object` | — (type references, schema referenceItemSchema at customSections[]) | — | — |
| `customSections[].title` | `string` | yes (type references, schema referenceItemSchema at customSections[]) | — | The title of the section. |
| `customSections[].icon` | `string` | no (type references, schema referenceItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | no (type references, schema referenceItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].icon` | `string` | yes (type references, schema referenceItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | yes (type references, schema referenceItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].hidden` | `boolean` | yes (type references, schema referenceItemSchema at customSections[]) | — | Whether to hide the section from the resume. |
| `customSections[].keepTogether` | `boolean` | no (type references, schema referenceItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | no (type references, schema referenceItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].keepTogether` | `boolean` | yes (type references, schema referenceItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | yes (type references, schema referenceItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].id` | `string` | yes (type references, schema referenceItemSchema at customSections[]) | — | The unique identifier for the custom section. Usually generated as a UUID. |
| `customSections[].type` | `string` | yes (type references, schema referenceItemSchema at customSections[]) | — | The type of items this custom section contains. Determines which item schema and form fields to use. |
| `customSections[].items` | `array` | yes (type references, schema referenceItemSchema at customSections[]) | — | The items to display in the custom section. Items follow the schema of the section type. |
@@ -558,19 +558,19 @@ Choose one coherent shape for each union value. Required fields are local to tha
| `customSections[].items[].hidden` | `boolean` | yes (type references, schema referenceItemSchema at customSections[]) | — | Whether to hide the item from the resume. |
| `customSections[].items[].name` | `string` | yes (type references, schema referenceItemSchema at customSections[]) | minLength: 1 | The name of the reference, or a note such as 'Available upon request'. |
| `customSections[].items[].position` | `string` | yes (type references, schema referenceItemSchema at customSections[]) | — | The position or job title of the reference. |
| `customSections[].items[].website` | `object` | no (type references, schema referenceItemSchema at customSections[]) | default: {"url":"","label":"","inlineLink":false} | The website or LinkedIn profile of the reference, if any. |
| `customSections[].items[].website` | `object` | yes (type references, schema referenceItemSchema at customSections[]) | default: {"url":"","label":"","inlineLink":false} | The website or LinkedIn profile of the reference, if any. |
| `customSections[].items[].website.url` | `string` | yes (type references, schema referenceItemSchema at customSections[]) | — | The URL to show as a link. Must be a valid URL with a protocol (http:// or https://). |
| `customSections[].items[].website.label` | `string` | yes (type references, schema referenceItemSchema at customSections[]) | — | The label to display for the URL. Leave blank to display the URL as-is. |
| `customSections[].items[].website.inlineLink` | `boolean` | no (type references, schema referenceItemSchema at customSections[]) | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `customSections[].items[].website.inlineLink` | `boolean` | yes (type references, schema referenceItemSchema at customSections[]) | default: false | If true, the website URL is rendered as a hyperlink on the title instead of a separate link at the bottom. |
| `customSections[].items[].phone` | `string` | yes (type references, schema referenceItemSchema at customSections[]) | — | The phone number of the reference. |
| `customSections[].items[].description` | `string` | yes (type references, schema referenceItemSchema at customSections[]) | — | The description of the reference. Can be used to display a quote, a testimonial, etc. This should be a HTML-formatted string. |
| `customSections[]` | `object` | — (type cover-letter, schema coverLetterItemSchema at customSections[]) | — | — |
| `customSections[].title` | `string` | yes (type cover-letter, schema coverLetterItemSchema at customSections[]) | — | The title of the section. |
| `customSections[].icon` | `string` | no (type cover-letter, schema coverLetterItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | no (type cover-letter, schema coverLetterItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].icon` | `string` | yes (type cover-letter, schema coverLetterItemSchema at customSections[]) | default: "" | Phosphor icon name to display before the section title in the PDF output. Empty string uses the default section icon; 'none' hides the icon. |
| `customSections[].columns` | `integer` | yes (type cover-letter, schema coverLetterItemSchema at customSections[]) | minimum: 1; maximum: 6; default: 1 | The number of columns the section should span across. |
| `customSections[].hidden` | `boolean` | yes (type cover-letter, schema coverLetterItemSchema at customSections[]) | — | Whether to hide the section from the resume. |
| `customSections[].keepTogether` | `boolean` | no (type cover-letter, schema coverLetterItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | no (type cover-letter, schema coverLetterItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].keepTogether` | `boolean` | yes (type cover-letter, schema coverLetterItemSchema at customSections[]) | default: false | If true, the section is kept on a single page instead of splitting across a page break. |
| `customSections[].startOnNewPage` | `boolean` | yes (type cover-letter, schema coverLetterItemSchema at customSections[]) | default: false | If true, the section always begins on a new page. |
| `customSections[].id` | `string` | yes (type cover-letter, schema coverLetterItemSchema at customSections[]) | — | The unique identifier for the custom section. Usually generated as a UUID. |
| `customSections[].type` | `string` | yes (type cover-letter, schema coverLetterItemSchema at customSections[]) | — | The type of items this custom section contains. Determines which item schema and form fields to use. |
| `customSections[].items` | `array` | yes (type cover-letter, schema coverLetterItemSchema at customSections[]) | — | The items to display in the custom section. Items follow the schema of the section type. |
@@ -580,9 +580,9 @@ Choose one coherent shape for each union value. Required fields are local to tha
| `customSections[].items[].recipient` | `string` | yes (type cover-letter, schema coverLetterItemSchema at customSections[]) | — | The recipient's address block as HTML (name, title, company, address, email). |
| `customSections[].items[].content` | `string` | yes (type cover-letter, schema coverLetterItemSchema at customSections[]) | — | The cover letter body as HTML (salutation, paragraphs, closing, signature). |
| `metadata` | `object` | yes | — | Metadata for the resume, such as template, layout, typography, etc. This section describes the overall design and appearance of the resume. |
| `metadata.template` | `string` | no | enum: ["azurill","bronzor","chikorita","ditgar","ditto","gengar","glalie","kakuna","lapras","leafish","meowth","onyx","pikachu","rhyhorn","scizor"]; default: "onyx" | The template to use for the resume. Determines the overall design and appearance of the resume. |
| `metadata.template` | `string` | yes | enum: ["azurill","bronzor","chikorita","ditgar","ditto","gengar","glalie","kakuna","lapras","leafish","meowth","onyx","pikachu","rhyhorn","scizor"]; default: "onyx" | The template to use for the resume. Determines the overall design and appearance of the resume. |
| `metadata.layout` | `object` | yes | — | The layout of the resume. Determines the structure and arrangement of the sections on the resume. |
| `metadata.layout.sidebarWidth` | `number` | no | minimum: 10; maximum: 50; default: 35 | The width of the sidebar column, defined as a percentage of the page width. |
| `metadata.layout.sidebarWidth` | `number` | yes | minimum: 10; maximum: 50; default: 35 | The width of the sidebar column, defined as a percentage of the page width. |
| `metadata.layout.pages` | `array` | yes | — | The pages to display in the layout. |
| `metadata.layout.pages[]` | `object` | — | — | — |
| `metadata.layout.pages[].fullWidth` | `boolean` | yes | — | Whether the layout of the page should be full width. If true, the main column will span the entire width of the page. This means that there should be no items in the sidebar column. |
@@ -593,13 +593,13 @@ Choose one coherent shape for each union value. Required fields are local to tha
| `metadata.page` | `object` | yes | — | The page settings of the resume. Determines the margins, format, and locale of the resume. |
| `metadata.page.gapX` | `number` | yes | minimum: 0 | The horizontal gap between the sections of the page, defined in points (pt). |
| `metadata.page.gapY` | `number` | yes | minimum: 0 | The vertical gap between the sections of the page, defined in points (pt). |
| `metadata.page.marginX` | `number` | no | minimum: 0; maximum: 100; default: 14 | The horizontal margin of the page, defined in points (pt). |
| `metadata.page.marginY` | `number` | no | minimum: 0; maximum: 100; default: 12 | The vertical margin of the page, defined in points (pt). |
| `metadata.page.format` | `string` | no | enum: ["a4","letter","free-form"]; default: "a4" | The format of the page. Can be 'a4', 'letter', or 'free-form'. |
| `metadata.page.locale` | `string` | no | default: "en-US" | The locale of the page. Used for displaying pre-translated section headings, if not overridden. |
| `metadata.page.hideLinkUnderline` | `boolean` | no | default: false | Whether to hide the underlines of the links. |
| `metadata.page.hideIcons` | `boolean` | no | default: false | Whether to hide the item-level icons (skills, profiles, interests). |
| `metadata.page.hideSectionIcons` | `boolean` | no | default: true | Whether to hide the section heading icons displayed before section titles. |
| `metadata.page.marginX` | `number` | yes | minimum: 0; maximum: 100; default: 14 | The horizontal margin of the page, defined in points (pt). |
| `metadata.page.marginY` | `number` | yes | minimum: 0; maximum: 100; default: 12 | The vertical margin of the page, defined in points (pt). |
| `metadata.page.format` | `string` | yes | enum: ["a4","letter","free-form"]; default: "a4" | The format of the page. Can be 'a4', 'letter', or 'free-form'. |
| `metadata.page.locale` | `string` | yes | default: "en-US" | The locale of the page. Used for displaying pre-translated section headings, if not overridden. |
| `metadata.page.hideLinkUnderline` | `boolean` | yes | default: false | Whether to hide the underlines of the links. |
| `metadata.page.hideIcons` | `boolean` | yes | default: false | Whether to hide the item-level icons (skills, profiles, interests). |
| `metadata.page.hideSectionIcons` | `boolean` | yes | default: true | Whether to hide the section heading icons displayed before section titles. |
| `metadata.design` | `object` | yes | — | The design settings of the resume. Determines the colors, level designs, and typography of the resume. |
| `metadata.design.level` | `object` | yes | — | — |
| `metadata.design.level.icon` | `string` | yes | — | The icon to display for the custom field. Must be a valid icon name from @phosphor-icons/web icon set, or an empty string to hide. Default to '' (empty string) when unsure which icons are available. |
@@ -611,18 +611,18 @@ Choose one coherent shape for each union value. Required fields are local to tha
| `metadata.typography` | `object` | yes | — | The typography settings of the resume. Determines the fonts and sizes of the body and headings of the resume. |
| `metadata.typography.body` | `object` | yes | — | The typography for the body of the resume. |
| `metadata.typography.body.fontFamily` | `string` | yes | — | The family of the font to use. Must be a supported resume font. |
| `metadata.typography.body.fontWeights` | `array` | no | default: ["400"] | The weight of the font, defined as a number between 100 and 900. Default to 400 when unsure if the weight is available in the font. |
| `metadata.typography.body.fontWeights` | `array` | yes | default: ["400"] | The weight of the font, defined as a number between 100 and 900. Default to 400 when unsure if the weight is available in the font. |
| `metadata.typography.body.fontWeights[]` | `string` | — | enum: ["100","200","300","400","500","600","700","800","900"] | — |
| `metadata.typography.body.fontSize` | `number` | no | minimum: 6; maximum: 24; default: 11 | The size of the font to use, defined in points (pt). |
| `metadata.typography.body.lineHeight` | `number` | no | minimum: 0.5; maximum: 4; default: 1.5 | The line height of the font to use, defined as a multiplier of the font size (e.g. 1.5 for 1.5x). |
| `metadata.typography.body.fontSize` | `number` | yes | minimum: 6; maximum: 24; default: 11 | The size of the font to use, defined in points (pt). |
| `metadata.typography.body.lineHeight` | `number` | yes | minimum: 0.5; maximum: 4; default: 1.5 | The line height of the font to use, defined as a multiplier of the font size (e.g. 1.5 for 1.5x). |
| `metadata.typography.heading` | `object` | yes | — | The typography for the headings of the resume. |
| `metadata.typography.heading.fontFamily` | `string` | yes | — | The family of the font to use. Must be a supported resume font. |
| `metadata.typography.heading.fontWeights` | `array` | no | default: ["400"] | The weight of the font, defined as a number between 100 and 900. Default to 400 when unsure if the weight is available in the font. |
| `metadata.typography.heading.fontWeights` | `array` | yes | default: ["400"] | The weight of the font, defined as a number between 100 and 900. Default to 400 when unsure if the weight is available in the font. |
| `metadata.typography.heading.fontWeights[]` | `string` | — | enum: ["100","200","300","400","500","600","700","800","900"] | — |
| `metadata.typography.heading.fontSize` | `number` | no | minimum: 6; maximum: 24; default: 11 | The size of the font to use, defined in points (pt). |
| `metadata.typography.heading.lineHeight` | `number` | no | minimum: 0.5; maximum: 4; default: 1.5 | The line height of the font to use, defined as a multiplier of the font size (e.g. 1.5 for 1.5x). |
| `metadata.typography.heading.fontSize` | `number` | yes | minimum: 6; maximum: 24; default: 11 | The size of the font to use, defined in points (pt). |
| `metadata.typography.heading.lineHeight` | `number` | yes | minimum: 0.5; maximum: 4; default: 1.5 | The line height of the font to use, defined as a multiplier of the font size (e.g. 1.5 for 1.5x). |
| `metadata.notes` | `string` | yes | — | Personal notes for the resume. Can be used to add any additional information or instructions for the resume. These notes are not displayed on the resume, they are only visible to the author of the resume when editing the resume. This should be a HTML-formatted string. |
| `metadata.styleRules` | `array` | no | default: [] | Structured style rules that target semantic resume sections and slots for React PDF rendering. |
| `metadata.styleRules` | `array` | yes | — | Structured style rules that target semantic resume sections and slots for React PDF rendering. |
| `metadata.styleRules[]` | `any` | — | — | — |
| `metadata.stylesheet` | `object` | no | — | — |
| `metadata.stylesheet.mode` | `string` | yes | enum: ["legacy","semantic"] | — |
+2 -2
View File
@@ -22,7 +22,7 @@
"@typescript/native-preview": "7.0.0-dev.20260707.2",
"drizzle-orm": "1.0.0-rc.4",
"pg": "^8.23.0",
"tsx": "^4.23.12",
"vitest": "^4.1.11"
"tsx": "^4.23.13",
"vitest": "^5.0.0"
}
}
@@ -151,7 +151,7 @@ it("names every custom-section item shape by its type key", () => {
expect(reference).toContain(`| \`customSections[]\` | \`${type}\` | \`${schemaName}\` |`);
}
expect(reference).toContain(
"| `customSections[]` | `experience` | `experienceItemSchema` | `{ id, hidden, company, position, location, period, description }` |",
"| `customSections[]` | `experience` | `experienceItemSchema` | `{ id, hidden, company, position, location, period, website, description, roles }` |",
);
expect(reference).toContain(
"| `customSections[].items[].company` | `string` | yes (type experience, schema experienceItemSchema at customSections[]) |",