{"id":26307646,"url":"https://github.com/hossein-sa/smart-job-recommendation","last_synced_at":"2025-06-14T07:37:10.334Z","repository":{"id":278170037,"uuid":"929031989","full_name":"hossein-sa/smart-job-recommendation","owner":"hossein-sa","description":"Smart Job Recommendation System that leverages machine learning to recommend job opportunities based on user profiles and preferences.","archived":false,"fork":false,"pushed_at":"2025-02-18T10:36:54.000Z","size":28,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-18T11:34:10.731Z","etag":null,"topics":["artificial-intelligence","career-advice","data-science","job-matching","job-recommendation","machine-learning","python","recommendation-system"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hossein-sa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-07T17:22:56.000Z","updated_at":"2025-02-18T10:42:03.000Z","dependencies_parsed_at":"2025-02-18T11:44:18.877Z","dependency_job_id":null,"html_url":"https://github.com/hossein-sa/smart-job-recommendation","commit_stats":null,"previous_names":["hossein-sa/smart-job-recommendation"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hossein-sa%2Fsmart-job-recommendation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hossein-sa%2Fsmart-job-recommendation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hossein-sa%2Fsmart-job-recommendation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hossein-sa%2Fsmart-job-recommendation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hossein-sa","download_url":"https://codeload.github.com/hossein-sa/smart-job-recommendation/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243713369,"owners_count":20335567,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["artificial-intelligence","career-advice","data-science","job-matching","job-recommendation","machine-learning","python","recommendation-system"],"created_at":"2025-03-15T10:15:35.187Z","updated_at":"2025-03-15T10:15:35.663Z","avatar_url":"https://github.com/hossein-sa.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Smart Job Recommendation System\n\nA Django \u0026 Machine Learning-powered job recommendation system where recruiters can post jobs and job seekers can apply for them. The system provides personalized job recommendations using TF-IDF \u0026 Cosine Similarity.\n\n---\n\n## Features\n- User Authentication (Register/Login with JWT)\n- Job Listings (Recruiters can post, update, delete jobs)\n- Job Applications (Job Seekers can apply for jobs)\n- Smart Job Recommendations (ML-based matching using TF-IDF \u0026 Cosine Similarity)\n- Email Notifications (Recruiters get alerts when a job seeker applies)\n- REST API with DRF (Test via Postman)\n- Secure \u0026 Optimized (Rate limiting, pagination, optimized queries)\n\n---\n\n## Technologies Used\n- Django, Django REST Framework (DRF)\n- PostgreSQL\n- Scikit-Learn, NLTK\n- JWT Authentication (Simple JWT)\n- SMTP Email (Gmail, SendGrid)\n- Environment Variables (`python-dotenv`)\n- Rate Limiting \u0026 Pagination (DRF)\n\n---\n\n## Installation \u0026 Setup\n\n### 1. Clone the Repository\n```sh\ngit clone https://github.com/hossein-sa/smart-job-recommendation.git\ncd smart-job-recommendation\n```\n\n### 2. Create a Virtual Environment\n```sh\npython -m venv venv\nsource venv/bin/activate  # On Windows: venv\\Scripts\\activate\n```\n\n### 3. Install Dependencies\n```sh\npip install -r requirements.txt\n```\n\n### 4. Setup PostgreSQL Database\n- Create a database named `job_recommendation`\n- Update `.env` file with your database credentials:\n```\nDB_NAME=job_recommendation\nDB_USER=your_db_user\nDB_PASSWORD=your_db_password\nDB_HOST=localhost\nDB_PORT=5432\n```\n\n### 5. Apply Migrations\n```sh\npython manage.py makemigrations users jobs applications\npython manage.py migrate\n```\n\n### 6. Create a Superuser\n```sh\npython manage.py createsuperuser\n```\nFollow the prompts to set up an admin user.\n\n### 7. Run the Development Server\n```sh\npython manage.py runserver\n```\nThe API is now running at: `http://127.0.0.1:8000/`\n\n---\n\n## API Endpoints\n\n### Authentication\n| Method | Endpoint              | Description             |\n|--------|-----------------------|-------------------------|\n| POST   | `/api/auth/register/` | Register a new user     |\n| POST   | `/api/auth/login/`    | Log in and get JWT token |\n| GET    | `/api/auth/profile/`  | Get user profile       |\n\n### Job Listings\n| Method | Endpoint          | Description                   |\n|--------|-------------------|-------------------------------|\n| GET    | `/api/jobs/`      | Get all jobs (paginated)      |\n| POST   | `/api/jobs/`      | Create a new job (Recruiter)  |\n| GET    | `/api/jobs/{id}/` | Get details of a job          |\n| PUT    | `/api/jobs/{id}/` | Update a job (Recruiter Only) |\n| DELETE | `/api/jobs/{id}/` | Delete a job (Recruiter Only) |\n\n### Job Applications\n| Method | Endpoint                  | Description                      |\n|--------|---------------------------|----------------------------------|\n| POST   | `/api/jobs/{id}/apply/`    | Apply for a job (Job Seeker)     |\n| GET    | `/api/jobs/{id}/applications/` | Get all applications (Recruiter Only) |\n\n### Job Recommendations\n| Method | Endpoint                     | Description                         |\n|--------|------------------------------|-------------------------------------|\n| GET    | `/api/jobs/recommendations/` | Get recommended jobs (Job Seeker)  |\n\nUse JWT Token for Authenticated Requests  \nExample (Postman):\n```sh\nAuthorization: Bearer your-access-token\n```\n\n---\n\n## Email Notifications\n- Recruiters receive an email when a job seeker applies.\n- Job Seekers receive a weekly job alert with new job postings.\n\n### Manually Send Job Alerts\n```sh\npython manage.py send_job_alerts\n```\n\n---\n\n## Environment Variables\nCreate a `.env` file in the project root:\n```\nSECRET_KEY=your-secret-key\nDEBUG=True\nALLOWED_HOSTS=127.0.0.1,localhost\nDB_NAME=job_recommendation\nDB_USER=postgres\nDB_PASSWORD=your-password\nDB_HOST=localhost\nDB_PORT=5432\nEMAIL_BACKEND=django.core.mail.backends.smtp.EmailBackend\nEMAIL_HOST=smtp.gmail.com\nEMAIL_PORT=587\nEMAIL_USE_TLS=True\nEMAIL_HOST_USER=gmail-address\nEMAIL_HOST_PASSWORD=your-app-password\n```\nMake sure to keep `.env` secure and add it to `.gitignore`.\n\n---\n\n## Project Structure\n```\njob-recommendation-system/\n│── users/               # User Authentication \u0026 Profiles\n│── jobs/                # Job Listings \u0026 Recommendations\n│── applications/        # Job Applications\n│── templates/           # Email Templates (if needed)\n│── static/              # Static Files\n│── manage.py            # Django CLI\n│── requirements.txt     # Dependencies\n│── .env                 # Environment Variables (Not Pushed to GitHub)\n│── README.md            # Project Documentation\n```\n\n---\n\n## Contributing\nContributions are welcome! Follow these steps:  \n1. Fork the repository  \n2. Create a new branch (`git checkout -b feature-name`)  \n3. Commit your changes (`git commit -m \"Added new feature\"`)  \n4. Push to your fork (`git push origin feature-name`)  \n5. Submit a Pull Request  \n\n---\n\n## License\nThis project is licensed under the **MIT License**.\n\n---\n\n## Contact\nEmail: sadeghi.ho@hotmail.com  \nGitHub: [Hossein Sadeghi](https://github.com/hossein-sa)  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhossein-sa%2Fsmart-job-recommendation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhossein-sa%2Fsmart-job-recommendation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhossein-sa%2Fsmart-job-recommendation/lists"}