Inspiration
Applying for jobs can be incredibly tiresome. Job seekers often have to upload their resumes to multiple job sites, repeating the same process over and over. Wouldn't it be great if there was a single place where job seekers and recruiters could connect easily and efficiently?
That's where blockchain comes in. Our idea is to mint every resume into an NFT. This way, resumes are stored securely on the blockchain, making them easy for recruiters and company HRs to search through and find the best candidates. This not only streamlines the application process but also ensures that resumes are tamper-proof and accessible from anywhere.
Our goal is to develop a decentralized application that enables individuals to upload their resumes securely and efficiently, eliminating the need for repetitive submissions. Our platform will streamline the process, allowing for the creation of diverse decentralized applications that can generate and review data within a unified smart contract framework. Each resume will be represented as a unique NFT, ensuring authenticity and accessibility across various decentralized applications stored on the blockchain.
What it does
Blockchain
There are two major functions involves with blockchain and smart contract.
- Our platform is designed to gather comprehensive resume information, including the job seeker's name, profile image, and a list of keywords representing the job seeker's skills and experiences, and then mint this data into a unique NFT. This process ensures that each resume is represented as a distinct, tamper-proof digital asset. By leveraging blockchain technology, we provide a secure and efficient way to manage and share professional credentials, offering a streamlined solution for both job seekers and recruiters.
- Our platform utilizes Chainlink Functions to enhance the data richness and utility of each resume. By employing Chainlink’s decentralized oracle network, we can fetch and integrate supplementary information from external sources directly into the resume, beyond what is encapsulated within the NFT.
Generated AI
We utilize advanced AI algorithms to generate a detailed summary of each job seeker's skill set and experiences in the form of a comprehensive list of keywords. This AI-driven process ensures that the most relevant and important aspects of a candidate’s qualifications are captured succinctly. By providing a precise and easily searchable list of keywords, we enhance the visibility of each job seeker's unique capabilities and streamline the recruitment process, allowing recruiters to quickly identify and assess the most suitable candidates for their needs.
How we built it
Front-end
Our frontend development leverages the VueJS framework, renowned for its versatility and efficiency in building user interfaces. To ensure a visually appealing and responsive design, we incorporate TailwindCSS as our primary stylesheet. This combination allows us to create a seamless and intuitive user experience, with VueJS providing the robust structure for dynamic interactions and TailwindCSS offering a highly customizable and efficient approach to styling.
Back-end
Our backend infrastructure is built using ExpressJS, a powerful web application framework for Node.js. This enables us to develop a robust and scalable server-side environment, ensuring efficient handling of client requests and seamless integration with various services. For our database management system, we have chosen PostgreSQL, an advanced open-source relational database known for its reliability and comprehensive feature set. Although our database primarily stores users' resumes.
Generated AI
We have selected GPT4All as our local GPT model to analyze resumes and extract summaries. We utilize Python for resume analysis and store the extracted summaries in a backend database.
Blockchain
We utilized ethers.js to facilitate the integration between Web 2.0 and Web 3.0 technologies, allowing for smooth interaction between traditional web applications and decentralized blockchain functionalities. All blockchain programming are located in the front-end.
Challenges we ran into
- Resource Intensive Local Models: Local GPT models for resume analysis typically require substantial resources, ranging from 2GB to 8GB of disk storage and 4GB to 16GB of RAM. These requirements make caching in users' browsers impractical. Additionally, generating a summary on a standard laptop often exceeds 20 seconds on a GPU or 120 seconds on a CPU. To address this, we deploy the model on the server side, running the analysis as a daemon process and storing the results in a database.
- Deployment Issues: The Node.js API for GPT4All is not consistently deployed across different operating systems, such as macOS. In contrast, the Python library is more straightforward to deploy, requiring fewer environment configurations.
- Prompt Length: Extensive prompts can lead to the model overlooking crucial keywords necessary for generating accurate responses. To mitigate this, we employ markdown formatting to highlight key terms, ensuring the model maintains focus on important descriptions.
- Debuging Solidity smart contract: Given our limited experience with developing Solidity smart contracts, identifying and resolving issues has been particularly challenging.
- Chainlink Functions: Our initial design leveraged Chainlink Functions to handle the substantial task of loading the entire resume data into the decentralized application. However, we encountered a significant limitation due to the 256-byte data cap.
Accomplishments that we're proud of
As the team leader of this project, I am most proud of my teammates. All of my teammates are students of the school I work for, University of Colorado Colorado Springs. Though all of them are in computer science major, neither of them has any past experiences in modern day web development, AI programming, nor knowledge about Blockchain. Our initial git commit was on May 4, 2024 and today, June 1, we have a working demo.
Zhenyu Li, one of our team member wrote, "I successfully developed the front-end homepage, learned how to use Vue.js, and styled the user interface with Tailwind CSS." While such tasks may appear routine for seasoned web developers, Zhenyu's accomplishment is truly commendable, considering his initial unfamiliarity with these technologies.
Both Juanxian and Zhenqi works on generated AI when they have barely touched any ML/Deep Learning Algorithms at the beginning. They worked on several different approaches and proudly present the current method, which cut down the process time within 20 seconds on a GPU system.
I am pleased that this hackathon event has served to cultivate newfound interests among newcomers in the realms of Web 3.0 and blockchain technology.
I, myself, am more proud of the whole project.
What we learned
At the onset of the Hackathon, our team possessed minimal knowledge regarding oracles, smart contract development, and data interaction within blockchain networks. Some members were unfamiliar even with basic concepts such as using faucets to acquire simulated cryptocurrencies.
However, through dedicated effort and focused tasks, we have gained a comprehensive understanding of the Chainlink ecosystem. Each team member has successfully acquired new skills tailored to their specific roles and responsibilities, contributing to our collective growth and expertise.
What's next for Resume360 Global Profiler
There are numerous opportunities for enhancing the project.
Our initial design aimed to utilize Chainlink Functions to query the entire resume data from a third-party Web 2.0 application. However, this approach proved infeasible due to the data size limitations of Chainlink Functions. A potential solution involves using Chainlink Functions to transmit an authentication token between web applications, leveraging Chainlink's capability to interact with off-chain data and APIs. This would add an extra layer of security through blockchain-based verification for token generation and validation.
Currently, we are utilizing a third-party AI tool to support our large language model (LLM) functionality. In the future, we could develop our own model to better tailor the process to our specific needs, enhancing customization and control over the AI-driven features.
Built With
- chainlink
- ethers.js
- express.js
- javascript
- nft
- pinata
- postgresql
- python
- tailwindcss
- vuejs
Log in or sign up for Devpost to join the conversation.