Link to medium article: https://medium.com/@nbhatia3/nft-powered-resume-525d71f1b0d7
Inspiration
Fake resumes undermine the integrity of the recruitment process, leading companies to make misguided hiring decisions. They disadvantage genuine candidates by overshadowing their authentic qualifications and can result in financial and reputational losses for businesses that inadvertently hire unqualified individuals. We present an innovative NFT-powered resume verification system to combat falsified professional experiences and educational qualifications. By harnessing the Ethereum blockchain and utilizing NFT-based intelligent contracts, our system facilitates a reliable exchange of information between educational institutions or employers and the end user. Users submit their resumes along with the transaction and token IDs of the NFTs they receive from their respective institutions, embedding these details within the resume's metadata. While these details are currently in plaintext for proof-of-concept purposes, future iterations will employ SHA-2 or similar robust encryption algorithms. These provided details are processed via our Flask server. With the aid of the web3 API (leveraging tools like Ganache CLI or Verb Wire), we can swiftly authenticate the validity of the supplied tokens. Consequently, the higher the authenticity of the resume details, the more favourably the Applicant Tracking Systems (ATS) rank the resume. We will maintain a list of companies/academic institutes that support nft based tokens so that the user is not punished for not providing permits from non-nft compliant institutes. Even though we have incorporated the client-server architecture for the hackathon, we plan to create loadable modules that can be combined with existing ats to avoid fake resumes.
What it does
Users submit their resumes along with the transaction and token IDs of the NFTs they receive from their respective institutions, embedding these details within the resume's metadata. While these details are currently in plaintext for proof-of-concept purposes, future iterations will employ SHA-2 or similar robust encryption algorithms. These provided details are processed via our Flask server. With the aid of the web3 API (leveraging tools like Ganache CLI or Verb Wire), we can swiftly authenticate the validity of the supplied tokens. Consequently, the higher the authenticity of the resume details, the more favourably the Applicant Tracking Systems (ATS) rank the resume. We will maintain a list of companies/academic institutes that support nft based tokens so that the user is not punished for not providing permits from non-nft compliant institutes. Even though we have incorporated the client-server architecture for the hackathon, we plan to create loadable modules that can be combined with existing ats to avoid fake resumes.
How we built it
We used the authentication API from Descope. We used the flask backend and react js for the front end. They were deployed using Gunicorn and apache2 on a self-hosted container with the help of port forwarding and DNS linking using A certificate. We automated the deployment with the help of GitHub Runner on the self-hosted container running a Ubuntu-operating system. SSL and domain were brought from Namecheap and ganache, and the truffle suite was used for testing the blockchain locally. We experimented with the suite of tools provided by mockaroo and tonic.ai for creating fake datasets. Solidity was used for writing smart contracts, and Remix IDE for testing online. We then tried it locally on our container using the ganache and truffle suite. We used the web3 API to check the authenticity of the tokens. Also, we used Exiftool for embedding the metadata.
Challenges we ran into
Using the ethernet tenets was a significant issue even with the availability of the faucets. The ones that we wanted to test required a minimum Ethereum amount. Even though we wanted to explore the verb were api for the transfer of ownership of NFT, we used Ganache and truffle. Learning concepts like solidity(smart contracts), NFTs, and blockchain was challenging since we both are very new to this domain. Hosting and configuring on aws was a significant issue. After attending the expo event, we realized that a lot of tooling benefits us, and we plan to incorporate that into our next hackathon. https://stackoverflow.com/questions/51357947/react-app-on-server-while-refreshing-the-page-shows-404-page: All the SPA have weird rules regarding page refreshing, which cost us a lot of time. Configuring the proxy pass for connecting Apache with Gunicorn was painful. We ran into many dependencies issues which we could have easily avoided using docker. We initially experimented with the llama model for parsing the resume for auto-filling. We tested on one of the author’s(Nayan) laptops since it had a 1660Ti GPU. That experiment failed terribly; we tried out chatbot API on a custom dataset. However, the easiest solution we found online was using the Affinda API. We debated how to embed the nft token inside the resume and decided that embedding it inside the pdf file would have been the most convenient task. Plain text embedding is an issue, but we can always use a standard encryption algorithm. Overall, it was a great learning experience.
Accomplishments that we're proud of
We were brainstorming a real-world use case backed with the power of web3. We are really proud of learning about blockchains, NFT, and different frameworks, figuring out real-world deployment issues, raising PR, and having code review sessions.
What we learned
While developing our NFT-powered resume verification system, we encountered several challenges that expanded our knowledge and skillset. Navigating the intricacies of Ethereum testnets posed significant hurdles, especially given the constraints with available faucets and the minimum Ethereum amounts for specific tests. We initially aimed to explore the verbwire API for NFT ownership transfer but eventually settled on using Ganache and Truffle due to their reliability and ease of use. Concepts like solidity, NFTs, and blockchain were new terrains for us, requiring steep learning curves. Hosting and configurations on AWS presented their challenges, but attending the expo event illuminated various beneficial tooling options that we're eager to integrate into future hackathons. We grappled with peculiar rules around Single Page Applications (SPAs) related to page refreshing, consuming a significant portion of our debugging time. Configuring the proxy pass to connect Apache with Gunicorn wasn't straightforward, and we recognized the potential simplicity Docker could've offered in handling dependencies. Our exploration of resume parsing led us down various paths, from experimenting with the llama model to considering the ChatGPT API on custom datasets. Ultimately, we found success with the Affinda API. Embedding the NFT token within the resume stirred debates within our team, but we concluded that embedding it directly in the PDF was the most streamlined approach. Overall, this project was a profound learning experience, and we're eager to apply our newfound insights to future endeavours.
What's next for NFT-Powered Resume Verification
Testing the framework on test beds by Ethereum. Integrate the verb were api with it. Figuring out a better solution than just embedding the nft tokens inside the file's meta-data. Finding folks that can help scale this idea.
Built With
- apache
- blockchain
- etherium
- flask
- gunicorn
- nft
- react
- remix
- tonic.ai
Log in or sign up for Devpost to join the conversation.