Skip to content

devabhixda/ResumeWriter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Resume Optimizer Chrome Extension

This Chrome extension automatically generates optimized resumes based on job postings from the current webpage.

Setup Instructions

1. Create Virtual Environment

# Create virtual environment
python -m venv .venv

# Activate virtual environment
# On macOS/Linux:
source .venv/bin/activate
# On Windows:
.venv\Scripts\activate

2. Install Python Dependencies

pip install -r backend/requirements.txt

3. Set up Environment Variables

Create a .env file in the backend folder with your API credentials:

MODEL_NAME=preferred_model
API_KEY=your_api_key_here

4. Configure Your Resume Data

Update user_data.json

Edit backend/user_data.json with your personal information:

{
    "core_skills": ["Your", "Core", "Skills"],
    "languages": ["Programming", "Languages", "You", "Know"],
    "frameworks": ["Frameworks", "And", "Tools"],
    "technologies": ["Additional", "Technologies"],
    "work_exp": [
        {
            "job_desc": [
                "Your work experience bullet points",
                "Each entry should highlight achievements and technologies used"
            ]
        }
    ],
    "project_exp": [
        {
            "project_title": "Your Project Name",
            "project_desc": "Description of your project with technologies and impact"
        }
    ]
}

Update Resume Template

  1. Open backend/resume_template.docx in Microsoft Word
  2. Replace placeholder content with your information
  3. Format the template as desired (fonts, colors, layout)
  4. Save the file

Note: The merge fields (text between « and ») will be automatically replaced with your data when generating the resume.

5. Install Chrome Extension

  1. Open Chrome and go to chrome://extensions/
  2. Enable "Developer mode" in the top right
  3. Click "Load unpacked"
  4. Select the plugin folder from this project
  5. The extension should now appear in your extensions list

6. Start the Python Server

# Make sure virtual environment is activated
cd backend
python server.py

The server will start on http://localhost:8000

Usage

  1. Activate virtual environment:
    source .venv/bin/activate  # macOS/Linux
    # or .venv\Scripts\activate on Windows
  2. Start the server:
    cd backend
    python server.py
  3. Navigate to a job posting: Open any job posting URL in Chrome
  4. Click the extension: Click the Resume Optimizer extension icon in your toolbar
  5. Generate resume: Click "Generate Optimized Resume" button
  6. Wait for completion: The extension will show status updates as the resume is generated

Files Structure

ResumeWriter/
├── .venv/                      # Virtual environment
├── plugin/                    # Chrome extension files
│   ├── manifest.json          # Extension manifest
│   ├── popup.html             # Extension popup UI
│   ├── popup.js               # Popup functionality
│   ├── background.js          # Background script
│   └── content.js             # Content script
├── backend/                   # Backend Utility
│   ├── server.py              # Flask server (bridge between extension and Python)
│   ├── main.py                # Main Python script
│   ├── model.py               # Resume optimizer model
│   ├── writer.py              # Resume writer
│   ├── user_data.json         # Your resume data
│   ├── .env                   # Environment variables
│   └── resume_template.docx   # Resume template
└── README.md                  # This file

How It Works

  1. Chrome Extension: Captures the current tab URL and sends it to the Flask server
  2. Flask Server: Receives the URL and calls the Python main.py script in the backend folder
  3. Python Script: Fetches job description, optimizes resume data, and generates PDF
  4. Response: Success/error status is returned to the Chrome extension

Troubleshooting

  • Virtual environment: Make sure to activate the virtual environment before running the server
  • Extension not working: Check if the Flask server is running on port 8000
  • Server errors: Check the terminal output where you ran python server.py in the backend folder
  • Permission issues: Make sure the extension has permission to access the current tab
  • CORS errors: The Flask server includes CORS headers, but ensure no other security software is blocking requests
  • Module not found: Ensure all dependencies are installed in the activated virtual environment
  • Template errors: Ensure your resume_template.docx has the correct merge field names
  • Data format errors: Verify your user_data.json follows the correct JSON structure

Customization Tips

Adding New Work Experiences

  1. Add new entries to the work_exp array in user_data.json
  2. Update main.py to pass the new work experience to the generate() function
  3. Update writer.py to handle the new merge field
  4. Add the corresponding merge field to your resume_template.docx

Modifying Project Display

  • Projects are dynamically generated, so you can add/remove projects in user_data.json without template changes
  • To change project formatting, modify the projects_text generation in writer.py

Development

To modify the extension:

  1. Make changes to files in the plugin/ folder
  2. Go to chrome://extensions/
  3. Click the refresh icon on the Resume Optimizer extension
  4. Test your changes

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published