- Flutter app designed to parse CVs show candidate skillset and recommend Udemy courses
- The app allows you to upload .pdf, .docx and .csv CV and gives brief summary of Seniority level, Developer role and skillset. Udemy dataset is used to allow you to search for Udemy courses to level up your knowledge or help you learn another technology
- OpenAI client for GPT-3.5 and GPT-4
- OpenAI embeddings for GPT-3.5 and GPT-4
- Pinecone vector database
- Langgraph multiagent
- Kaggle Udemy dataset https://www.kaggle.com/datasets/yusufdelikkaya/udemy-online-education-courses
- Upload and Summarize CV
cv_upload.mp4
- Courses Recommendation
courses.mp4
1. Clone this repo to your folder:
git clone https://gitlab.extrawest.com/i-training/flutter/udemy-course-recommended-system
2. Change current directory to the cloned folder:
cd udemy-course-recommended-system/mobile
3. Get packages
flutter pub get
1. Open server folder:
cd udemy-course-recommended-system/server
2. In the root of server file create .env file and add the following variables:
OPENAI_API_KEY = "YOUR_OPENAI_API_KEY"
PINECONE_API_KEY = 'YOUR_PINECONE_API_KEY'
PINECONE_INDEX_NAME = "YOUR_PINECONE_INDEX_NAME" // for cv vector store
PINECONE_DATASOURCE_INDEX_NAME = "YOUR_DATASOURCE_INDEX_NAME" // for udemy vector store
3. Upload Udemy dataset to Pinecone:
Go to tools
folder, open datasource_upload_tool.js
file, change csvFilePath to your Udemy dataset path, you also can use one from the project. In the root folder you can find udemy_online_education_courses_dataset.csv
file.
To upload the dataset run node datasource_upload_tool.js
. It can take a while.
4. Run server:
To start server, just run npx tsx server.ts
.
2. Change server path in flutter project: Go to app/lib/services/api_service.dart and change the baseUrl to your server path
Now you can use the app
Created by Oleksandr Samoilenko
Extrawest.com, 2024