INNER CODE UNIT · Python
score_candidate
LiuMengxuan04/shushu-internship-tool · skills/shushu-internship-tool/scripts/shushu_internship_tool/candidate_score.py:272
def score_candidate(
candidate: dict[str, Any],
jd_text: str,
today: date | None = None,
taste_text: str | None = None,
) -> dict[str, Any]:
today = today or date.today()
prefer_tags, avoid_tags = parse_user_taste(taste_text)
effective_taste = bool(prefer_tags or avoid_tags)
max_raw_score = TASTE_MAX_RAW_SCORE if prefer_tags else NO_TASTE_MAX_RAW_SCORE
keyword_points, matched_keywords, keyword_reason = keyword_score(candidate)
license_points, license_reason = license_score(candidate)
runnable_points, runnable_reason = runnable_score(candidate)
compute_points, compute_reason = compute_score(candidate)
activity_points, activity_reason = activity_score(candidate.get("last_commit"), today)
stars_points, stars_reason = stars_score(candidate.get("stars"))
user_preference_points, taste_matches, taste_mismatches, preference_notes = taste_score(candidate, taste_text)