🔧 Architecture
- Is the current architecture well-designed considering future improvements?
Ahmadsho said the baseline is ok, but he doesn’t really know how recsys connects with backend in production.
- What potential issues may arise during project scaling?
Too many data in matrixes, so we can do decompositions.
- Do we need two separate services for recommendations — a lightweight version and a more complex one?
For filtering we can use just pair vector multiplication to recalculate recommendations, no need for lightweight at least for MVP.
📥 Data and features
- Should we use implicit feedback (e.g., clicks, time spent) in addition to explicit feedback?
Not for MVP, but in future yes. The reason is below.
- What features can be used to improve recommendations — including soft skills, hard skills, preferences, or behavior?
We consider behavior as implicit feedback. When user clicks on the interesting projects, we find similar and make the weight of resume less (under consideration).
- If we allow users to upload a GitHub profile or repository, can we extract tools, technologies, or project history as useful features? Would comparing GitHub project summaries to available team projects be beneficial?
Nice to have, but not everyone has github account, public projects and etc.
🧠 ML-models
- What modern ML models are suitable for our data and problem setup?
No direct advices, ahmadsho said to ask ChatGPT
- What can we add to the ML part to make the recommendation system more effective or advanced?
Implicit feedback, extract more features, weight reducing during continuous interactions.
- How can we ensure optimal role distribution in team recommendations (e.g., who should be the frontend, PM, etc.)?
TA said this is a users problem, but we can just recommend if we really want it.
- Should we consider integrating a vector database (e.g. FAISS)?
- What value can it bring in our case (semantic search, faster matching, etc.)?
More comfortable way of matching
- Is it acceptable for projects to be stored both in PostgreSQL and a vector DB simultaneously?
Briefly - we will update it anyway for computation.
- What should we do if we change the embedding generation method later — how to handle updates and compatibility?
DB will update all data inside so doesn’t matter.
- Should we use the vector DB only for retrieval, or also for real-time filtering or scoring?
Currently only for offline-scoring.
🧑💻 Users experience and project valuable
- How can we enhance the user experience through ML (e.g., explainability, personalization)?
- Based on previous user feedback, how can we recommend projects where users are likely to have good networking opportunities and team synergy?
It is very hard to consider because of lack of needed features.