Jobfinity is an AI-powered resume analyzer that helps CS students find more accurate job matches based on their interests and resume content. Our platform uses advanced NLP and machine learning techniques to parse resumes and provide tailored job recommendations.
- Kristian Vazquez: Team Lead / ML Engineer / Full-Stack Dev
- Miguel Garcia: ML Engineer / Full-Stack Dev
- Raidel Almeida: ML / Full-Stack Dev
- Elijah Chin: Backend & Frontend Developer
- Baire Diaz: Backend & Frontend Developer
- Build an ML model that can accurately parse user resumes
- Provide job recommendations based on users' skills, experience, and interests
- Create an intuitive, aesthetically pleasing UI with Streamlit
- Implement advanced NLP techniques for better job matching
- Frontend: Streamlit, HTML, CSS
- Backend: Python
- ML & NLP Libraries:
- pyresparser, pdfminer3
- NLTK, spaCy
- scikit-learn, TensorFlow/PyTorch
- TF-IDF, Word2Vec, GloVe
- Python 3.8+
- Git
-
Clone the repository
git clone https://github.com/Ceaseless04/Jobfinity.git cd Jobfinity -
Create and activate a virtual environment
# For Windows python -m venv venv venv\Scripts\activate # For macOS/Linux python -m venv venv source venv/bin/activate
-
Install dependencies
pip install -r requirements.txt
-
Install spaCy language model
python -m spacy download en_core_web_md
-
Install NLTK data
# Run this in Python import nltk nltk.download('punkt') nltk.download('stopwords') nltk.download('wordnet')
-
Run the application
cd src streamlit run app.py -
Access the application
- Open your browser and go to
http://localhost:8501
- Open your browser and go to
Jobfinity/
├── README.md # Project overview
├── requirements.txt # Dependencies
├── data/ # Sample data for testing
│ ├── sample_resumes/
│ └── sample_job_descriptions/
├── models/ # ML models
│ ├── resume_parser.py
│ ├── job_matcher.py
| └── career_path.py
├── src/ # Source code
│ ├── app.py # Main Streamlit application
│ ├── utils/ # Utility functions
│ └── components/ # Streamlit UI components
├── tests/ # Unit and integration tests
└── test_outputs/ # output of test dataset (PDF Resumes)
-
Pull the latest changes
git pull origin main
-
Create a new branch for your feature
git checkout -b feature/your-feature-name
-
Make your changes and commit them
git add . git commit -m "Add your descriptive commit message"
-
Push your changes
git push origin feature/your-feature-name
-
Create a Pull Request on GitHub
- Navigate to the repository on GitHub
- Click on "Pull Requests" and then "New Pull Request"
- Select your branch and create the PR with a description of your changes
Run tests using pytest:
python3 -m unittest discover -s tests -p "test_*.py" -v- Data Collection - Gather sample resumes and job descriptions
- Repository Setup - Initialize project structure and version control
- Frontend Prototype - Develop initial Streamlit UI
- Model Prototype - Implement basic resume parsing and job matching
- Model Fine-tuning - Improve model accuracy and performance
- Job Recommendation Integration - Connect with job APIs and implement recommendation logic
- We follow a sprint model with weekly standups
- Each team member reports on:
- What they accomplished since the last meeting
- What they plan to work on next
- Any blockers or challenges they're facing
- ML Model Documentation: Check
/docs/ml_models.mdfor details on our ML pipeline - API Documentation: Check
/docs/api.mdfor API endpoint details - UI Components: Check
/docs/ui_components.mdfor UI component documentation
- Follow PEP 8 style guidelines for Python code
- Write meaningful commit messages
- Update documentation alongside code changes
- Add unit tests for new functionality
- Conduct code reviews for all PRs
If you're stuck or have questions:
- Check the project documentation
- Ask in the team Slack channel
- Reach out to the responsible team member based on the component you're working on
- Contact Kristian (Team Lead) for overall project questions
Happy coding! Let's build something amazing together! 🚀