Nếu bạn đã từng tải sơ yếu lý lịch lên một hệ thống quản lý tuyển dụng (ATS) và tự hỏi tại sao không bao giờ có một con người xem qua nó, bạn đã hiểu vấn đề "hộp đen" của việc tuyển dụng bằng AI. Hầu hết các công cụ chấm điểm sơ yếu lý lịch đều che giấu logic của chúng đằng sau các bảng điều khiển SaaS và những email từ chối lịch sự. HackerRank đã chọn một con đường khác. Hiring Agent của họ là mã nguồn mở, nghĩa là bất kỳ ai cũng có thể mổ xẻ nó, truy vết mã nguồn và thấy chính xác cách một LLM biến một tệp PDF và một liên kết GitHub thành một con số. Một nhà phát triển đã làm chính xác điều đó. Những gì họ tìm thấy không phải là một khung tuyển dụng bóng bẩy. Đó là một tấm gương phản chiếu cho chúng ta thấy sự tự động hóa có thể mã hóa các quan điểm cá nhân dễ dàng đến mức nào.

Bên dưới lớp vỏ (Under the Hood)

Quy trình này đơn giản một cách đánh lừa. Sơ yếu lý lịch PDF của ứng viên được chuyển đổi sang Markdown, sau đó được phân tích thành một cấu trúc JSON chặt chẽ với các trường cho lịch sử làm việc, kỹ năng, học vấn và các dự án phụ. Các tập lệnh Python vận chuyển dữ liệu từ giai đoạn này sang giai đoạn tiếp theo, nhưng quá trình "tư duy" thực sự lại diễn ra bên trong một chuỗi các câu lệnh (prompts). Mỗi phần sẽ có một prompt riêng. LLM đọc dữ liệu đã được cấu trúc, áp dụng các quy tắc chấm điểm được viết bằng tiếng Anh thông thường và trả về một mức điểm.

Kiến trúc này rất quan trọng. Công việc nặng nhọc không nằm ở các thuật toán thông minh hay các vòng lặp huấn luyện. Nó nằm ở cách diễn đạt của các prompt. Chỉ cần thay đổi một vài tính từ trong bộ hướng dẫn, cùng một kỹ sư có thể từ một ứng viên tiềm năng trở thành một ứng viên yếu kém. Điều đó khiến công cụ này trở nên mong manh. Nhưng nó cũng khiến công cụ này trở nên trung thực. Hầu hết các nhà cung cấp dịch vụ tuyển dụng AI sẽ không bao giờ cho phép bạn xem các prompt. Bản mẫu của HackerRank đã phơi bày sự thật rằng việc chấm điểm sơ yếu lý lịch luôn nằm ở thang điểm (rubric), chứ không phải ở mã nguồn.

Sự áp đặt của con số 35 phần trăm

Sự thiên vị đáng chú ý nhất ẩn giấu trong thang điểm chấm. Các đóng góp mã nguồn mở chiếm tới 35 phần trăm tổng số điểm. Đó là một trọng số khổng lồ. Để dễ hình dung, toàn bộ lịch sử làm việc, học vấn và bộ kỹ năng của một ứng viên phải cạnh tranh với chỉ một phần nhỏ trong đời sống lập trình ngoại khóa của họ để giành lấy 65 phần trăm còn lại.

Các quy tắc thậm chí còn nghiêm ngặt hơn cả trọng số mà chúng gợi ý. Các kho lưu trữ GitHub cá nhân không được tính. Việc duy trì thư viện riêng của bạn, dù hữu ích đến đâu, cũng chỉ nhận được điểm không. Công cụ này chỉ khen thưởng các đóng góp cho dự án của người khác. Ứng viên phải là một committer trên mã nguồn của người khác để giành được những điểm đó.

Sự ưu tiên đó mang lại trọng số nhân khẩu học thực sự. Các kỹ sư duy trì các công cụ của riêng họ thường làm vậy vì họ đã giải quyết một vấn đề mà không ai khác giải quyết. Họ cũng có thể đang làm những công việc cấm đóng góp bên ngoài, làm việc ở các khu vực có ít cộng đồng mã nguồn mở lớn, hoặc đơn giản là có những nghĩa vụ gia đình khiến việc lập trình không lương sau giờ làm việc là điều không thể. Bằng cách viết prompt theo cách này, công cụ không đo lường khả năng kỹ thuật thuần túy. Nó đo lường sự tham gia vào một nền văn hóa lập trình cụ thể, rồi gọi đó là sự khách quan.

Khi các chỉ dẫn không có tác dụng

Thang điểm cũng cố gắng khen thưởng kinh nghiệm làm việc tại startup. Prompt gợi ý rõ ràng việc trao thêm điểm cho những người sáng lập (founders) và các kỹ sư ở giai đoạn đầu (early-stage engineers). Về lý thuyết, điều đó nghe có vẻ hợp lý. Những người kỳ cựu tại startup thường phải đảm nhận nhiều vai trò và làm việc dưới áp lực cao. Vì vậy, người kiểm thử đã thực hiện một thử nghiệm. Họ lấy một bản sơ yếu lý lịch duy nhất và không thay đổi gì cả ngoại trừ chức danh công việc gần nhất, chạy nó qua agent ba lần với ba nhãn khác nhau: Senior Java Engineer, Founding Engineer, và Co-founder / CTO.

Điểm số hầu như không thay đổi. LLM về cơ bản đã phớt lờ chỉ dẫn đó.

Đây là một trong những phát hiện quan trọng nhất từ toàn bộ cuộc kiểm tra. Nó chứng minh rằng một quy tắc trong prompt chỉ là một lời gợi ý. Các mô hình ngôn ngữ lớn được huấn luyện trên các kho dữ liệu văn bản khổng lồ, vốn chứa đựng những định kiến cứng nhắc của riêng chúng về những gì tạo nên chất lượng. Nếu dữ liệu huấn luyện của mô hình liên kết sự uy tín với các chức danh, tên công ty hoặc từ khóa nhất định thay vì cụm từ "founding engineer", thì chỉ dẫn được viết cẩn thận của bạn có thể đơn giản là bị trôi tuột đi. Prompt bảo mô hình phải quan tâm đến các chức danh startup, nhưng mô hình lại có ý tưởng riêng, và ý tưởng của nó mới là thứ quyết định. Khoảng cách giữa ý định của con người và hành vi của máy móc là điều nguy hiểm khi kết quả đầu ra là một điểm số tuyển dụng.

Những điểm số không mục đích

Ngoài các trọng số chính, thang điểm còn đầy rẫy những quy tắc vi mô cụ thể một cách kỳ lạ, mang lại cảm giác giống như một buổi động não (brainstorming) lúc đêm muộn của ai đó hơn là những quyết định dựa trên dữ liệu.

A LinkedIn profile is worth exactly one point. Not the quality of the profile. Not the number of recommendations or the depth of the work history. Simply having a URL on the resume adds a single point to the total. Meanwhile, being a Google Summer of Code participant is worth five points. And if a candidate has forked repositories on GitHub, the agent ignores any fork with fewer than five forks of its own.

Each of these rules makes a loud value judgment disguised as a quiet coefficient. Why is LinkedIn presence worth a point at all? It signals that a candidate knows how to fill out a social network, not that they can architect a distributed system. Why is GSoC worth five times as much as a LinkedIn link? Perhaps because the prompt author respects the program. That respect is now a hiring policy. And why draw the line at five forks? A tool with ten users might solve a critical niche problem. Under this system, it might as well not exist.

These numbers do not emerge from regression analysis. They were chosen by individuals. One person decided open source participation is more than a third of an engineer’s worth. Another person decided a LinkedIn profile is worth 1 point. When you automate those guesses, you give them the authority of software.

Every Prompt Is a Prejudice

The hardest part of building a resume-scoring agent is not parsing PDFs or calling an API. It is deciding what matters. Every word in a scoring prompt is a value judgment about what makes a good engineer. Should side projects outweigh day jobs? Should public code matter more than private enterprise work? Should a social media profile matter at all? There are no mathematically correct answers to these questions. There are only cultural preferences.

When a recruiting team does this manually, at least the biases are distributed across many reviewers who can disagree, calibrate, and learn. When an LLM does it, the biases of one prompt engineer harden into a repeatable function that runs at scale. The tool does not eliminate subjectivity. It archives it.

Use It as a Mirror, Not a Filter

HackerRank’s Hiring Agent is best understood as a prototype. It feels like a first draft, which is exactly what it is. It offers a fascinating early look at how AI hiring tools are constructed, but it lacks the calibration, testing, and diverse input of a real recruiting organization.

If you are building hiring tech, study it carefully. It shows how quickly arbitrary rules turn into automated gatekeeping. If you are a candidate,remember that these systems are not oracles. They are spreadsheets dressed up in natural language, and they carry the assumptions of whoever wrote the prompts.

Until these tools are tested for bias as rigorously as the engineers they judge, they should inform human conversation, not replace it.