{"id":29273698,"url":"https://github.com/codelander07/multi-agentic-recruitment-system","last_synced_at":"2025-07-05T02:36:35.735Z","repository":{"id":287518521,"uuid":"964757026","full_name":"CodeLander07/Multi-Agentic-Recruitment-System","owner":"CodeLander07","description":"An AI-powered recruitment system that automates the process of job description analysis, CV matching, and interview scheduling.","archived":false,"fork":false,"pushed_at":"2025-04-12T07:20:01.000Z","size":19,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-08T12:19:50.661Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CodeLander07.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2025-04-11T18:27:20.000Z","updated_at":"2025-04-12T07:20:04.000Z","dependencies_parsed_at":"2025-04-12T08:29:14.497Z","dependency_job_id":"28bdc327-47f3-4a32-ba17-a87750ea35c6","html_url":"https://github.com/CodeLander07/Multi-Agentic-Recruitment-System","commit_stats":null,"previous_names":["unstopablesid/multi-agentic-recruitment-system","codelander07/multi-agentic-recruitment-system"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/CodeLander07/Multi-Agentic-Recruitment-System","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeLander07%2FMulti-Agentic-Recruitment-System","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeLander07%2FMulti-Agentic-Recruitment-System/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeLander07%2FMulti-Agentic-Recruitment-System/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeLander07%2FMulti-Agentic-Recruitment-System/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CodeLander07","download_url":"https://codeload.github.com/CodeLander07/Multi-Agentic-Recruitment-System/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodeLander07%2FMulti-Agentic-Recruitment-System/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263671880,"owners_count":23494057,"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":[],"created_at":"2025-07-05T02:36:35.063Z","updated_at":"2025-07-05T02:36:35.721Z","avatar_url":"https://github.com/CodeLander07.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Multi-Agentic Recruitment System\n\nAn AI-powered recruitment system that automates the process of job description analysis, CV matching, and interview scheduling.\n\n## Features\n\n- Job Description Summarizer: Analyzes and extracts key requirements from job descriptions\n- Recruiting Agent: Matches candidate CVs with job requirements\n- Shortlisting System: Automatically shortlists candidates based on match scores\n- Interview Scheduler: Manages interview scheduling and communication\n\n## Prerequisites\n\nBefore you begin, ensure you have the following installed:\n- Python 3.8 or higher\n- Git\n- Ollama (for running LLMs locally)\n\n## Installation Steps\n\n1. **Clone the repository**\n```bash\ngit clone \u003crepository-url\u003e\ncd multiagentic-interview-system\n```\n\n2. **Create and activate a virtual environment**\n```bash\n# On Windows\npython -m venv venv\n.\\venv\\Scripts\\activate\n\n# On macOS/Linux\npython3 -m venv venv\nsource venv/bin/activate\n```\n\n3. **Install Python dependencies**\n```bash\npip install -r requirements.txt\n```\n\n4. **Set up Ollama**\n```bash\n# Install Ollama from https://ollama.ai/\n# After installation, pull the required models:\nollama pull llama2\nollama pull nomic-embed-text\n```\n\n5. **Initialize the database**\n```bash\n# The database will be automatically created when you first run the application\n# It will be created as recruitment.db in your project directory\n```\n\n## Running the Application\n\n1. **Start the Ollama server**\n```bash\n# Open a new terminal window and run:\nollama serve\n```\n\n2. **Start the FastAPI application**\n```bash\n# In your project directory, with the virtual environment activated:\nuvicorn app.main:app --reload\n```\n\n3. **Access the API**\n- The API will be available at: http://localhost:8000\n- API documentation (Swagger UI) will be available at: http://localhost:8000/docs\n- Alternative API documentation (ReDoc) will be available at: http://localhost:8000/redoc\n\n## Testing the System\n\n1. **Create a job posting**\n```bash\ncurl -X POST \"http://localhost:8000/jobs/\" \\\n     -H \"Content-Type: application/json\" \\\n     -d '{\n           \"title\": \"Software Engineer\",\n           \"company\": \"Tech Corp\",\n           \"description\": \"Looking for a skilled software engineer...\",\n           \"requirements\": \"5+ years of experience in Python...\"\n         }'\n```\n\n2. **Submit a candidate**\n```bash\ncurl -X POST \"http://localhost:8000/candidates/\" \\\n     -H \"Content-Type: application/json\" \\\n     -d '{\n           \"name\": \"John Doe\",\n           \"email\": \"john@example.com\",\n           \"cv_text\": \"Experienced software engineer...\",\n           \"job_id\": 1\n         }'\n```\n\n3. **Schedule an interview**\n```bash\ncurl -X POST \"http://localhost:8000/interviews/\" \\\n     -H \"Content-Type: application/json\" \\\n     -d '{\n           \"candidate_id\": 1,\n           \"job_id\": 1\n         }'\n```\n\n## Troubleshooting\n\n1. **Ollama Connection Issues**\n- Ensure Ollama is running: `ollama serve`\n- Check if models are downloaded: `ollama list`\n- Verify Ollama API is accessible: `curl http://localhost:11434/api/tags`\n\n2. **Database Issues**\n- If you need to reset the database, delete the `recruitment.db` file\n- The database will be recreated when you restart the application\n\n3. **API Connection Issues**\n- Ensure the FastAPI server is running\n- Check if the port 8000 is available\n- Verify all dependencies are installed correctly\n\n## Technology Stack\n\n### Core Framework \u0026 API\n- FastAPI (v0.104.0+) - Modern, fast web framework for building APIs\n- Uvicorn - ASGI server for running the FastAPI application\n- Pydantic (v2.4.2+) - Data validation and settings management\n\n### Language Models \u0026 AI\n- Ollama (v0.1.6+) - Self-hosted LLM framework\n  - llama2 - For general language processing tasks\n  - nomic-embed-text - For text embeddings and semantic similarity\n- LangChain (v0.1.0+) - Framework for building LLM applications\n  - langchain-core (v0.1.10+)\n  - langchain-community (v0.0.10+)\n\n### Database\n- SQLite - Lightweight, file-based database\n- SQLAlchemy (v2.0.0+) - SQL toolkit and ORM\n- Database Models:\n  - JobDescription\n  - Candidate\n  - Interview\n\n### Web \u0026 Data Processing\n- Requests (v2.31.0+) - HTTP library for API calls\n- BeautifulSoup4 (v4.12.2+) - Web scraping capabilities\n- Python-multipart - For handling file uploads\n\n### Development Tools\n- python-dotenv - Environment variable management\n- Type hints and annotations throughout the codebase\n\n## Architecture\n\nThe system follows a multi-agent pattern with three main agents:\n\n1. **Job Summarizer Agent**\n   - Uses llama2 for analyzing job descriptions\n   - Extracts key requirements and qualifications\n\n2. **Recruiting Agent**\n   - Combines llama2 and nomic-embed-text\n   - Performs CV matching and scoring\n   - Provides detailed match analysis\n\n3. **Interview Scheduler Agent**\n   - Uses llama2 for generating communications\n   - Manages interview scheduling\n   - Generates personalized interview invitations\n\n## Project Structure\n\n```\n├── app/\n│   ├── agents/           # Agent implementations\n│   ├── models/          # Database models\n│   ├── tools/           # Custom tools\n│   ├── utils/           # Utility functions\n│   └── main.py          # FastAPI application\n├── tests/               # Test files\n├── requirements.txt     # Project dependencies\n└── README.md           # Project documentation\n```\n\n## API Endpoints\n\n- `POST /jobs/`: Create a new job posting\n- `POST /candidates/`: Process a candidate's CV\n- `POST /interviews/`: Schedule an interview\n- `GET /jobs/{job_id}/candidates`: Get all candidates for a job ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodelander07%2Fmulti-agentic-recruitment-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodelander07%2Fmulti-agentic-recruitment-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodelander07%2Fmulti-agentic-recruitment-system/lists"}