🔍 Problem Statement
Description
Create a backend service that recommends relevant projects to freelancers based on their profile. Recommendations should leverage skills, previous projects, budget preferences, and project categories to improve discovery and matching.
Considerations
- Skills — match freelancer skill tags with project requirements.
- Previous projects — prioritize projects similar to past successful work.
- Budget — align recommendations with freelancer’s preferred budget range.
- Project category — filter by categories relevant to freelancer expertise.
Tasks
- Design recommendation algorithm — combine weighted factors (skills, history, budget, category).
- Implement efficient database queries — use indexes and optimized joins for scalability.
- Add pagination support — return results in chunks for large datasets.
- Fallback logic — when insufficient matching data exists, recommend recent or trending projects.
- Expose API endpoint — provide a REST/GraphQL endpoint for fetching recommendations.
- Add caching layer — reduce load for frequently requested recommendations.
- Include logging/metrics — track recommendation quality and query performance.
Acceptance Criteria
- ✅ Paginated recommendations — API returns results in pages with metadata (
totalCount, hasMore).
- ✅ Efficient database queries — recommendations load quickly even under high traffic.
- ✅ Fallback to recent projects when insufficient matching data exists.
- ✅ Consistent results across sessions — same profile yields stable recommendations.
- ✅ Secure access control — only authenticated freelancers can request recommendations.
- ✅ Unit/integration tests included — validate algorithm correctness and performance.
📈 Expected Impact
High — Would significantly improve user experience
🔍 Problem Statement
Description
Create a backend service that recommends relevant projects to freelancers based on their profile. Recommendations should leverage skills, previous projects, budget preferences, and project categories to improve discovery and matching.
Considerations
Tasks
Acceptance Criteria
totalCount,hasMore).📈 Expected Impact
High — Would significantly improve user experience