This is a submission for the GitHub Copilot Challenge: New Beginnings or Fresh Start
What I Built
Everyone deserves a new beginning or fresh start in their career journey, especially as we just entered new year of 2025. In this opportunity, I built a modern resume analysis tool that combines the power of Google's Gemini AI with Taipy's intuitive UI framework. The application helps users give insights, check grammar, propose improvement on their resume, and also interact with the resume through a chat with AI interface. I sincerely hope this could help someone who would like to look for new role and/or transition career.
Technical Stack
- Frontend: Taipy UI
- Backend: Python (Taipy)
- AI Model: Google's Gemini 1.5 Flash
- LLM Orchestration: Langchain
Key Features
1. Resume Analysis Dashboard
The application provides instant metrics including:
- Skills distribution (Technical vs Soft skills)
- Years of experience
- Role analysis (Individual vs Managerial)
- Company history
- Interactive WordCloud visualization for extracted skills
2. Grammar Check & Improvements
- Automated grammar analysis
- Style suggestions
- Keyword optimization
- Structure improvements
3. AI Chat Interface
- Context-aware conversations
- Resume-specific queries
- Professional recommendations
Demo
Link to the app: here.
When app is shown, simply upload your resume and after analysis is complete, 3 buttons based on Key Features will show. Also, please visit github link for more detail about sample questions to chat with the AI.
All these are running on free tier. If you get hit by rate limit of Google AI API, please try again. If the web app doesn't show up immediately, the instance may be deactivated due to inactivity. Wait for a couple of minutes and refresh the app. Also, if it looks like it hangs up on you after message saying "Resume analysis complete!", just refresh the page, it should show up with results (this is perhaps due to low CPU on the free tier).
Repo
Resume AI with Taipy and Gemini
An AI-powered resume analyzer that provides insights, grammar checks, and interactive chat capabilities using Google's Gemini model.
Features
- π Resume Analysis Dashboard
- π Grammar Check & Suggestions
- π¬ Interactive Chat with Resume Context
- π Visual Metrics & Word Cloud
- π± Responsive UI
Prerequisites
- Python 3.10+
- Google API Key
- PyMuPDF (for PDF processing)
- Taipy
Installation
- Clone the repository:
git clone <repository-url>
cd <repository-name>
- Create a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: .\venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Set up environment variables: Create a .env file in the root directory:
GOOGLE_API_KEY=your_google_api_key_here
Get your Google API key from here
This project uses gemini-1.5-flash
Local Deployment
- Start the development server:
taipy run main.py --use-reloader
- Acccess the application at http://localhost:10000
Environment Variables
GOOGLE_API_KEY: Your Google API key for Gemini
Sample Questions for AI
- What do you think of myβ¦
Copilot Experience
I used Copilot throughout development process:
- Use the autocomplete of code proposed by copilot. This is very helpful to avoid writing boilerplate code. For example: When I created a variable for chart data of skills, copilot immediately recommended for autocompletion 2 other variables for chart data of roles and companies, simply because it has the context of what I would like to write.
- When there's a mistake while writing code e.g. python indentation, missing comma when writing taipy code (as I am just learning), I can hover on the mistake and ask copilot to fix it for me.
- What is most useful for me and I use it like 80% of the time is the copilot chat (using Claude Sonnet 3.5 - it works much better than GPT 4o). I use it to iteratively expand functionality in my code and also to write README doc. Few of my chats with copilot chat that I can remember:
- load pdf content langchain
- use langchain with prompt and use system prompt with ChatGoogleGenerativeAI
- ask llm to return age, gender, number of skills, year of experience, number of roles, number of company in json
- show the json result using appealing chart in taipy
- I want the metric shown as individual number but appealing
- Create page in taipy for resume insight, grammar check and potential improvement, and chat with resume
- I want analysis results part visible only after resume is uploaded
- generate wordcloud from skills
I still need to do some fixes from generated code but it helps me accelerate the development. IMHO, majority of the fixes that I need to do is because taipy as framework or library was still new and not many examples can be found easily when googling it, hence copilot chat was unable to provide right example.
Some notable mistakes that took time to fix:
- Copilot proposed visible in attribute of taipy's part to control visibility while the real attribute for that is render.
- Copilot proposed to use base64encoded value in taipy's image to render an image while what is needed is the byte value from buffer.
- Copilot also didn't propose to use rebuild attribute in taipy's chart as it is needed in order to render chart after data change.
Despite all the mistakes, I strongly recommend using Copilot to accelerate code development especially if the usage is for framework or library more widely known.
GitHub Models
I don't use Github Models for this purpose.
Conclusion
I am happy I am able to learn new things in this 24 hours window (mostly taipy and langchain). I learn to be able to use Github copilot effectively. I also sincerely hope the app can be useful for someone looking for new beginning or fresh start in their career by improving their resume. This is also a good upskill for me in 2025 as Taipy looks promising for quick prototyping (and move to production) and it's really fast.
Top comments (0)