The Yama subnet is a cutting-edge system dedicated to enhancing the recruitment process by seamlessly generating resumes and assessing their alignment with job descriptions (JDs). The subnet aims to be a one-stop destination for all hiring needs, generating resumes and producing ATS scores for given job descriptions.
-
Validators: Validators generate JDs from the corpus, which is created from data scraped from various job sites and existing datasets. They pass these JDs to the miners and subsequently evaluate the resumes generated by the miners. Validators score the miners' output and determine if the resumes meet the required threshold, responding with a "shortlisted" or "not shortlisted" decision.
-
Miners: Miners receive JDs from validators and generate high-quality resumes that match the job descriptions. They also provide ATS (Applicant Tracking System) scores for these resumes to ensure alignment with the specific requirements of the JDs.
- Data Scraping and Corpus Creation: Yama gathers data from various job sites and existing datasets to create a comprehensive corpus for generating job descriptions and resumes.
- Resume Generation: Miners produce tailored resumes by analyzing the provided JDs, ensuring they fit the job requirements.
- ATS Framework: Yama includes an ATS framework that extracts skills from JDs and performs several analytical tasks:
- Segmentation & Entity Recognition: Identifying and segmenting entities within the JD.
- Normalization: Ensuring consistency in the data.
- Keyword Tagging: Tagging related keywords to enhance matching accuracy.
- Scoring Metric: Providing a scoring mechanism to evaluate resume fit against the JD.
- Data Collection: Scraping data from job sites and utilizing existing datasets to build the corpus.
- Validation: Validators pre-process the data, and generate JDs.
- Mining: Miners generate resumes based on the JDs.
- Feedback Loop: Validators score the miners' responses and provide feedback ("shortlisted" or "not shortlisted") based on a predefined threshold to ensure continuous improvement.
Introducing Yama – the ultimate tool for streamlining the resume creation and evaluation process. Yama offers two powerful features designed to enhance both the job application and hiring experience:
- ATS Checker: Upload resumes and job descriptions to receive a detailed score, ensuring candidates' resumes align perfectly with job requirements.
- Resume Generation: Simply attach a job description and fill in your skills to generate a customized resume tailored specifically for that job.
For Students: Yama provides a streamlined path to create professional resumes that stand out in the competitive job market. For Companies: Yama offers precise tools for evaluating candidate resumes, making the hiring process more efficient and effective. For Recruiters: Yama serves as a comprehensive solution for managing and assessing large volumes of resumes quickly and accurately, helping you find the best candidates with ease.
https://huggingface.co/spaces/samNakamoto/yama-leaderboard
CPU: 8 cores
GPU: False
RAM: 16GB
Storage: 30GB
To get started, clone the repository.
git clone https://github.com/nakamoto-ai/yama.git
environment variable | description | required |
---|---|---|
KEY_NAME |
The name of the key registered as a module | ✅ |
TESTNET |
0 to run on mainnet, 1 to run on testnet (default: 0 ) |
❌ |
NETUID |
The netuid of the subnet | ✅ |
VALIDATOR_INTERVAL |
The time between validator steps (default: 10 ) |
❌ |
These environment variables can be set in two ways: using a .env
file or setting environment variables directly.
Create a .env
file by copying the example environment file .env.example
to your desired path:
cp .env.example <path-to-env-file>
Then insert the values of each into the .env
file.
Set each of the environment variables directly. This can be done by executing an export
statement for each, or appending each export
statement to your .bashrc
file.
Example export statement:
export KEY_NAME=my-wallet
When running the validator make sure to pass --ignore-env-file
so that it accesses these values directly.
Install python requirements:
python -m pip install -r validator_requirements.txt
Install the en_core_web_trf
model:
python -m spacy download en_core_web_trf
Install the en_core_web_md
model:
python -m spacy download en_core_web_md
Install the project in editable mode:
python -m pip install -e .
The validator accepts two different command line arguments relating to the environment.
argument | description | required |
---|---|---|
--env |
The path to your .env file (default: .env ) |
❌ |
--ignore-env-file |
If passed, the validator will not load the .env file |
❌ |
To execute the program with python, run the following:
python src/validator/main.py [--env <env-file-path> | --ignore-env-file]
Alternatively, you can run the program in the background using pm2
:
pm2 start src/validator/main.py --interpreter python --name validator -- [--env <env-file-path> | --ignore-env-file]
Recommended requirements
CPU: 4-core Intel i5 or equivalent AMD processor, 2.5 GHz-3.5 GHz
RAM: 8 GB or more
Storage: 20 GB SSD
GPU: Not required
Network: Broadband internet connection
Note
Requires Python 3.8 or newer
- Clone project
git clone https://github.com/nakamoto-ai/yama
- Create virtual environment
cd yama
python -m venv venv
source venv/bin/activate
- Install dependencies
pip install -r nltk_miner_requirements.txt
Install the project in editable mode:
pip install -e .
- Register the miner
comx module register <name> <your_commune_key> --netuid [NETUID] --ip <your_ip> --port <your_port>
- Create and set environment variables in a .env file
Create a .env
file by copying the example environment file .env.example
:
cp .env.example .env
Then insert your key name values of each into the .env
file.
KEY_NAME=<your_commune_key>
- Run the miner
python src/miner/main.py --miner nltk
(Optional) Run with pm2
sudo apt install jq -y && sudo apt install npm -y && sudo npm install pm2 -g && pm2 update
pm2 start --name yama-nltk "python src/miner/main.py --miner nltk"
Recommended Requirements:
CPU: 6-core Intel i7 or equivalent AMD processor, 3.0 GHz or higher
RAM: 16 GB or more
Storage: 20 GB SSD
GPU: NVIDIA GPU with at least 6 GB VRAM (e.g., GTX 1060 or better)
Network: Broadband internet connection
Note
Requires Python 3.8 or newer and PyTorch
- Clone project
git clone https://github.com/nakamoto-ai/yama
- Create virtual environment
cd yama
python -m venv venv
source venv/bin/activate
- Install dependencies
pip install -r t5_miner_requirements.txt
Install the project in editable mode:
pip install -e .
- Register the miner
comx module register <name> <your_commune_key> --netuid [NETUID] --ip <your_ip> --port <your_port>
- Create and set environment variables in a .env file
Create a .env
file by copying the example environment file .env.example
:
cp .env.example .env
Then insert your key name values of each into the .env
file.
KEY_NAME=<your_commune_key>
- Run the miner
python src/miner/main.py --miner t5
(Optional) Run with pm2
sudo apt install jq -y && sudo apt install npm -y && sudo npm install pm2 -g && pm2 update
pm2 start --name yama-t5 "python src/miner/main.py --miner t5"