SemanticHire is an application designed to enhance the job search experience. This app enables users to search for jobs by filters like entry-level, mid-level, or exclude jobs requiring security clearance, making job hunting intuitive and tailored to individual preferences.
Try at https://semantichire-frontend.onrender.com/
- 🔍 Semantic Search: Fetches jobs based on a more natural and flexible search query using Elasticsearch.
- 🗂️ Job Filtering: Search for jobs by level (entry-level, mid-level) and exclude specific types (e.g., requiring security clearance).
- ⚡ Fast and Reliable: Backend powered by Elasticsearch for fast and efficient job search.
- 🎨 User-Friendly Interface: Modern UI for seamless job browsing.
- Python (v3.8+)
- Elasticsearch account credentials
- Elastic Cloud ID and API Key
- React and Material-UI
- Google Cloud Vertext AI API Key and model used is text_embedding_005
-
Clone the repository:
git clone https://github.com/tarunsunny3/semantic-job-search.git cd semantic-job-search/backend
-
Install Python dependencies: Make sure you have
pip
installed.pip install -r requirements.txt
-
Configure Environment Variables: Create a
.env
file in thebackend
folder and add the following keys:ELASTIC_CLOUD_ID=your_elastic_cloud_id ELASTIC_API_KEY=your_elastic_api_key
Replace
your_elastic_cloud_id
andyour_elastic_api_key
with your actual Elasticsearch credentials. -
Run the backend server:
python app.py
The backend will be available at
http://localhost:5001
.
-
Navigate to the frontend folder:
cd ../frontend
-
Install Node.js dependencies:
npm install
-
Run the frontend app:
npm start
The frontend will be available at
http://localhost:3000
.
- Open the frontend URL
http://localhost:3000
in your browser. - Use the search bar to input job queries. Toggle semantic search to switch between flexible search and traditional search.
- Filter jobs based on your preferences like job levels and exclude jobs with certain criteria (e.g., requiring security clearance).
semantic-job-search/
├── backend/
│ ├── app.py # Flask server entry point
│ ├── elastic_client.py # Elasticsearch singleton client
│ ├── requirements.txt # Python dependencies
│ └── .env # Environment variables (not included in repo)
├── frontend/
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── App.tsx # Main frontend app
│ │ ├── api/ # API integration for backend
│ ├── package.json # Node.js dependencies
│ └── public/ # Static files
└── README.md
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch for your feature:
git checkout -b feature-name
. - Commit your changes:
git commit -m "Add feature"
. - Push to the branch:
git push origin feature-name
. - Create a pull request.
This project is licensed under the MIT License.
For questions, feel free to reach out via the repository Issues page.
🌟 Happy Job Hunting! 🌟