{"id":28276478,"url":"https://github.com/hahaanisha/recroot","last_synced_at":"2026-02-08T07:07:42.532Z","repository":{"id":275177658,"uuid":"916721563","full_name":"hahaanisha/Recroot","owner":"hahaanisha","description":"Recroot is an Applicant Tracking System (ATS) designed to streamline recruitment processes by automating resume screening, job application tracking, interview scheduling, and offer letter management.","archived":false,"fork":false,"pushed_at":"2025-02-01T18:23:42.000Z","size":2514,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-07T20:25:58.032Z","etag":null,"topics":["cloudinary","firebase","flask","flutter","render"],"latest_commit_sha":null,"homepage":"","language":"Dart","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/hahaanisha.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-01-14T16:35:23.000Z","updated_at":"2025-07-07T09:44:15.000Z","dependencies_parsed_at":null,"dependency_job_id":"958f75a7-8396-45cf-9fd0-8a4a0aa410fa","html_url":"https://github.com/hahaanisha/Recroot","commit_stats":null,"previous_names":["hahaanisha/recroot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hahaanisha/Recroot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hahaanisha%2FRecroot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hahaanisha%2FRecroot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hahaanisha%2FRecroot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hahaanisha%2FRecroot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hahaanisha","download_url":"https://codeload.github.com/hahaanisha/Recroot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hahaanisha%2FRecroot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29224432,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-08T06:05:31.539Z","status":"ssl_error","status_checked_at":"2026-02-08T05:58:33.853Z","response_time":57,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["cloudinary","firebase","flask","flutter","render"],"created_at":"2025-05-21T05:10:40.881Z","updated_at":"2026-02-08T07:07:42.510Z","avatar_url":"https://github.com/hahaanisha.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 Recroot - Smart Applicant Tracking System (ATS)\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"readmeIMAGES/logo.png\" alt=\"Recroot Logo\" width=\"300\"\u003e\n\u003c/p\u003e\n\n\n📺 **Watch the Demo:** [YouTube Video](https://www.youtube.com/watch?v=u7HGmPe94FI\u0026feature=youtu.be)\n\n**Recroot** is an advanced **Applicant Tracking System (ATS)** designed to streamline recruitment processes by automating **resume screening, job application tracking, interview scheduling, and offer letter management**.  \n\nThis documentation focuses on the **backend implementation, API development \u0026 deployment on Render, real-time database integration with Firebase, and resume storage using Cloudinary**.  \n\n---\n\n## 📌 Features  \n✅ **ATS scoring** for resume-job description matching  \n✅ **Job application tracking** for recruiters \u0026 candidates  \n✅ **Automated interview scheduling** with notifications  \n✅ **Smart feedback collection** from interviewers  \n✅ **Offer letter management** and status tracking  \n✅ **Resume storage on Cloudinary** for easy retrieval  \n✅ **Real-time database on Firebase** for seamless data sync  \n\n---\n\n# 🎨 Frontend Overview  \n\n## **🖥️ UI Screens**  \n✅ **Login Page** - Secure authentication system  \n✅ **Landing Page for Recruiters** - Manage job listings and applications  \n✅ **Landing Page for Candidates** - Apply for jobs and track applications  \n✅ **Landing Page for Interviewers** - Provide feedback and review candidates  \n\n### **🔹 UI Screenshots**\n#### 📌 Candidate View  \n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"readmeIMAGES/canidate.png\" alt=\"Candidate Page\" width=\"400\"\u003e\n\u003c/p\u003e\n\n#### 📌 Interviewer View  \n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"readmeIMAGES/inter.png\" alt=\"Recruiter Page\" width=\"700\"\u003e\n\u003c/p\u003e\n\n#### 📌 Company/Recruiter View  \n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"readmeIMAGES/Company.png\" alt=\"Interviewer Page\" width=\"900\"\u003e\n\u003c/p\u003e\n\n---\n\n## 🛠️ Tech Stack  \n\n### **Backend**  \n- **Backend Framework:** Flask  \n- **Database:** Firebase (Real-time Database)  \n- **Storage:** Cloudinary (Resume Storage)  \n- **API Hosting:** Render  \n- **Language:** Python  \n\n### **Frontend**  \n**Built with Flutter** 🚀 \n\n#### **🔗 Flutter Plugins Used:**  \n- [cupertino_icons](https://pub.dev/packages/cupertino_icons): ^1.0.6  \n- [firebase_core](https://pub.dev/packages/firebase_core): ^3.10.1  \n- [firebase_auth](https://pub.dev/packages/firebase_auth): ^5.4.1  \n- [cloud_firestore](https://pub.dev/packages/cloud_firestore): ^5.6.2  \n- [firebase_database](https://pub.dev/packages/firebase_database): ^11.3.1  \n- [intl](https://pub.dev/packages/intl): ^0.20.2  \n- [firebase_storage](https://pub.dev/packages/firebase_storage): ^12.4.1  \n- [file_picker](https://pub.dev/packages/file_picker): ^8.1.7  \n- [http](https://pub.dev/packages/http): ^1.3.0  \n- [cloudinary](https://pub.dev/packages/cloudinary): ^1.2.0  \n- [url_launcher](https://pub.dev/packages/url_launcher): ^6.3.1  \n- [open_file](https://pub.dev/packages/open_file): ^3.0.3  \n- [pdf](https://pub.dev/packages/pdf): ^3.10.8  \n- [path_provider](https://pub.dev/packages/path_provider): ^2.1.5  \n\n---\n\n# ⚙️ Backend Overview  \n\n## 👀 API Endpoints  \n\n### 1️⃣ **Resume ATS Scoring API**  \n\n**Endpoint:**  \n```http\nPOST /ats-score\n```\n**Request Body (JSON):**  \n```json\n{\n  \"resume_url\": \"https://cloudinary.com/sample.pdf\",\n  \"job_desc\": \"Software Engineer with experience in Python, Flask, and ML\"\n}\n```\n**Response (JSON):**  \n```json\n{\n  \"ats_score\": 85.5\n}\n```\n**Functionality:**  \n- Downloads the resume from **Cloudinary**  \n- Extracts text using **pdfplumber**  \n- Computes similarity with **TF-IDF \u0026 Cosine Similarity**  \n- Returns the **ATS Score**  \n\n---\n\n### 2️⃣ **Upload Resume to Cloudinary**  \n\n**Endpoint:**  \n```http\nPOST /upload-resume\n```\n**Request Body (Form Data):**  \n- `resume_file`: (PDF file)  \n\n**Response (JSON):**  \n```json\n{\n  \"resume_url\": \"https://res.cloudinary.com/.../resume.pdf\"\n}\n```\n**Functionality:**  \n- Accepts a PDF file from the frontend  \n- Uploads the resume to **Cloudinary**  \n- Returns the **resume URL**  \n\n---\n\n### 3️⃣ **Job Application Data (Firebase Integration)**  \n\n**Endpoint:**  \n```http\nPOST /add-application\n```\n**Request Body (JSON):**  \n```json\n{\n  \"candidate_name\": \"John Doe\",\n  \"email\": \"john@example.com\",\n  \"job_role\": \"Software Engineer\",\n  \"resume_url\": \"https://res.cloudinary.com/.../resume.pdf\",\n  \"status\": \"Applied\"\n}\n```\n**Response (JSON):**  \n```json\n{\n  \"message\": \"Application added successfully\"\n}\n```\n**Functionality:**  \n- Stores candidate job application data in **Firebase**  \n- Tracks application **status updates** (Applied, Interview, Hired, Rejected)  \n\n---\n\n## 📂 Firebase Database Structure  \n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"readmeIMAGES/FirebaseAuth.png\" alt=\"FirebaseAuth\" width=\"700\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"readmeIMAGES/firebaseRealTime.jpg\" alt=\"firebaseRealTime\" width=\"700\"\u003e\n\u003c/p\u003e\n\n\n---\n\n## ☁️ Cloudinary Resume Storage  \n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"readmeIMAGES/cloudinary.jpg\" alt=\"cloudinary\" width=\"700\"\u003e\n\u003c/p\u003e\n\n---\n\n# 🚀 Deployment Guide  \n\n## **1️⃣ Backend API Deployment on Render**  \n\n### **Step 1: Create a `requirements.txt` file**  \n```txt\nflask\nrequests\npdfplumber\nscikit-learn\nfirebase-admin\ncloudinary\ngunicorn\n```\n\n### **Step 2: Create a `render.yaml` file**  \n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"readmeIMAGES/render.jpeg\" alt=\"Recroot Logo\" width=\"700\"\u003e\n\u003c/p\u003e\n\n```yaml\nservices:\n  - type: web\n    name: recroot-api\n    runtime: python\n    envVars:\n      - key: CLOUDINARY_URL\n        value: \"your-cloudinary-url\"\n      - key: FIREBASE_CREDENTIALS\n        value: \"your-firebase-admin-sdk.json\"\n    buildCommand: \"pip install -r requirements.txt\"\n    startCommand: \"gunicorn index:app\"\n```\n\n### **Step 3: Push the project to GitHub**  \nsh\ngit init\ngit add .\ngit commit -m \"Initial commit\"\ngit branch -M main\ngit remote add origin https://github.com/hahaanisha/Recroot\ngit push -u origin main\n\n\n### **Step 4: Deploy on Render**  \n- Go to [Render](https://render.com/)  \n- Click on **\"New Web Service\"**  \n- Select your GitHub repo  \n- Set the runtime to **Python**  \n- Add necessary **environment variables**  \n- Click **Deploy**  \n\n---\n\n## 2️⃣ Firebase Integration  \n\n### **Step 1: Setup Firebase**  \n- Go to [Firebase Console](https://console.firebase.google.com/)  \n- Create a **new project**  \n- Go to **Project Settings → Service Accounts**  \n- Generate a **Private Key JSON** and download it  \n\n### **Step 2: Install Firebase Admin SDK**  \nsh\npip install firebase-admin\n\n\n### **Step 3: Initialize Firebase in the Code**  \npython\nimport firebase_admin\nfrom firebase_admin import credentials, db\n\ncred = credentials.Certificate(\"firebase-admin-sdk.json\")\nfirebase_admin.initialize_app(cred, {\n    'databaseURL': \"https://your-database-url.firebaseio.com/\"\n})\n\n\n### **Step 4: Storing Job Applications in Firebase**  \npython\ndef store_application(data):\n    ref = db.reference(\"/applications\")\n    ref.push(data)\n    return {\"message\": \"Application added successfully\"}\n\n---\n\n\n# 🏆 Conclusion  \n\nRecroot is an **Seamless hiring solution** that simplifies recruitment for companies. With **Cloudinary for resume storage, Firebase for real-time data, and Render for seamless API deployment**, Recroot is built for **scalability, efficiency, and automation**.  \n\n🚀 **Get started today and make hiring hassle-free!**  \n\n---\n\n# 📌 Contact \u0026 Contribution  \n👩‍💻 **Developed by:** [Tejas Gadge](https://github.com/tejasgadge2504)  \u0026 [Anisha Shankar](https://github.com/hahaanisha)   \n💡 **Contribute:** Fork the repo \u0026 submit a PR!  \n📧 **Feedback/Suggestions:** Open an issue on GitHub  \n\n**⭐ Star the project if you found it useful! ⭐**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhahaanisha%2Frecroot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhahaanisha%2Frecroot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhahaanisha%2Frecroot/lists"}