Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -517,30 +517,54 @@ with tab1:
|
|
517 |
"- Ưu tiên **tiềm năng phát triển hơn kinh nghiệm**, đề cao tinh thần khởi nghiệp.",
|
518 |
"- Không phù hợp với ứng viên **chỉ tìm kiếm sự ổn định hoặc phúc lợi cao ngay từ đầu**.",
|
519 |
"- Tiêu chí đánh giá: 40% năng lực chuyên môn, 30% phù hợp văn hóa, 20% khả năng học hỏi & đổi mới, 10% điểm cộng & điểm trừ đặc biệt.",
|
|
|
520 |
"### MÔ TẢ CÔNG VIỆC:",
|
521 |
f"{jd.strip()}" if jd and jd.strip() else None,
|
|
|
522 |
"### CÁC YẾU TỐ QUAN TRỌNG KHI ĐÁNH GIÁ CV:",
|
523 |
"- **Năng lực chuyên môn:** Kinh nghiệm làm việc với nhà cung cấp, xử lý chứng từ, theo dõi tiến độ mua hàng, làm việc với đơn vị logistics.",
|
524 |
"- **Phù hợp văn hóa A Plus:** Cẩn thận & minh bạch, tư duy linh hoạt & chủ động, phù hợp mô hình cung ứng tinh gọn.",
|
525 |
"- **Khả năng học hỏi & đổi mới:** Chủ động học hỏi, thích ứng với thay đổi, tư duy cải tiến & tối ưu công việc.",
|
526 |
"- **Điểm cộng & điểm trừ:** Các điểm mạnh nổi bật (ngoại ngữ, phân tích dữ liệu, ERP...) và rủi ro tiềm ẩn/điểm yếu lớn.",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
527 |
"### HƯỚNG DẪN ĐÁNH GIÁ:",
|
528 |
"1. Phân tích kỹ CV và so sánh với từng yêu cầu trong JD.",
|
529 |
-
"2. Đối với mỗi tiêu chí, đưa ra điểm số từ
|
530 |
"3. Đưa ra nhận xét khách quan, nêu rõ điểm mạnh và điểm cần cải thiện.",
|
531 |
"4. Xem xét các tiêu chí như **độ nhảy việc, tốc độ thăng tiến, khả năng làm việc với nhiều đối tác**.",
|
532 |
-
"5. Áp dụng
|
533 |
"6. Nếu có thông tin từ form ứng tuyển hoặc nhận xét của nhà tuyển dụng, hãy kết hợp vào phân tích.",
|
534 |
"7. Vui lòng trả về kết quả đánh giá **CHÍNH XÁC theo định dạng JSON**.",
|
|
|
535 |
f"### NỘI DUNG CV CỦA ỨNG VIÊN {name}: {cv_text.strip()}" if cv_text and cv_text.strip() else None,
|
536 |
review_text if review_text.strip() else None,
|
537 |
form_data_text if form_data_text.strip() else None,
|
538 |
additional_info_text if additional_info_text.strip() else None,
|
539 |
]
|
540 |
-
|
541 |
# Filter out None values
|
542 |
prompt = " ".join([component for component in prompt_components if component is not None])
|
543 |
-
|
544 |
try:
|
545 |
response = get_gemini_response(prompt, cv_text)
|
546 |
main_CV_score = round((response["nang_luc_chuyen_mon"]*0.4 + response["phu_hop_van_hoa"]*0.3 + response["kha_nang_hoc_hoi"]*0.2 + response["diem_cong_diem_tru"]*0.1), 2)
|
|
|
517 |
"- Ưu tiên **tiềm năng phát triển hơn kinh nghiệm**, đề cao tinh thần khởi nghiệp.",
|
518 |
"- Không phù hợp với ứng viên **chỉ tìm kiếm sự ổn định hoặc phúc lợi cao ngay từ đầu**.",
|
519 |
"- Tiêu chí đánh giá: 40% năng lực chuyên môn, 30% phù hợp văn hóa, 20% khả năng học hỏi & đổi mới, 10% điểm cộng & điểm trừ đặc biệt.",
|
520 |
+
|
521 |
"### MÔ TẢ CÔNG VIỆC:",
|
522 |
f"{jd.strip()}" if jd and jd.strip() else None,
|
523 |
+
|
524 |
"### CÁC YẾU TỐ QUAN TRỌNG KHI ĐÁNH GIÁ CV:",
|
525 |
"- **Năng lực chuyên môn:** Kinh nghiệm làm việc với nhà cung cấp, xử lý chứng từ, theo dõi tiến độ mua hàng, làm việc với đơn vị logistics.",
|
526 |
"- **Phù hợp văn hóa A Plus:** Cẩn thận & minh bạch, tư duy linh hoạt & chủ động, phù hợp mô hình cung ứng tinh gọn.",
|
527 |
"- **Khả năng học hỏi & đổi mới:** Chủ động học hỏi, thích ứng với thay đổi, tư duy cải tiến & tối ưu công việc.",
|
528 |
"- **Điểm cộng & điểm trừ:** Các điểm mạnh nổi bật (ngoại ngữ, phân tích dữ liệu, ERP...) và rủi ro tiềm ẩn/điểm yếu lớn.",
|
529 |
+
|
530 |
+
"### HƯỚNG DẪN CHẤM ĐIỂM:",
|
531 |
+
"1. **Năng lực chuyên môn (40%)**",
|
532 |
+
" - 5 – Xuất sắc: Đã có kinh nghiệm thực tế, làm việc hiệu quả, chủ động xử lý vấn đề.",
|
533 |
+
" - 3-4 – Có kinh nghiệm: Đã làm trong lĩnh vực liên quan nhưng cần rèn luyện thêm.",
|
534 |
+
" - 1-2 – Chưa có kinh nghiệm: Thiếu kiến thức hoặc chưa từng làm công việc tương tự.",
|
535 |
+
|
536 |
+
"2. **Phù hợp văn hóa (30%)**",
|
537 |
+
" - 5 – Xuất sắc: Tinh thần trách nhiệm cao, linh hoạt, chủ động, phù hợp hoàn toàn với mô hình A Plus.",
|
538 |
+
" - 3-4 – Phù hợp tương đối: Có tinh thần làm việc tốt nhưng cần kiểm chứng thêm.",
|
539 |
+
" - 1-2 – Chưa phù hợp: Thiếu sự chủ động, khó thích nghi với văn hóa công ty.",
|
540 |
+
|
541 |
+
"3. **Khả năng học hỏi & đổi mới (20%)**",
|
542 |
+
" - 5 – Rất tốt: Luôn chủ động học hỏi, tiếp thu nhanh công nghệ và quy trình mới.",
|
543 |
+
" - 3-4 – Ổn: Có khả năng học hỏi nhưng cần thời gian thích nghi.",
|
544 |
+
" - 1-2 – Yếu: Ít chủ động học tập, khó tiếp thu thay đổi.",
|
545 |
+
|
546 |
+
"4. **Điểm cộng & điểm trừ (10%)**",
|
547 |
+
" - Điểm cộng (Thêm điểm nếu có kỹ năng đặc biệt như ngoại ngữ, ERP, phân tích dữ liệu, v.v.).",
|
548 |
+
" - Điểm trừ (Trừ điểm nếu có hạn chế lớn như không linh hoạt, thiếu kinh nghiệm thực tế, v.v.).",
|
549 |
+
|
550 |
"### HƯỚNG DẪN ĐÁNH GIÁ:",
|
551 |
"1. Phân tích kỹ CV và so sánh với từng yêu cầu trong JD.",
|
552 |
+
"2. Đối với mỗi tiêu chí, đưa ra điểm số từ 1-5 dựa trên mức độ phù hợp.",
|
553 |
"3. Đưa ra nhận xét khách quan, nêu rõ điểm mạnh và điểm cần cải thiện.",
|
554 |
"4. Xem xét các tiêu chí như **độ nhảy việc, tốc độ thăng tiến, khả năng làm việc với nhiều đối tác**.",
|
555 |
+
"5. Áp dụng **điểm cộng & điểm trừ** khi phân tích CV.",
|
556 |
"6. Nếu có thông tin từ form ứng tuyển hoặc nhận xét của nhà tuyển dụng, hãy kết hợp vào phân tích.",
|
557 |
"7. Vui lòng trả về kết quả đánh giá **CHÍNH XÁC theo định dạng JSON**.",
|
558 |
+
|
559 |
f"### NỘI DUNG CV CỦA ỨNG VIÊN {name}: {cv_text.strip()}" if cv_text and cv_text.strip() else None,
|
560 |
review_text if review_text.strip() else None,
|
561 |
form_data_text if form_data_text.strip() else None,
|
562 |
additional_info_text if additional_info_text.strip() else None,
|
563 |
]
|
564 |
+
|
565 |
# Filter out None values
|
566 |
prompt = " ".join([component for component in prompt_components if component is not None])
|
567 |
+
|
568 |
try:
|
569 |
response = get_gemini_response(prompt, cv_text)
|
570 |
main_CV_score = round((response["nang_luc_chuyen_mon"]*0.4 + response["phu_hop_van_hoa"]*0.3 + response["kha_nang_hoc_hoi"]*0.2 + response["diem_cong_diem_tru"]*0.1), 2)
|