- 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.
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>
- 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.
- 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.
- 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.
- 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.
- 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.
- Add Pydantic models for enrichment items, questions, and responses in backend schema.
- Create frontend components for the enrichment modal, including steps for analyzing, generating, and applying enhancements.
- Implement a custom hook for managing the enrichment wizard state using useReducer.
- Integrate API functions for analyzing resumes, generating enhancements, and applying changes.
- Document architectural decisions and component structure for the enrichment feature.
- Add parent_id to ResumeResponse interface
- Add generateCoverLetter() function to call new endpoint
- Add generateOutreachMessage() function to call new endpoint
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Added support for body font selection in resume settings, allowing users to choose between serif, sans-serif, and mono fonts.
- Updated the compact mode functionality to apply a 0.6x spacing multiplier, ensuring consistent layout while maintaining margins.
- Enhanced CSS styles to incorporate new body font settings and improve overall typography in resume templates.
- Introduced an "Effective Output" summary in formatting controls to display adjustments for margins, spacing, and typography settings.
- Deleted the Windows-only PowerShell setup script to streamline project setup.
- Added new parameters for resume PDF generation, including header font selection, compact mode, and contact icon visibility.
- Updated backend and frontend components to support the new PDF generation options, improving customization for users.
- Enhanced CSS styles for better layout and spacing in resume templates.
- Added new language configuration endpoints for managing UI and content languages.
- Introduced a LanguageProvider to manage language state across the application.
- Enhanced resume and cover letter generation to support multiple languages.
- Updated frontend components to utilize translations and language settings.
- Expanded documentation to include details on language configuration and usage.
- Introduced functionality to generate and update cover letters and outreach messages for resumes.
- Enhanced the resume schema to include fields for cover letter and outreach message content.
- Implemented new API endpoints for updating cover letters and outreach messages.
- Added UI components for editing and previewing cover letters and outreach messages in the Resume Builder.
- Updated feature configuration settings to enable or disable cover letter and outreach message generation.
- Enhanced documentation to reflect new features and usage instructions for cover letter and outreach message functionalities.
- Introduced a centralized API client for streamlined API interactions, improving maintainability and consistency across the application.
- Updated various components to utilize the new API client, including resume upload and fetching functionalities.
- Enhanced the Settings page to load system status on demand, reducing unnecessary API calls.
- Implemented a new WYSIWYG paginated preview system, improving user experience with accurate PDF layout representation.
- Documented recent changes and new components in the style guide.
- Added `db.delete_resume` and `db.list_resumes` methods to manage resume data.
- Introduced `db.set_master_resume` for setting a master resume.
- Enhanced API with a new DELETE endpoint for resumes, including error handling and success messages.
- Updated frontend to support resume deletion with confirmation dialogs and success notifications.
- Implemented template selection and formatting controls in the Resume Builder, allowing users to customize margins, spacing, and font sizes.
- Added two new resume templates: Swiss Single-Column and Swiss Two-Column, with corresponding UI components.
- Updated documentation to reflect new features and usage instructions for the resume template system.
- Add processing_status field to track resume parsing state (pending, processing, ready, failed)
- Improve LLM prompts with concrete JSON examples for better free model compatibility
- Fix JSON extraction to handle responses without outer braces
- Add Swiss-themed delete confirmation dialog component
- Fix stale localStorage when database is deleted (auto-clear on 404)
- Update dashboard to show real-time processing status with visual indicators
- Update resume viewer with contextual error messages for different states
- Remove on-demand LLM parsing that caused repeated failures
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Introduced a comprehensive installation guide (INSTALL.md) for setting up Resume Matcher for local development, detailing prerequisites, quick start instructions, and CORS configuration.
- Removed outdated setup documents (SETUP.md and SETUP.es.md) to streamline the documentation and avoid confusion.
- Updated README.md to reflect new features and improvements, including multi-provider LLM support and enhanced resume tailoring capabilities.
- Update PersonalInfo: fullName → name
- Update Experience: role → title, startYear/endYear → years, descriptions → description
- Update Project: startYear/endYear → years, descriptions → description
- Update AdditionalInfo: skills → technicalSkills, certifications → certificationsTraining
- Add id fields to Experience, Education, and Project models
- Update LLM prompt schema to match new field names
- Fix Resume Viewer to prioritize processed_resume over raw_resume
- Update frontend ResumeResponse interface to match backend
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Settings page now shows:
- System status panel with LLM health, database connection
- Database stats: resumes, jobs, improvements count
- Master resume configuration status
- Multi-provider LLM selection (OpenAI, Anthropic, OpenRouter, Gemini, DeepSeek, Ollama)
- Model configuration with provider defaults
- API key input (disabled for Ollama)
- Ollama server URL configuration
- Test connection button with health check results
- Refresh status button
API client updates:
- fetchLlmConfig() for full configuration
- updateLlmConfig() with partial updates
- fetchSystemStatus() for system health
- testLlmConnection() for provider validation
- PROVIDER_INFO with defaults and metadata
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Introduced a new document defining the API contract between the Next.js frontend and FastAPI backend for the Resume Matcher application.
- Added a detailed workflow documentation outlining user interactions and core processes, including resume initialization, viewing, tailoring, and building.
- Updated AGENTS.md to reference the new documentation files for better project structure clarity.