Apply Helper is an AI-powered application that assists users in analyzing resumes and job descriptions. Built with Flask and OpenAI's Assistant API, it provides an interactive interface where users can:
- Upload their resume (PDF format) and Job description
- Ask questions about their resume or job descriptions
- Get sample cover letter and interview questions
- Get AI-powered insights and suggestions
Thanks to Women Tech Makers Berlin for the Generative AI course. This is a project is inspired from https://github.com/WTMBerlin/generative-ai-course.git
- 📄 PDF Resume Upload
- 💬 Interactive Q&A Interface
- 🤖 AI-Powered Analysis
- 💌 Cover Letter Examples
- 👩💼 Expected Interview Questions
- 📝 Markdown-Formatted Outputs
- Backend: Python/Flask
- Frontend: HTML, CSS, JavaScript
- AI: OpenAI Assistant API
- Document Processing: PDF parsing
- UI: Responsive design with markdown support
- Python 3.8+
- Flask
- OpenAI API Key
- Clone the repository
git clone https://github.com/itsoyou/apply-helper.git
- Create and activate virtual environment
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
- Install dependencies
pip install -r requirements.txt
Create a .env
file in the root directory with the following variables:
OPENAI_API_KEY
: Your OpenAI API key
- Set up the environment variables. Create a
.flaskenv
file in the root directory with the following variables:
FLASK_APP
: apply_helper/app.pyFLASK_DEBUG
: Set to 1 for development mode
- Install the package in development mode
pip install -e .
- Run the Flask application
flask run
The application will be available at http://127.0.0.1:5000
apply-helper/
├── apply_helper/
│ ├── init.py
│ ├── app.py
│ ├── assistant.py
│ ├── config.py
│ ├── routes.py
│ └── templates/
│ └── index.html
├── uploads/
├── .env
├── .flaskenv
├── requirements.txt
└── setup.py
- Open the application in your web browser
- Upload your resume (PDF format)
- Type your question in the text area
- Click "Help me" to get AI-powered responses
- View the formatted response in the chat-like interface