This project is a part of the IIT Gandhinagar 24' Software Development Club Hackathon. More about that below.
This project is a web-based application that helps users create resumes quickly by using the Groq AI API with minimal effort.
Users input their personal and professional details, and the app will automatically generate a well-structured, polished resume in a professional format.
The idea is to simplify the process of creating a resume by providing suggestions and formatting tips.
The goal of this project is to build a web-based application that helps users create resumes quickly by using the OpenAI API/Groq AI API with minimal effort. Users will input their personal and professional details, and the app will automatically generate a well-structured, polished resume in a professional format. The idea is to simplify the process of creating a resume by providing suggestions and formatting tips.
- Functionality: The website should perform the core tasks effectively—taking user input, generating content with the OpenAI API, and creating both PDF and LaTeX resumes.
- Ease of Use: The application should have a simple and intuitive user interface. Users shouldn’t struggle to input their data or download the resume in both formats.
- Content Quality: The AI-generated suggestions should be relevant and well-suited to the user’s input, making the resume content stand out in a professional way.
- API Usage: Ensure the efficient use of the OpenAI API, minimizing token usage while still generating high-quality content.
Main Features of the Project:
-
AI Powered Content Suggestions: The project uses the Groq API to generate resume content, generate questions, provide suggestions, review the resume and give valuable feedback and more.
-
User Authentication: The project uses Firebase Authentication to authenticate users and store their data securely.
-
Resume Generation: The project generates resumes in Mardown format as of now, PDF and LaTeX formats will be supported in future versions!
-
Real-Time Resume Preview: The project provides a preview of the resume generated in Markdown format. The preivew is updated in real-time as the user inputs data.
-
User Input Form: The project provides a form for the user to input their personal and professional details. The form is designed to be user-friendly and intuitive. It updates the resume preview in real-time.
-
System Prompts: The project provides prompts to the user to input data in a structured manner. This helps the AI generate better content
-
Efficient Token API Usage: The project optimizes the usage of the Groq API tokens to minimize costs. The project uses the tokens efficiently to generate high-quality content.
- NextJS
- Appwrite Authentication and Database
- Typescript and Zod
- Groq API - Gemma 7B Model
- TailwindCSS and ShadCN
All files are organized in a structured manner and each file has a specific purpose which is explained via comments in the file.
The project is structured as follows:
app
: Contains the NextJS application.components
: Contains the React components used in the project.lib
: Contains the utility functions used in the project.types
: Contains the types used in the project.public
: Contains the public assets used in the project.
(auth)
: Contains the authentication pages of the project.(root)
: Contains the main pages of the project.editor/[fileId]
: Contains the main editor page of the project consisting of the input form, resume preview and AI Chat Bot.page.tsx
: Contains the main page of the project.
- Contains all the API routes used in the project such as chatbot, review resume, sections, generating questions and skills, etc.
ui
- Contains the ShadCN components used in the project.- Rest of the components are organized based on their functionality.
user.actions.ts
: Contains the main logic of the entire application - login, sign up, logout, CRUD operations for documents, etc.
groq.ts
: Contains the functions to interact with the Groq API.appwrite.ts
: Contains the functions to interact with the Appwrite API.utils.ts
: Contains the utility functions used in the project such as parsing time, parseStringify, etc.prompt.ts
: Contains the system prompts used in the project.pdfGeneration.ts
: Contains the functions to generate Markdown resumes.
- PDF and LaTeX Resume Generation: The project will support PDF and LaTeX resume generation in future versions.
- Resume Templates: The project will support multiple resume templates in future versions.
- User Profile: The project will support user profiles in future versions.
- Resume Sharing: The project will support sharing resumes in future versions.
- Resume Analytics: The project will support analytics for resumes in future versions.
- Groq API and AI Integration: I learned how to integrate the Groq API with the project and use the Gemma 7B model to generate resume content and suggestions.
- Appwrite Revision: It was a good revision of Appwrite and how to use it for authentication and database.
- TailwindCSS along with ShadCN and React Hot Toast: I learned how to use TailwindCSS for styling the project and make it responsive.
- Typescript and Zod: I learned how to use Zod for type checking and validation in the project.
- NextJS: I gained deeper understanding of NextJS and how to use it for building web applications.
The project is deployed on Vercel. You can access the project here.