207 Commits

Author SHA1 Message Date
GwIhViEte
6096164632 refactor: address code review comments (hooks, pdf logic, download UX, i18n) 2026-01-15 23:14:30 +08:00
GwIhViEte
c55d7a0228 feat: refine download utility 2026-01-15 22:47:32 +08:00
GwIhViEte
dc7cb1fc3f refactor: optimize pdf generation, download utils and i18n structure 2026-01-15 21:34:35 +08:00
GwIhViEte
445ab7f749 fix: update resumes router logic 2026-01-15 17:34:26 +08:00
GwIhViEte
a12376cf56 refactor: optimize i18n utilities and update pdf backend logic 2026-01-15 17:14:29 +08:00
GwIhViEte
ca3c0bd675 fix: stabilize pdf rendering and i18n for print/build 2026-01-15 16:49:20 +08:00
srbhr
3085be516a feat(tailor): enhance prompt selection logic
- Added a ref to track if the user has selected a prompt.
- Updated prompt selection logic to prevent overriding the default prompt if the user has already made a selection.
- Ensured the dropdown button is explicitly set as a button type for better accessibility.
2026-01-15 02:18:43 +05:30
srbhr
caeb76c4bd style(draggable-section): adjust drag handle size and padding
- Reduced drag handle width from 8 to 4
- Updated hover color for drag icon
- Adjusted left padding for section content
2026-01-15 01:57:08 +05:30
srbhr
aa144d03e6 feat(prompts): add prompt selection and configuration
- Created a custom dropdown component for selecting prompt options.
- Implemented prompt configuration endpoints in the backend.
- Added new prompt templates for resume improvement with different tailoring intensities.
- Updated frontend settings and tailor pages to utilize the new prompt configuration.
- Enhanced internationalization support for prompt options in multiple languages.
2026-01-15 01:21:28 +05:30
Saurabh Rai
d76921c54e Merge branch 'main' into feature-draggable-sections 2026-01-14 20:34:03 +05:30
Saurabh Rai
d435e479c2 Merge pull request #616 from GwIhViEte/fix/backend-llm-config 2026-01-14 15:50:27 +05:30
GwIhViEte
75f72a20b3 perf(backend): move LLM health check to background task to reduce API latency 2026-01-14 17:53:33 +08:00
GwIhViEte
0d18dd5272 fix(upload): resolve concurrency race condition in global upload state via ref counting 2026-01-14 17:14:34 +08:00
GwIhViEte
f0f0f8cc13 fix(frontend): resolve i18n edge cases, state cleanup and provider hardening 2026-01-14 16:53:15 +08:00
GwIhViEte
e47010597d fix(backend): normalize llm api_base and harden response parsing 2026-01-14 14:54:44 +08:00
GwIhViEte
fc4f8a9557 fix(i18n): complete builder/enrichment localization 2026-01-14 14:51:05 +08:00
Zohaib Malik
788c73b114 New Feature: Added support for draggable resume sections 2026-01-14 02:54:07 +01:00
srbhr
b23d00b41a fix(settings): OpenRouter test connection uses form values instead of saved config
Previously, clicking "Test Connection" after selecting OpenRouter and entering
an API key would fail with "Provider: openai | Model: gpt-4o-mini | API key not
configured" because the test endpoint only read from saved config, not the form.

Changes:
- Backend: /llm-test endpoint now accepts optional request body with config values
- Frontend: testLlmConnection() sends current form values to backend
- Frontend: Settings page passes provider, model, api_key, api_base to test
- Backend: Fix OpenRouter model prefix - always prepend "openrouter/" for proper
  LiteLLM format (e.g., "anthropic/claude-3.5-sonnet" → "openrouter/anthropic/claude-3.5-sonnet")

Closes RES-199

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 16:52:12 +05:30
Vignesh Sundararajan
f3e6ec6e42 Update apps/backend/app/main.py
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
2026-01-06 13:17:28 -05:00
Itz-Viggy
d624a32763 fix(main): improve Windows compatibility for asyncio event loop 2026-01-06 13:06:19 -05:00
srbhr
193436a2f8 feat(api, database): add delete and reset features
- Implement endpoint to delete all API keys with confirmation.
- Add endpoint to reset the database with confirmation.
- Introduce ResetDatabaseRequest schema for request validation.
- Update frontend API calls to include confirmation tokens.
2026-01-06 22:27:28 +05:30
srbhr
3b53f6c20b feat(config, database, settings): add API key and database reset features
- Implemented clear_all_api_keys function to remove all API keys from the config.
- Added reset_database function to truncate all tables and clear uploads.
- Created API endpoints for clearing API keys and resetting the database.
- Enhanced settings page with options to clear API keys and reset the database, including confirmation dialogs.
- Updated translations for new features in multiple languages.
2026-01-06 21:44:35 +05:30
srbhr
a396ff4f97 docs(readme): add template previews to README
- Updated README to include a table for resume templates with previews and descriptions.
- Added new PDF and image files for modern and classic templates.
- Removed outdated two-column template from assets.
2026-01-06 19:46:43 +05:30
srbhr
44ddf7a1f1 fix(rich-text-editor): ensure internal update flag resets correctly
- Updated the internal update flag reset logic to use setTimeout for proper timing through the render cycle.
- This change prevents potential issues with state updates during rendering.
2026-01-06 17:34:48 +05:30
srbhr
36353f612a style(resume): update title font size and color
- Increased font size for better visibility.
- Changed color to align with body text for consistency.
2026-01-06 17:25:52 +05:30
srbhr
14687330df refactor(html-sanitizer): migrate to isomorphic-dompurify
- Replaced 'dompurify' and 'jsdom' with 'isomorphic-dompurify' for better compatibility in both browser and Node.js environments.
- Removed server-side rendering logic that utilized JSDOM, simplifying the sanitizeHtml and stripHtml functions.
- Updated package dependencies in package.json and package-lock.json to reflect the changes.
2026-01-06 17:19:46 +05:30
srbhr
ab53451406 feat(resume): enhance modern template support and styling
- Updated accent color selection to include 'modern-two-column' template.
- Refactored CSS variables for accent colors to improve consistency.
- Improved rendering logic in rich text editor for safer link insertion.
- Enhanced HTML sanitization for server-side rendering compatibility.
- Added robust server-side fallback for HTML stripping.
2026-01-06 17:10:24 +05:30
srbhr
481d2a349e feat(resume): add modern two-column template with accent color
- Introduced a new 'modern-two-column' template option for resumes.
- Enhanced PDF generation to accept an accent color parameter.
- Updated existing templates to support the new layout and styling.
- Added styles for the modern two-column layout, including responsive design elements.
- Improved type definitions and template settings to include the new template.
2026-01-06 16:43:51 +05:30
srbhr
6e055a2dd5 feat(resume): enhance template options and code formatting
- Added 'modern' as a valid template option in the template parser.
- Improved code formatting for better readability and consistency.
2026-01-06 16:19:14 +05:30
srbhr
33c92dc712 feat(resume): enhance section visibility checks
- Added `getSectionMeta` import for retrieving all sections.
- Updated visibility check to use all sections instead of sorted sections for accurate display.
2026-01-06 16:05:41 +05:30
srbhr
29792ff907 feat(resume): add modern template with accent colors
- Introduced a new "modern" resume template with customizable accent colors.
- Updated type definitions to include the new template and accent color options.
- Implemented date formatting utility for consistent date range display.
- Enhanced existing resume components to support the new template.
- Adjusted CSS styles for better layout and readability across templates.
- Added documentation for adding new resume templates to guide future development.
2026-01-06 15:28:08 +05:30
srbhr
7197bb4773 feat(resume): enhance formatting and add link styles
- Updated the resume layout to improve readability with adjusted column widths.
- Introduced new styles for date formatting and link pills for better visual appeal.
- Ensured consistent spacing and alignment across resume components.
2026-01-06 14:21:49 +05:30
srbhr
5873b7b3b6 feat(dependencies): add Tiptap extensions and dompurify
- Added @tiptap/extension-link, @tiptap/extension-underline, @tiptap/react, and @tiptap/starter-kit for enhanced text editing capabilities.
- Included @types/dompurify for TypeScript support.
- Updated dompurify to the latest version for improved security and performance.
2026-01-06 12:02:10 +05:30
srbhr
6a17e4e162 refactor(resume): Remove redundant 'resume-body' class in Resume component 2026-01-06 02:36:08 +05:30
srbhr
64296e06e3 feat: Enhance print/PDF layout control for resume components 2026-01-06 02:36:08 +05:30
srbhr
eee681bc54 refactor(resume): Standardize base styling variables 2026-01-06 02:26:52 +05:30
srbhr
e7743843a3 Refactor: Migrate resume components to use CSS Modules 2026-01-06 02:13:37 +05:30
srbhr
1aca3d1357 Refactor: Remove global resume styles from globals.css 2026-01-06 02:13:37 +05:30
srbhr
c4f22ed6c7 Feat: Implement CSS Modules and design token system for resume templates 2026-01-06 02:13:37 +05:30
srbhr
9eedd27ff4 fix(tailor): resolve API loading state error
- Updated button disabled state to include statusLoading.
- Added loading indication for API key configuration check.
2026-01-06 01:26:59 +05:30
srbhr
61d990a2d2 Feat: Implement LLM configuration status checks and UI warnings 2026-01-06 01:15:10 +05:30
srbhr
d8a568efdb Refactor: Apply consistent code formatting across frontend 2026-01-06 01:15:10 +05:30
srbhr
1ccdebb6c4 docs: add comprehensive documentation for new features
- Introduced JD Match feature documentation detailing how tailored resumes match job descriptions.
- Added Resume Template Settings documentation outlining template types and formatting controls.
- Created LLM Integration Guide for multi-provider AI support, JSON handling, and prompt guidelines.
- Compiled Agent Documentation Index for modular documentation on AI agents working with Resume Matcher.
- Developed Maintainer Guide for the resume editor, covering architecture, types, and PDF handling.
- Established a Code Review & Technical Debt TODO document to track critical issues and improvements.
2026-01-05 23:36:27 +05:30
srbhr
e8c86008b4 Updated the templates 2026-01-01 17:15:30 +05:30
srbhr
d3f2fbdf2a chore(docs): update README and .gitignore for clarity
- Removed video section from README for cleaner presentation.
- Added .idea/ to .gitignore to prevent IDE files from being tracked.
- Adjusted CORS_ORIGINS formatting in .env.example and .env.sample for consistency.
- Enhanced prompt templates in templates.py for better resume processing.
- Updated banner message in start.sh for improved clarity.
2026-01-01 16:57:08 +05:30
srbhr
f7b2c9a3df feat(resume): update resume styling and versioning
- Adjusted border styles for resume headers to improve aesthetics.
- Added versioning functionality to display the current app version dynamically.
- Introduced a new version configuration file for better version management.
2025-12-31 21:07:43 +05:30
srbhr
8dbef8a095 fix(resume): improve error handling and documentation
- Updated error message for missing job context to clarify the issue.
- Enhanced job description loading logic to prevent state updates on unmounted components.
- Adjusted keyword matching logic to ensure consistency in character sets.
2025-12-31 19:44:23 +05:30
srbhr
b07e42e2da feat(resume): add JD comparison and highlighting features
- Introduced HighlightedResumeView to display resumes with matching keywords highlighted.
- Added JDComparisonView for side-by-side comparison of job descriptions and resumes.
- Implemented JDDisplay for read-only job description display.
- Enhanced keyword extraction and matching utilities for better JD-resume analysis.
- Updated ResumeBuilder to fetch job descriptions and integrate JD match analysis.
- Improved UI for previewing enhancements in the enrichment step.
- Added documentation for Docker and Ollama setup.
2025-12-31 19:29:15 +05:30
srbhr
0aa6dc468a fix(dialog, toggle-switch): improve event handling and accessibility
- Ensure original onClick handlers are preserved in DialogTrigger and DialogClose components.
- Add aria-labelledby attribute to ToggleSwitch for better accessibility.
- Utilize React.useId for unique label IDs in ToggleSwitch.
2025-12-31 02:05:10 +05:30
srbhr
b91ee4ff01 feat: add ConfirmDialog and Dialog components for user confirmations
- Introduced ConfirmDialog component with customizable options for confirmation actions.
- Added Dialog component along with supporting components (DialogTrigger, DialogClose, DialogContent, DialogHeader, DialogFooter, DialogTitle, DialogDescription) for a cohesive dialog experience.
- Implemented escape key handling and body scroll prevention when dialogs are open.

feat: create UI components for input, toggle switch, and retro tabs

- Developed Input component with a minimalist design and focus styles.
- Created ToggleSwitch component for binary state toggling with clear labeling.
- Implemented RetroTabs component for tabbed navigation with a brutalist aesthetic.

chore: update README with new features and improve documentation

- Updated README to reflect new features and enhancements in the Resume Matcher application.
- Changed header image for better branding.

chore: update package-lock.json for peer dependencies

- Added peer dependencies to various packages in package-lock.json to ensure compatibility.

feat: add header image asset for improved UI
2025-12-31 01:54:32 +05:30