Skip to content

briang123/jobassist

Repository files navigation

Job Application Assistant

A comprehensive web application designed to streamline your job application process by storing and managing all your professional information in one organized location. Create multiple profiles, import resumes, generate cover letters, and export data for seamless job applications.

πŸš€ Features

Multi-Profile Management

  • Create unlimited professional profiles for different career paths
  • Each profile maintains customized work experience and skills
  • Share personal information and education across all profiles
  • Duplicate profiles to create variations for similar roles

Resume Import & Processing

  • Upload PDF and Word documents for automatic data extraction
  • Automatic extraction of personal information, work experience, education, and skills
  • Professional summary detection and organization
  • Preview extracted data before applying to forms

Cover Letter Management

  • Create and manage multiple cover letters per profile
  • Template system for reusable cover letter formats
  • Automatic placeholder replacement (dates, names, contact info)
  • Export to PDF and Word formats with professional formatting

Professional Resume Export

  • Generate ATS-optimized resumes in Markdown, PDF, and Word formats
  • Clean, employer-friendly formatting optimized for applicant tracking systems
  • Proper section ordering (Professional Summary β†’ Experience β†’ Education β†’ Skills)
  • Privacy-conscious address handling

Government Compliance

  • Pre-filled answers for common job application questions
  • Comprehensive 25+ field collection covering federal employment requirements
  • Security clearance information management
  • Work authorization and citizenship status tracking

Unemployment Benefits

  • Weekly/bi-weekly certification questions
  • Work search activities tracking
  • Income reporting and status changes
  • Job search activities documentation

Chrome Extension Integration (Work in Progress)

  • Export all data in Chrome Extension compatible JSON format
  • Include resume file references for automated uploads
  • Profile-specific exports for targeted job applications
  • Note: Chrome Extension functionality is currently under development

Theme System

  • Light/Dark Mode: Automatic system preference detection with manual override
  • Persistent Settings: Theme preference saved between sessions
  • Bootstrap Integration: Full Bootstrap 5 dark mode support
  • Accessibility: High contrast ratios and proper focus indicators
  • Responsive Design: Theme controls available on both mobile and desktop

πŸ“‹ Prerequisites

  • Python 3.11 or higher
  • Node.js (for development scripts)
  • Modern web browser (Chrome, Firefox, Safari, Edge)

πŸ› οΈ Installation

Option 1: Quick Start (Recommended)

  1. Clone the repository

    git clone <repository-url>
    cd jobassist
  2. Install Python dependencies

    pip install -r backend/requirements.txt
  3. Start the application

    python backend/server.py
  4. Open your browser Navigate to http://localhost:5000

Option 2: Development Setup

  1. Install dependencies

    npm install
  2. Start development server with auto-reload

    npm run dev

This will start the server with file watching and automatically open your browser.

🎯 Getting Started

1. Create Your First Profile

  • Navigate to the "Job Profiles" tab
  • Enter a profile name (e.g., "Software Engineer", "Project Manager")
  • Click "Create Profile"

2. Add Personal Information

  • Go to the "Personal Info" tab
  • Fill in your contact details, address, and basic information
  • This information is shared across all profiles

3. Import Your Resume (Optional)

  • Visit the "Import Resume" tab
  • Upload your PDF or Word resume
  • Review the extracted data and apply it to your profile

4. Customize Experience & Skills

  • Navigate to "Experience" and "Skills" tabs
  • Add or modify work experience and skills for your specific role
  • Use the reordering buttons to prioritize your most relevant experience

5. Add Education & Compliance

  • Complete the "Education" section
  • Fill out "Government" questions for federal/contractor positions
  • Add "Unemployment Benefits" information if needed

6. Create Cover Letters

  • Go to the "Cover Letters" tab
  • Create templates for different types of applications
  • Use placeholders like [Date], [Your Name] for dynamic content

7. Export Your Data

  • Visit the "Export Data" tab
  • Choose which sections to include
  • Export in various formats (JSON, PDF, Word, Markdown)

πŸ“ Project Structure

jobassist/
β”œβ”€β”€ frontend/                 # Frontend application
β”‚   β”œβ”€β”€ index.html           # Main application page
β”‚   β”œβ”€β”€ css/                 # Stylesheets
β”‚   β”œβ”€β”€ js/                  # JavaScript modules
β”‚   β”‚   β”œβ”€β”€ managers/        # Feature managers
β”‚   β”‚   β”œβ”€β”€ sections/        # Tab-specific functionality
β”‚   β”‚   └── utils/           # Utility functions
β”‚   └── favicon.ico
β”œβ”€β”€ backend/                  # Python Flask server
β”‚   β”œβ”€β”€ app/                 # Flask application
β”‚   β”‚   β”œβ”€β”€ routes/          # API endpoints
β”‚   β”‚   β”œβ”€β”€ services/        # Business logic
β”‚   β”‚   └── utils/           # Backend utilities
β”‚   β”œβ”€β”€ server.py            # Main server file
β”‚   └── requirements.txt     # Python dependencies
β”œβ”€β”€ chrome-extension/        # Chrome Extension (WIP - separate project)
β”‚   β”œβ”€β”€ dev-inspector.js     # Extension logic
β”‚   β”œβ”€β”€ manifest.json        # Extension manifest
β”‚   └── docs/                # Extension documentation
└── uploads/                 # File upload storage

πŸ”§ Configuration

Environment Variables

Create a .env file in the root directory for custom configuration:

FLASK_ENV=development
FLASK_DEBUG=True
UPLOAD_FOLDER=uploads
MAX_CONTENT_LENGTH=16777216

Development Scripts

# Start development server with auto-reload
npm run dev

# Start server only
npm run server

# Open browser automatically
npm run open-browser

# Start with browser and dev tools
npm start

πŸ“Š Data Management

Local Storage

  • All data is stored locally in your browser
  • Data persists between sessions
  • No server-side data storage (privacy-focused)

Export Options

  • JSON: Complete data export for Chrome Extension
  • PDF: Professional resume in PDF format
  • Word: Editable document format
  • Markdown: Plain text format for version control

Import Options

  • Resume files (PDF, Word)
  • Profile JSON files
  • Example data for demonstration

🎨 Customization

Adding Custom Fields

  • Use the "Custom Fields" tab to add specialized information
  • Perfect for LinkedIn summaries, portfolio links, certifications
  • Automatically included in exports

Profile Templates

  • Create cover letter templates for different job types
  • Set default templates for quick creation
  • Use placeholders for dynamic content

Skills Organization

  • Drag and drop to reorder skills
  • Create custom skill categories
  • Import skills from resume uploads

πŸ”’ Privacy & Security

  • Local Storage: All data stays on your device
  • No Authentication: No user accounts or server-side data
  • Privacy Controls: Choose what information to include in exports
  • Address Privacy: Street addresses excluded from resume exports

πŸ› Troubleshooting

Common Issues

Server won't start

  • Ensure Python 3.11+ is installed
  • Check that all requirements are installed: pip install -r backend/requirements.txt
  • Verify port 5000 is available

Resume import not working

  • Ensure file is PDF or Word format
  • Check file size (max 16MB)
  • Try refreshing the page and uploading again

Data not saving

  • Check browser console for JavaScript errors
  • Ensure localStorage is enabled in your browser
  • Try clearing browser cache and reloading

Export not working

  • Verify all required fields are filled
  • Check browser console for errors
  • Ensure popup blockers are disabled

Browser Compatibility

  • Chrome 90+
  • Firefox 88+
  • Safari 14+
  • Edge 90+

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature-name
  3. Make your changes
  4. Test thoroughly
  5. Commit your changes: git commit -m 'Add feature'
  6. Push to the branch: git push origin feature-name
  7. Submit a pull request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Built with Bootstrap 5 for responsive design
  • Font Awesome for icons
  • Flask for backend functionality
  • PDF processing with pdfplumber and PyPDF2
  • Document generation with python-docx and reportlab

πŸ“ž Support

For issues, questions, or feature requests:

  • Check the troubleshooting section above
  • Review the documentation in the docs/ folder
  • Open an issue on the repository

Happy job hunting! 🎯

About

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published