-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added score algorithm #6
base: main
Are you sure you want to change the base?
Conversation
app/sandbox/scoring.py
Outdated
description=f"Considering thread date")) | ||
|
||
if job.english_level and candidate.english_level: | ||
scoring.add(SimpleRule(score=ENGLISH_WEIGTH.get(job.english_level), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Здається тут помилка, не бачу щоб була евалюація чи підходить англійська кандидата по вакансії
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Справді повинно бути candidate.english_level
замість job.english_level
.
Також можна зробити це так: якщо ми справді хочемо щоб під вакансію з рівнем англійської Intermediate найкраще підпадав кандидат з рівнем Intermediate, і т.д тоді варто зробити це ось так:
scoring.add(SimpleRule(score=lower_distance(ENGLISH_WEIGTH.get(candidate.english_level), ENGLISH_WEIGTH.get(job.english_level)), description="Considering English level"))
Я зроблю зараз коміт з другий варіантом.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Важливо щоби рівень кандидата був не менший за вказаний у вакансії
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Важливо щоби рівень кандидата був не менший за вказаний у вакансії
Хм, тоді краще навіть так:
scoring.add(LogicalRule(score=ENGLISH_WEIGTH.get(candidate.english_level), when=ENGLISH_WEIGTH.get(candidate.english_level) >= ENGLISH_WEIGTH.get(job.english_level), otherwise=0, description="Add score if candidate English level greater than job required level"))
і трішки відкорегувати значення англійської в розрахунках:
ENGLISH_WEIGTH = { EnglishLevel.NONE: 0, EnglishLevel.BASIC: 0.5, EnglishLevel.PRE: 1, EnglishLevel.INTERMEDIATE: 1.5, EnglishLevel.UPPER: 2, EnglishLevel.FLUENT: 2.5 }
Дякую за участь! |
Дуже дякую за відгук! Справді гнучкість цього рішення получилась дуже крутою, як з додаванням правил, так і з легкою реалізацію інших правил, які можна придумати, крім Також, якщо візьмете цей алгоритм в продакшин в мене є наступні ідеї для його покращення:
Таке рішення дуже сильно вплине на швидкість загрузки інбоксу, тому що можна буде відмовитись від цього коду: |
Ми не будемо брати рішення учасників для нашого продакшну. Мета цього тестового - відбір кандидатів на посаду девелопера в команду. |
Зрозуміло, тоді дякую за відгук! |
Привіт, не претендую на вакансію, але можливо ви розглянете цей алгоритм, як один із варіантів імплементації.
Також, чомусь Лум вирішив зробити мене шипілявим - дуже сильно вибачаюсь за цей звук)
Loom