TopGit
Đánh giá repo GitHub

Hiring Agent: Agent sàng lọc CV bằng AI viết bằng Python

interviewstreet/hiring-agent

Hiring Agent là agent sàng lọc CV bằng AI từ HackerRank, chạy một CV PDF qua pipeline chấm điểm: nó trích xuất dữ liệu có cấu trúc, kéo thêm hoạt động GitHub, rồi trả về điểm theo hạng mục kèm bằng chứng. Bạn chạy được hoàn toàn local với Ollama hoặc dùng Google Gemini, và nó ghi một file CSV các đánh giá khi bật development mode.

HHiring Agent: Agent sàng lọc CV bằng AI viết bằng Python — open-source GitHub repository preview
Nhận định nhanh

Hãy chọn Hiring Agent nếu bạn muốn một cách tự host, giải thích được để biến CV thành điểm có cấu trúc mà bạn kiểm soát — nó chạy local trên Ollama, hiển thị bằng chứng và điểm trừ theo từng hạng mục, và gộp thêm hoạt động GitHub. Bỏ qua, hoặc luôn giữ một con người trong vòng quyết định, nếu bạn coi điểm số là quyết định tuyển dụng: bất kỳ công cụ sàng lọc CV tự động nào cũng có thể hấp thụ thiên kiến từ mô hình và prompt của nó, và đây là một dự án còn non, chưa có hồ sơ công khai về độ chính xác hay tính công bằng.

Sao
★ 0
Fork
⑂ 0
Ngôn ngữ
Giấy phép
Xem trong repo
Chủ đề
Cập nhật
Jul 2026
Trang chủ
GitHub

Vấn đề nó giải quyết

Sàng lọc một chồng CV bằng tay thì chậm và thiếu nhất quán, còn dán từng PDF vào chatbot thì mất cấu trúc và không để lại dấu vết kiểm tra. Hiring Agent ra đời để làm bước đầu tiên đó lặp lại được: nó chuyển một CV PDF thành JSON có cấu trúc, chấm theo tiêu chí cố định, và ghi lại bằng chứng đằng sau mỗi con số để người duyệt thấy vì sao một ứng viên rơi vào vị trí đó.

Đây là gì?

Hiring Agent là agent sàng lọc CV bằng AI mã nguồn mở (giấy phép MIT) viết bằng Python, chạy một CV từ PDF ra điểm. Nó dùng PyMuPDF để chuyển PDF thành văn bản kiểu Markdown, gọi LLM cho từng phần bằng template Jinja để dựng một object JSON Resume, làm giàu bằng tín hiệu hồ sơ và repo GitHub, rồi chạy một evaluator gán điểm theo hạng mục — open_source, self_projects, production và technical_skills — cùng điểm thưởng, điểm trừ và một phần giải thích. Nó hỗ trợ hoặc mô hình Ollama local hoặc Google Gemini.

Vì sao đang được chú ý

Tuyển dụng tự động là chủ đề gây tranh cãi, và một bản mã nguồn mở mà bạn tự đọc và tự chạy được là điều hiếm — phần lớn công cụ sàng lọc CV là SaaS đóng. Cái này đến từ HackerRank, chạy hoàn toàn local nên CV không rời khỏi máy bạn, và đã đạt khoảng 5.500 sao tại thời điểm viết, cho thấy sự quan tâm thực sự tới một lựa chọn minh bạch.

Số sao GitHub của repo này thay đổi thế nào theo thời gian. Nguồn: star-history.com.Xem lịch sử sao

Tính năng chính

  • Trích xuất PDF-sang-JSON: PyMuPDF chuyển CV thành văn bản, rồi LLM điền vào schema JSON Resume theo từng phần (basics, work, education, skills, projects, awards)
  • Làm giàu GitHub: kéo hồ sơ và repo của ứng viên, rồi yêu cầu LLM chọn đúng 7 project vượt ngưỡng commit tối thiểu của tác giả
  • Chấm điểm theo hạng mục trong evaluator.py: open_source, self_projects, production và technical_skills, mỗi cái kèm điểm thưởng và điểm trừ
  • Bằng chứng và giải thích gắn với từng điểm số, không chỉ một con số trơ
  • Chạy local qua Ollama hoặc hosted qua Google Gemini, đổi bằng một biến môi trường (LLM_PROVIDER)
  • Development mode cache JSON trung gian và ghi thêm mỗi lần chạy vào resume_evaluations.csv

Trường hợp dùng tốt nhất

  • Chạy một vòng sàng lọc đầu tiên nhất quán trên một loạt CV cho vị trí kỹ thuật
  • Chấm ứng viên kỹ thuật một phần dựa trên hoạt động GitHub thật thay vì kỹ năng tự khai
  • Tạo một điểm số giải thích được với bằng chứng mà nhà tuyển dụng có thể duyệt và ghi đè
  • Giữ dữ liệu CV tại chỗ bằng cách chạy toàn bộ pipeline trên mô hình Ollama local

Cách cài đặt / dùng thử

Clone kho, tạo một virtualenv Python 3.11+, và `pip install -r requirements.txt`. Sau đó `cp .env.example .env` và đặt `LLM_PROVIDER` thành `ollama` hoặc `gemini`. Để chạy local, cài Ollama, chạy `ollama serve`, và pull một mô hình như `ollama pull gemma3:4b`; với Gemini, đặt `GEMINI_API_KEY`. Một `GITHUB_TOKEN` tùy chọn giúp tăng giới hạn tần suất gọi API GitHub.

Cách sử dụng

Chạy toàn bộ pipeline trên một file: `python score.py /path/to/resume.pdf`. Nó trích xuất PDF, lấy repo GitHub nếu tìm thấy hồ sơ trong CV, in một báo cáo dễ đọc gồm điểm theo hạng mục kèm bằng chứng, và — khi `DEVELOPMENT_MODE=True` trong config.py — cache JSON trung gian dưới `cache/` và ghi thêm một dòng vào `resume_evaluations.csv`. Việc xử lý hàng loạt ngoài chuyện tự lặp CLI thì không được ghi rõ.

Điểm mạnh

  • Tự host trọn vẹn — với Ollama, không dữ liệu CV nào rời khỏi máy bạn
  • Điểm số đi kèm bằng chứng, điểm thưởng và điểm trừ, nên một con số truy được về lý do
  • Không phụ thuộc nhà cung cấp: đổi giữa Ollama local và Google Gemini bằng một biến môi trường
  • Dùng hoạt động GitHub thật làm tín hiệu, không chỉ những gì CV tự khai
  • Giấy phép MIT, mã Python dễ đọc, nên bạn soi và sửa được luật chấm điểm

Hạn chế & rủi ro

  • Chấm điểm CV tự động có thể mã hóa thiên kiến từ LLM bên dưới và các prompt chấm điểm; điểm số nên phục vụ một con người và không bao giờ là quyết định tuyển dụng duy nhất — hãy coi cách gọi 'công bằng' trong README là mục tiêu, không phải bảo đảm
  • Chất lượng đánh giá chỉ tốt ngang mô hình phía sau; một mô hình local nhỏ như gemma3:1b sẽ chấm rất khác Gemini, và không có benchmark công khai nào về độ chính xác hay tính công bằng
  • Nó cần một backend LLM do bạn tự dựng — hoặc một bản Ollama đang chạy với mô hình đã pull, hoặc một khóa API Google Gemini
  • Làm giàu GitHub giả định ứng viên có khai hồ sơ GitHub với repo công khai; ứng viên giỏi mà không có thì không được cộng điểm từ bước này
  • Dự án còn non với CLI hẹp — chạy hàng loạt, một API ổn định, và các hook tích hợp đều không được ghi rõ
Xem trên GitHub

Lựa chọn thay thế

Resume-Matcher — công cụ mã nguồn mở chấm một CV so với một mô tả công việc cụ thể thay vì tiêu chí chungLangChain — tự dựng pipeline đánh giá CV của bạn với toàn quyền kiểm soát prompt và logic chấm điểmDify — dựng một workflow chấm điểm LLM trực quan nếu bạn không muốn tự viết phần điều phối

Ai nên thử — và ai nên bỏ qua

Các đội tuyển dụng kỹ thuật và nhà tuyển dụng muốn một vòng đầu tiên minh bạch, tự host trên CV kỹ thuật và sẵn sàng để một con người ra quyết định cuối cùng. Nó hợp với người thoải mái chạy Python và một LLM local, coi trọng việc thấy bằng chứng đằng sau một điểm số. Nó không hợp nếu bạn muốn một ATS liền mạch dùng ngay, cần một bộ chấm đã được chứng minh không thiên kiến, hoặc định tự động loại ứng viên chỉ dựa trên con số.

Câu hỏi thường gặp

Hiring Agent là gì?

Hiring Agent là agent sàng lọc CV bằng AI mã nguồn mở từ HackerRank, chuyển một CV PDF thành dữ liệu có cấu trúc, làm giàu bằng hoạt động GitHub, và tạo điểm theo hạng mục kèm bằng chứng. Nó chạy trên mô hình Ollama local hoặc Google Gemini.

Chấm điểm CV tự động có công bằng không?

README mô tả phần đánh giá là công bằng và giải thích được, và nó thực sự gắn bằng chứng cùng điểm trừ vào từng điểm số. Nhưng bất kỳ bộ chấm dựa trên LLM nào cũng có thể thừa hưởng thiên kiến từ mô hình, nên đầu ra nên hỗ trợ một người duyệt chứ không thay thế họ.

Tôi có cần khóa API để chạy không?

Không nhất thiết. Bạn có thể chạy hoàn toàn local với Ollama và một mô hình đã pull như gemma3:4b, hoặc đặt GEMINI_API_KEY để dùng Google Gemini. Một GitHub token là tùy chọn và chỉ giúp tăng giới hạn tần suất API.

Nó dùng dữ liệu GitHub như thế nào?

Nó trích một username GitHub từ CV, lấy hồ sơ và repo, và yêu cầu LLM chọn đúng 7 project vượt ngưỡng commit tối thiểu của tác giả, ưu tiên các đóng góp có ý nghĩa, rồi gộp cái đó vào điểm số.

Nguồn & ghi công

Dựa trên kho GitHub chính thức interviewstreet/hiring-agent, bao gồm README và metadata của dự án.

Về TopGit