aa383f53f8c400d8c90e491ac4d0ba7805850bf6
- Add parseRankingCriteria() — parses natural-language criteria via OpenAI JSON mode - Add executeAIRanking() — anonymizes projects (P001…), calls OpenAI, de-anonymizes results - Add quickRank() — one-shot helper that parses + ranks both categories in parallel - Add fetchAndRankCategory() — fetches eligible projects from Prisma and calls executeAIRanking - compositeScore: 50% normalised avgGlobalScore + 50% passRate + tiny tiebreak bonus - Projects with zero SUBMITTED evaluations are excluded (not ranked last) - All project IDs anonymized before OpenAI — no PII in prompts - Follows ai-filtering.ts pattern: getOpenAI, logAIUsage with action RANKING, classifyAIError
Description
No description provided
Languages
TypeScript
99.4%
JavaScript
0.2%
CSS
0.2%
Shell
0.2%