A web-based application that enables users to create, manage, and generate professional resumes and cover letters tailored to specific job advertisements using AI-assisted analysis.
Developed as an NCEA Level 3 Software Development project to demonstrate full-stack web development, responsive web design, and AI integration.
The purpose of this project is to develop a web-based job application platform that helps users create professional, job-specific CVs and cover letters more efficiently. Users can securely store their personal information, education, work experience, and skills in a central profile, allowing the system to generate tailored application documents and analyse job advertisements using AI. The platform is designed for students and job seekers, reducing the time and effort required to prepare applications while improving the quality of their job applications.
- User Authentication – Secure user registration, login, and account management.
- User Profile Management – Store and manage personal details, education, work experience, skills, and certificates.
- AI Job Analysis – Analyse job advertisements to identify required skills and job suitability.
- AI Resume Generation – Generate a professional, job-specific resume based on the user's profile and the selected job.
- AI Cover Letter Generation – Create customised cover letters tailored to individual job applications.
- Document Management – Save, view, edit, and organise generated resumes and cover letters.
- Rich Text Document Editor – Edit generated documents before downloading or submitting them.
- Responsive Web Interface – Accessible across desktop, tablet, and mobile devices.
- Persistent Database Storage – Store user information and generated documents securely using a relational database.
- Form Validation & Error Handling – Validate user input and provide clear feedback to improve usability.
| Component | Technology |
|---|---|
| Backend | Flask |
| Frontend | HTMX + Jinja2 |
| Database | SQLite + SQLAlchemy |
| AI | Gemini API |
| Architecture | Server-side rendered, SPA-like navigation using HTMX |
- Python
- Flask
- SQLAlchemy
- Flask-WTF
- Flask-Migrate
- Flask-Login
- HTML5
- CSS3
- JavaScript
- Jinja2
- HTMX
- SQLite
- Gemini API
project/
│
├── app/
│ ├── ai/
│ ├── routes/
│ ├── templates/
│ ├── static/
│ ├── utilities/
| ├── __init__.py
| ├── extensions.py
| ├── forms.py
| └── models.py
│
│
├── migrations/
├── instance/
├── docs/
├── config.py
├── .env
├── requirements.txt
├── main.py
└── README.md
Clone the repository
git clone https://github.com/AlgorithmicPV/Applyra-v1.gitGo into the project
cd applyra-v1Create virtual environment
Windows
python -m venv venv
venv\Scripts\activateMac/Linux
python3 -m venv venv
source venv/bin/activateInstall dependencies
pip install -r requirements.txtCreate a .env file.
Example:
SECRET_KEY=
MAIL_SERVER=
MAIL_USERNAME=
MAIL_PASSWORD=
OTP_SECRET=
FERNET_KEY=
GEMINI_API_KEY=If you are unfamiliar with setting up TOTP, this tutorial may help:
TOTP Setup Tutorial by NeuralNine
Credit: NeuralNine — external tutorial used for reference only.
This application uses the Gemini API for AI-powered features.
- Go to Google AI Studio.
- Sign in with your Google account.
- Create a Gemini API key.
- Add the API key to your
.envfile:
If you need help setting up the email system for this application, you can follow this external tutorial:
Watch Email Setup Tutorial by Arpan Neupane
Credit: Arpan Neupane — external tutorial provided for setup reference only.
This application uses a Fernet key to encrypt sensitive data such as TOTP secrets.
Generate a key by running:
from cryptography.fernet import Fernet
print(Fernet.generate_key().decode())The application requires a SECRET_KEY for Flask security features such as sessions and CSRF protection.
You can generate a random key using UUID4:
import uuid
print(uuid.uuid4().hex)Initialize migrations
flask db initCreate migration
flask db migrate -m "Initial migration"Apply migration
flask db upgradeflask runor
python main.pyor
python3 main.pyApplication will be available at
http://127.0.0.1:5000
- Register an account.
- Verify your email address.
- Complete your profile.
- Add your education, skills, and work experience.
- Analyse a job advertisement.
- Generate an AI-tailored resume.
- Generate an AI-tailored cover letter.
- Edit the generated documents.
- Save or download the final documents.
G.A.P Vidunitha
GitHub: https://github.com/AlgorithmicPV
LinkedIn: https://www.linkedin.com/in/pasindu-vidunitha-7b3a573a5/
- Flask
- SQLAlchemy
- HTMX
- Google Gemini
- Bootstrap
- TinyMCE
If you found this project useful, please consider giving it a ⭐ on GitHub.
© 2026 G.A.P Vidunitha. All rights reserved.
