जर तुम्ही कधीही 'अॅप्लिकंट ट्रॅकिंग सिस्टम'मध्ये (applicant tracking system) तुमचा रिझ्युमे अपलोड केला असेल आणि तो एखाद्या माणसाने का पाहिला नाही असा प्रश्न तुम्हाला पडला असेल, तर तुम्हाला AI भरतीमधील 'ब्लॅक-बॉक्स' (black-box) समस्येची कल्पना आधीच आहे. बहुतेक रिझ्युमे-स्कोअरिंग टूल्स त्यांचे लॉजिक SaaS डॅशबोर्ड आणि सभ्य नकार देणाऱ्या ईमेलच्या मागे लपवून ठेवतात. HackerRank ने वेगळा मार्ग अवलंबला आहे. त्यांचे Hiring Agent हे ओपन सोर्स आहे, ज्याचा अर्थ असा की कोणीही ते उघडून, कोडचा मागोवा घेऊन, एक LLM एखाद्या PDF आणि GitHub लिंकचे रूपांतर नेमके कसे एका नंबरमध्ये करते, हे पाहू शकते. एका डेव्हलपरने नेमके तेच केले. त्यांना जे आढळले ते कोणतेही पॉलिश केलेले रिक्रूटिंग फ्रेमवर्क नव्हते. ते एक आरसा आहे जो आपल्याला दाखवतो की ऑटोमेशन कशा प्रकारे सहजपणे वैयक्तिक मते कोडच्या स्वरूपात मांडू शकते.
पडद्यामागे
ही प्रक्रिया दिसायला अत्यंत साधी आहे. उमेदवाराचा PDF रिझ्युमे Markdown मध्ये रूपांतरित केला जातो, त्यानंतर कामाचा इतिहास, कौशल्ये, शिक्षण आणि साईड प्रोजेक्ट्स यांसारख्या फील्ड्ससह एका कडक JSON स्ट्रक्चरमध्ये त्याचे विश्लेषण (parse) केले जाते. Python स्क्रिप्ट्स डेटा एका टप्प्याकडून दुसऱ्या टप्प्याकडे नेतात, परंतु प्रत्यक्ष विचार करण्याची प्रक्रिया 'प्रॉम्प्ट्सच्या' (prompts) साखळीमध्ये घडते. प्रत्येक विभागासाठी स्वतंत्र प्रॉम्प्ट असतो. LLM हे स्ट्रक्चर्ड डेटा वाचते, साध्या इंग्रजीमध्ये लिहिलेले स्कोअरिंग नियम लागू करते आणि ग्रेड देते.
ही आर्किटेक्चर महत्त्वाची आहे. मुख्य काम हुशार अल्गोरिदम किंवा ट्रेनिंग लूप्समध्ये होत नाही, तर ते प्रॉम्प्ट्सच्या शब्दरचनेत घडते. सूचना संचामधील (instruction set) काही विशेषणे बदलली, तरी तोच इंजिनिअर एका 'स्ट्रॉन्ग हायर' कडून 'कमकुवत उमेदवार' बनू शकतो. यामुळे हे टूल नाजूक बनते, पण ते प्रामाणिक देखील ठरते. बहुतेक AI हायरिंग वेंडर्स तुम्हाला कधीही प्रॉम्प्ट्स पाहू देणार नाहीत. HackerRank चा प्रोटोटाइप हे सत्य उघड करतो की रिझ्युमे स्कोअरिंग हे नेहमीच 'रुब्रिक'वर (rubric) अवलंबून असते, कोडवर नाही.
३५ टक्क्यांची जुलूमशाही
सर्वात धक्कादायक पूर्वग्रह स्कोअरिंग रुब्रिकमध्ये दडलेला आहे. एकूण स्कोअरमध्ये ओपन सोर्स योगदानाचे (open source contributions) प्रमाण ३५ टक्के आहे. हे प्रमाण खूप मोठे आहे. हे समजून घेण्यासाठी, उमेदवाराचा संपूर्ण कामाचा इतिहास, शिक्षण आणि कौशल्ये यांना उर्वरित ६५ टक्क्यांसाठी त्यांच्या कोडिंगमधील इतर उपक्रमांच्या एका भागाशी स्पर्धा करावी लागते.
नियम वजनापेक्षाही (weighting) अधिक कडक आहेत. वैयक्तिक GitHub रिपॉझिटरीज मोजल्या जात नाहीत. तुमचे स्वतःचे लायब्ररी कितीही उपयुक्त असली तरी त्याला शून्य गुण मिळतात. हे टूल केवळ इतरांच्या प्रोजेक्ट्समधील योगदानासाठी रिवॉर्ड देते. ते गुण मिळवण्यासाठी उमेदवाराला दुसऱ्याच्या कोडबेसवर 'कमिटर' (committer) असणे आवश्यक आहे.
या पसंतीमुळे लोकसंख्याशास्त्रीय (demographic) परिणाम दिसून येतात. जे इंजिनिअर्स स्वतःची टूल्स मेंटेन करतात, ते अनेकदा तसे करतात कारण त्यांनी अशी समस्या सोडवली असते जी कोणीही सोडवत नव्हते. कदाचित त्यांची नोकरी बाह्य योगदानावर बंदी घालणारी असू शकते, ते अशा प्रदेशात काम करत असू शकतात जिथे मोठ्या ओपन-सोर्स कम्युनिटी कमी आहेत, किंवा त्यांच्यावर कौटुंबिक जबाबदाऱ्या असू शकतात ज्यामुळे कामाच्या वेळेनंतर विनामोबदला कोडिंग करणे अशक्य असते. प्रॉम्प्ट अशा प्रकारे लिहिल्यामुळे, हे टूल प्रत्यक्ष इंजिनिअरिंग क्षमता मोजत नाही. ते एका विशिष्ट कोडिंग संस्कृतीतील सहभाग मोजते आणि त्याला 'वस्तुनिष्ठता' (objectivity) म्हणते.
जेव्हा सूचना लागू होत नाहीत
रुब्रिक स्टार्टअप अनुभवाचे कौतुक करण्याचाही प्रयत्न करते. प्रॉम्प्टमध्ये संस्थापकांना (founders) आणि सुरुवातीच्या टप्प्यातील इंजिनिअर्सना अतिरिक्त गुण देण्याचे स्पष्टपणे सुचवले आहे. सिद्धांतानुसार हे रास्त वाटते. स्टार्टअपमधील अनुभवी लोक अनेक भूमिका पार पाडतात आणि दबावाखाली काम करतात. म्हणून टेस्टरने एक प्रयोग केला. त्यांनी एकच रिझ्युमे घेतला आणि अलीकडील जॉब टायटलशिवाय इतर काहीही बदलले नाही, आणि तो एजंटद्वारे तीन वेगवेगळ्या लेबल्ससह तीन वेळा चालवला: Senior Java Engineer, Founding Engineer, आणि Co-founder / CTO.
स्कोअरमध्ये फारसा बदल झाला नाही. LLM ने प्रामुख्याने त्या सूचनेकडे दुर्लक्ष केले.
संपूर्ण ऑडिटमधील हे सर्वात महत्त्वाच्या निष्कर्षांपैकी एक आहे. हे सिद्ध करते की प्रॉम्प्ट नियम हा केवळ एक सल्ला असतो. लार्ज लँग्वेज मॉडेल्सना (LLMs) मजकुराच्या प्रचंड साठ्यावर प्रशिक्षित केले जाते, ज्यामध्ये 'गुणवत्ता' म्हणजे काय, याबद्दल त्यांचे स्वतःचे ठाम पूर्वग्रह असतात. जर मॉडेलच्या ट्रेनिंग डेटामध्ये "founding engineer" या शब्दाऐवजी विशिष्ट पदवी, कंपनीची नावे किंवा कीवर्ड्सना प्रतिष्ठा जोडली असेल, तर तुमची काळजीपूर्वक लिहिलेली सूचना कदाचित लागूच होणार नाही. प्रॉम्प्ट मॉडेलला स्टार्टअप टायटल्सकडे लक्ष देण्यास सांगतो, परंतु मॉडेलचे स्वतःचे विचार असतात आणि तेच प्रभावी ठरतात. जेव्हा आउटपुट हे हायरिंग स्कोअर असते, तेव्हा मानवी हेतू आणि मशीनचे वर्तन यातील ही दरी धोकादायक असते.
उद्देशहीन गुण
मुख्य वेटिंगच्या पलीकडे, हे रुब्रिक विचित्रपणे विशिष्ट सूक्ष्म नियमांनी (micro-rules) भरलेले आहे, जे डेटा-आधारित निर्णयांपेक्षा कोणाचे तरी रात्रीचे 'ब्रेनस्टॉर्मिंग सेशन' (brainstorming session) असल्यासारखे वाटते.
एका LinkedIn प्रोफाइलचे मूल्य नेमके एक गुण आहे. प्रोफाइलची गुणवत्ता नाही. शिफारसींची संख्या किंवा कामाच्या अनुभवाचा सखोलपणा नाही. केवळ रेझ्युमेवर URL असणे एकूण गुणांमध्ये एक गुण मिळवून देते. दरम्यान, Google Summer of Code चा सहभागी असणे पाच गुणांच्या बरोबरीचे आहे. आणि जर एखाद्या उमेदवाराने GitHub वर रिपॉझिटरीज fork केल्या असतील, तर एजंट अशा कोणत्याही fork कडे दुर्लक्ष करतो ज्याचे स्वतःचे पाचपेक्षा कमी forks आहेत.
यातील प्रत्येक नियम एका शांत सहगुणकाच्या (coefficient) रूपात लपलेला एक मोठा मूल्यनिर्णय आहे. LinkedIn वर उपस्थिती असण्याचे मूल्य एक गुण का आहेच? हे केवळ हे सूचित करते की उमेदवाराला सोशल नेटवर्क कसे भरायचे हे माहित आहे, एखादी distributed system कशी तयार करायची हे नाही. GSoC चे मूल्य LinkedIn लिंकपेक्षा पाचपट का आहे? कदाचित कारण प्रॉम्प्ट लेखकाला त्या प्रोग्रामबद्दल आदर आहे. तो आदर आता एक भरती धोरण बनला आहे. आणि पाच forks वर मर्यादा का? दहा वापरकर्ते असलेले साधन एखादी महत्त्वाची niche समस्या सोडवू शकते. या प्रणालीमध्ये, ते अस्तित्वात नसलेलेच बरे.
हे आकडे regression analysis मधून आलेले नाहीत. ते व्यक्तींद्वारे निवडले गेले आहेत. एका व्यक्तीने ठरवले की open source मधील सहभाग हा इंजिनिअरच्या मूल्याच्या एक तृतीयांशपेक्षा जास्त आहे. दुसऱ्या व्यक्तीने ठरवले की LinkedIn प्रोफाइलचे मूल्य १ गुण आहे. जेव्हा तुम्ही या अंदाजांचे ऑटोमेशन करता, तेव्हा तुम्ही त्यांना सॉफ्टवेअरचे अधिकार देता.
प्रत्येक प्रॉम्प्ट हा एक पूर्वग्रह आहे
रेझ्युमे-स्कोअरिंग एजंट तयार करण्याचा सर्वात कठीण भाग PDF पार्स करणे किंवा API कॉल करणे हा नाही. तर काय महत्त्वाचे आहे हे ठरवणे हा आहे. स्कोअरिंग प्रॉम्प्टमधील प्रत्येक शब्द एक चांगला इंजिनिअर कशाला म्हणावे, याबद्दलचा एक मूल्यनिर्णय आहे. साईड प्रोजेक्ट्सना मुख्य नोकरीपेक्षा जास्त महत्त्व दिले पाहिजे का? खाजगी एंटरप्राइझ कामापेक्षा पब्लिक कोडला जास्त महत्त्व दिले पाहिजे का? सोशल मीडिया प्रोफाइलचे काही महत्त्व असावे का? या प्रश्नांची गणितीयदृष्ट्या अचूक उत्तरे नाहीत. तिथे फक्त सांस्कृतिक पसंती आहेत.
जेव्हा एखादी भरती टीम हे मॅन्युअली करते, तेव्हा किमान पूर्वग्रह अनेक पुनर्विलोककांमध्ये विभागलेले असतात जे असहमत होऊ शकतात, कॅलिब्रेट करू शकतात आणि शिकू शकतात. जेव्हा एखादे LLM हे करते, तेव्हा एका प्रॉम्प्ट इंजिनिअरचे पूर्वग्रह एका पुनरावृत्ती करण्यायोग्य फंक्शनमध्ये रूपांतरित होतात जे मोठ्या प्रमाणावर चालते. हे साधन व्यक्तिनिष्ठता (subjectivity) काढून टाकत नाही. ते तिला संग्रहित करते.
याचा वापर आरशासारखा करा, फिल्टरसारखा नाही
HackerRank चा Hiring Agent हा एक प्रोटोटाइप म्हणून समजून घेणे सर्वोत्तम आहे. ते पहिल्या मसुद्यासारखे (first draft) वाटते, आणि ते नेमके तसेच आहे. AI भरती साधने कशी तयार केली जातात याची ते एक रंजक प्राथमिक झलक देते, परंतु त्यात वास्तविक भरती संस्थेचे कॅलिब्रेशन, टेस्टिंग आणि वैविध्यपूर्ण इनपुटचा अभाव आहे.
जर तुम्ही hiring tech तयार करत असाल, तर त्याचा काळजीपूर्वक अभ्यास करा. मनमानी नियम किती वेगाने automated gatekeeping मध्ये रूपांतरित होतात, हे ते दर्शवते. जर तुम्ही उमेदवार असाल, तर लक्षात ठेवा की ही प्रणाली oracles नाहीत. ते नैसर्गिक भाषेत सजवलेले स्प्रेडशीट्स आहेत आणि ते प्रॉम्प्ट लिहिणाऱ्या व्यक्तीचे गृहितके सोबत घेऊन चालतात.
जोपर्यंत या साधनांची पूर्वग्रहासाठी त्या इंजिनिअर्सइतकीच कठोरपणे चाचणी केली जात नाही ज्यांचे ते मूल्यमापन करतात, तोपर्यंत त्यांनी मानवी संवादाला माहिती दिली पाहिजे, त्याची जागा घेतली नाही पाहिजे.
