Topkan — AI bilan nomzod tanlash
Full-stack · backend, veb-ilova, AI va Telegram
HR vakansiya yaratadi, tizim “smart-link” beradi, HR uni Telegram kanallarida ulashadi. Nomzodlar havola yoki bot orqali topshiradi, har bir rezyume esa vakansiya talablariga moslik bo‘yicha 0–100 ball bilan avtomatik baholanadi.
- NestJS
- Prisma
- PostgreSQL
- Redis · BullMQ
- Next.js
- Claude API
- Telegram Bot
Muammo
Telegram kanaliga vakansiya joylagan HR yuzlab rezyume oladi va ularni qo‘lda o‘qib chiqadi. Qaysi kanal yaxshi nomzod berayotganini bilmaydi, eng mos nomzodlar esa ro‘yxat oxirida qolib ketadi. Topkan bu ishni avtomatlashtiradi: HR faqat saralangan eng yaxshi nomzodlar bilan ishlaydi.
Mening rolim
Loyihani to‘liq qurdim: ma’lumotlar modeli va NestJS backend, Next.js veb-ilova (HR paneli va nomzod kabineti), AI baholash quvuri, Telegram bot, serverga joylash va avtomatik deploy.
Imkoniyatlar
HR uchun
- Vakansiya yaratish va e’lon qilish — tokenli “smart-link” avtomatik yaratiladi
- Har bir kanal uchun alohida link: klik, arizalar, o‘rtacha ball va konversiya bo‘yicha kanallarni solishtirish
- Saralangan nomzodlar paneli: qidiruv, holat va minimal ball bo‘yicha filtr, bir nechtasini birdan o‘zgartirish, ichki izohlar
- Nomzodlar voronkasi (kanban), intervyular va Google Calendar / Meet integratsiyasi
- Jamoa: rekruter taklif qilish (link 7 kunda eskiradi), chiqarish — o‘chirish emas, deaktivatsiya
Nomzod uchun
- Havola orqali yoki Telegram bot orqali ariza topshirish
- Google / LinkedIn bilan kirish, shaxsiy kabinetda arizalar holati
AI baholash
- Rezyume matni PDF va DOCX dan ajratiladi, vakansiya talablari bilan birga LLM ga yuboriladi
- Natija — tuzilmali JSON (tool-use): 0–100 ball va asoslash
- Skrining savollari: “knockout” javob kelsa ariza avtomatik rad etiladi va LLM ga umuman yuborilmaydi — token tejaladi
- Baholash tugagach, tashkilotning Telegram chatiga xulosa keladi
Arxitektura
Muhim muhandislik qarorlari
Baholash — so‘rov yo‘lida emas, navbatda
LLM javobi soniyalar oladi va ba’zan xato qaytaradi. Shuning uchun ariza darhol qabul qilinadi, baholash esa BullMQ navbatida alohida worker jarayonida bajariladi — qayta urinish bilan. Nomzod kutib qolmaydi, API tez qoladi.
LLM dan erkin matn emas, tuzilma
Model javobi tool-use orqali qat’iy JSON sxemasiga majburlanadi. Shunda ball va asoslashni to‘g‘ridan-to‘g‘ri bazaga yozish, filtrlash va saralash mumkin — matnni “parse” qilish kerak emas.
Arzon filtr — qimmat modeldan oldin
Skrining savollaridagi knockout javoblar LLM chaqiruvidan oldin tekshiriladi. Mos kelmaydigan arizalar uchun token sarflanmaydi.
Fayllar serverdan o‘tmaydi
Rezyume va fayllar presigned URL orqali to‘g‘ridan-to‘g‘ri S3 ga yuklanadi — API xotirasi va tarmog‘i band bo‘lmaydi.