AI Powered Resume Builder
Designed and developed by: James Bustos
Link to deployed app: https://wwwinstacv.jamesjbustos.com/
InstaCV, an AI-powered resume builder, seeks to reinvent the resume creation process. Using the capabilities of OpenAI's GPT and Whisper APIs, InstaCV offers users the flexibility to either narrate their professional journey or input their experiences manually. In either scenario, the platform employs AI to analyze, structure, and optimize the content into a polished, professional resume tailored to target roles. By providing this dual approach, InstaCV addresses the challenges many face in drafting impactful resumes and ensures a tailored, high-quality output.
The idea of InstaCV arose from the often tedious and restrictive nature of traditional resume crafting. Recognizing the challenges faced during job applications – from constant revisions to impersonal templates – InstaCV was conceptualized to offer a seamless and personalized resume-building experience. The platform empowers users to convey their career narratives and have them adeptly translated into resumes that encapsulate both their professional caliber and personal nuances.
- Frontend
- Languages: JavaScript
- Frameworks: React.js (Vite)
- UI Components: ShadCN, TailwindCSS
- Icons: Lucide Icons
- Backend:
- Languages: Node.js
- Frameworks: Express
- Authentication: Passport, OAuth2
- Database: PostgreSQL
- Hosting: Railway
-
Resume Builder Interface:
- Allow for user input to populate resume.
- Generate PDF dynamically with user input
- Allow users to download their resume in PDF format.
- Add clear resume to button to reset fields
-
Account management:
- Save resumes to your account.
- Sign up and sign in with Github.
-
Resume management:
- Create, update, and delete resumes.
- Locate saved resumes on your account.
instacv-interface.mov
InstaCV.-.LOGIN.mov
resume-management.mov
To install and run InstaCV locally, please follow these steps:
-
Clone the repository to your local machine using the following command:
git clone https://github.com/jamesjbustos/insta-cv.git
-
Navigate to the project server and client directory and install the required dependencies:
cd client ; npm install
cd server ; npm install
-
Go to root directory and run the following:
npm start
In this schema, we have the following relationships:
-
One-to-Many Relationship:
- users to resumes: Each user can have multiple resumes, but each resume is linked to only one user.
-
Many-to-Many Relationship (Products to Tags):
- resumes to tags: A resume can have multiple tags, and a tag can be associated with multiple resumes.
Column | Type | Properties |
---|---|---|
id | int | pk, increment |
githubid | varchar | unique, not null |
username | varchar | not null |
avatarurl | text | |
accesstoken | text | |
registration_date | timestamptz | default: now() |
Column | Type | Properties | Indexes |
---|---|---|---|
resumeID | int | pk, increment | userID |
userID | int | ref: > users.id | |
creation_date | datetime | default: now() |
|
content | text | ||
targeted_role | varchar | ||
templateID | int | ref: > templates.templateID | |
last_modified | datetime | default: now() |
Column | Type | Properties |
---|---|---|
templateID | int | pk, increment |
name | varchar | |
design | varchar | Refers to LaTeX template files |
description | varchar |
Column | Type | Properties |
---|---|---|
tagID | int | pk, increment |
tag_name | varchar |
Column | Type | Properties | Indexes |
---|---|---|---|
resumeID | int | ref: > resumes.resumeID | (resumeID, tagID) [pk] |
tagID | int | ref: > tags.tagID |
This project is licensed under the MIT License