{"id":21288672,"url":"https://github.com/abdo-essam/online-recruitment-database-project","last_synced_at":"2026-05-20T09:10:35.219Z","repository":{"id":167022903,"uuid":"642580021","full_name":"abdo-essam/Online-Recruitment-Database-Project","owner":"abdo-essam","description":"An online recruitment system is a service that automates company’s recruiting needs by getting volumes of employment applications over the internet. ","archived":false,"fork":false,"pushed_at":"2024-03-02T01:45:48.000Z","size":3751,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-15T15:44:06.486Z","etag":null,"topics":["database","microsoft-sql-server","sql"],"latest_commit_sha":null,"homepage":"","language":null,"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/abdo-essam.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}},"created_at":"2023-05-18T22:33:52.000Z","updated_at":"2023-05-18T22:49:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"c8e5c109-2754-4973-9d1a-8c8effb5b1b4","html_url":"https://github.com/abdo-essam/Online-Recruitment-Database-Project","commit_stats":null,"previous_names":["abdo-essam/online-recruitment-database-project"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/abdo-essam/Online-Recruitment-Database-Project","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abdo-essam%2FOnline-Recruitment-Database-Project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abdo-essam%2FOnline-Recruitment-Database-Project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abdo-essam%2FOnline-Recruitment-Database-Project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abdo-essam%2FOnline-Recruitment-Database-Project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/abdo-essam","download_url":"https://codeload.github.com/abdo-essam/Online-Recruitment-Database-Project/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abdo-essam%2FOnline-Recruitment-Database-Project/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33253212,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-20T04:48:54.280Z","status":"ssl_error","status_checked_at":"2026-05-20T04:48:10.851Z","response_time":356,"last_error":"SSL_read: 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":["database","microsoft-sql-server","sql"],"created_at":"2024-11-21T12:23:55.138Z","updated_at":"2026-05-20T09:10:35.213Z","avatar_url":"https://github.com/abdo-essam.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# 🎯 Online Recruitment Database System\n\n[![SQL Server](https://img.shields.io/badge/SQL%20Server-CC2927?style=for-the-badge\u0026logo=microsoft%20sql%20server\u0026logoColor=white)](https://www.microsoft.com/sql-server)\n[![Database](https://img.shields.io/badge/Database-316192?style=for-the-badge\u0026logo=postgresql\u0026logoColor=white)](https://github.com/)\n[![License](https://img.shields.io/badge/License-MIT-green.svg?style=for-the-badge)](LICENSE)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=for-the-badge)](http://makeapullrequest.com)\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eA comprehensive database solution for automating company recruitment processes and connecting job seekers with employers\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#-features\"\u003eFeatures\u003c/a\u003e •\n  \u003ca href=\"#-database-schema\"\u003eSchema\u003c/a\u003e •\n  \u003ca href=\"#-er-diagrams\"\u003eER Diagrams\u003c/a\u003e •\n  \u003ca href=\"#-sql-queries\"\u003eQueries\u003c/a\u003e •\n  \u003ca href=\"#-installation\"\u003eInstallation\u003c/a\u003e •\n  \u003ca href=\"#-usage\"\u003eUsage\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n\u003c/div\u003e\n\n## 📋 Table of Contents\n\n- [Overview](#-overview)\n- [Features](#-features)\n- [Database Schema](#-database-schema)\n- [ER Diagrams](#-er-diagrams)\n- [SQL Queries \u0026 Analytics](#-sql-queries--analytics)\n- [Installation](#-installation)\n- [Usage](#-usage)\n- [Sample Data](#-sample-data)\n- [Project Structure](#-project-structure)\n- [Contributing](#-contributing)\n- [License](#-license)\n\n---\n\n## 🌟 Overview\n\nThe **Online Recruitment Database System** is a robust database solution designed to automate and streamline the recruitment process for both **job seekers** and **employers**. This system provides a centralized platform where:\n\n- 🔍 **Job Seekers** can create profiles, upload their experience and education details, search for vacancies, and apply for jobs\n- 🏢 **Employers** can manage their company profiles, post job vacancies, and track applications\n- 📊 **Administrators** can oversee the entire system and generate insightful analytics\n\nThe beauty of this online recruitment solution lies in its **accessibility and ease of use**. Anywhere on the globe, designated individuals are able to receive, process, and keep a record of CVs within a web-based information powerhouse.\n\n---\n\n## ✨ Features\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\"\u003e\n\n### 👤 Job Seeker Features\n- ✅ User registration and profile management\n- ✅ Add/update personal information\n- ✅ Manage education history\n- ✅ Track work experience\n- ✅ Search vacancies by criteria\n- ✅ Apply for jobs\n- ✅ Save jobs for later\n\n\u003c/td\u003e\n\u003ctd width=\"50%\"\u003e\n\n### 🏢 Employer Features\n- ✅ Company registration and profile\n- ✅ Post new job vacancies\n- ✅ Manage job listings\n- ✅ Set salary ranges\n- ✅ Hide/show job posts\n- ✅ Track applications\n- ✅ Filter candidates\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n### 📊 Analytics \u0026 Reporting\n- 📈 Most popular job titles by applications\n- 📉 Jobs without applicants tracking\n- 🏆 Top employers by announcements\n- 📋 Available positions per employer\n- 👥 Job seeker activity reports\n\n---\n\n## 🗄️ Database Schema\n\nThe database consists of **14 interconnected tables** designed to handle all aspects of the online recruitment process:\n\n### Core Tables\n\n| Table | Description | Key Fields |\n|-------|-------------|------------|\n| `JobSeeker` | Stores job seeker profiles | firstname, lastname, email, industry, career level |\n| `Employer` | Stores company information | company_name, website_url, establishment_date |\n| `Job_post` | Active job listings | salary range, experience required, description |\n| `Application` | Job applications | apply_date, job post reference, seeker reference |\n\n### Reference Tables\n\n| Table | Description |\n|-------|-------------|\n| `Career` | Career levels (Student, Entry Level, Experienced, Manager, Senior Management) |\n| `Industry` | Industry categories (IT, Manufacturing, Real Estate, etc.) |\n| `Job_type` | Employment types (Full Time, Part Time, Freelance, Internship, etc.) |\n| `Job_category` | Job categories (IT/Software Development, Marketing, Finance, etc.) |\n| `Job_title` | Job position titles |\n| `City` | City locations |\n| `states` | State/Country information |\n\n### Supporting Tables\n\n| Table | Description |\n|-------|-------------|\n| `Education` | Job seeker education history (degree, major, university, GPA) |\n| `Experience` | Work experience records (company, duration, description) |\n| `Saved_jobs` | Bookmarked jobs by seekers |\n| `admin` | System administrator accounts |\n\n### 🔗 Table Relationships\n\n```\n┌──────────────┐     ┌──────────────┐     ┌──────────────┐\n│   Employer   │────▶│   Job_post   │◀────│   Industry   │\n└──────────────┘     └──────────────┘     └──────────────┘\n                            │\n                            ▼\n                     ┌──────────────┐\n                     │ Application  │\n                     └──────────────┘\n                            │\n                            ▼\n┌──────────────┐     ┌──────────────┐     ┌──────────────┐\n│  Education   │────▶│  JobSeeker   │◀────│  Experience  │\n└──────────────┘     └──────────────┘     └──────────────┘\n```\n\n---\n\n## 📐 ER Diagrams\n\n### Conceptual ERD (Entity-Relationship Diagram)\n\nThe conceptual model shows the high-level entities and their relationships without implementation details:\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"ERD conceptual .png\" alt=\"Conceptual ERD\" width=\"800\"\u003e\n\u003c/div\u003e\n\n**Key Entities:**\n- **Job Seeker** - Central entity with attributes for personal info, career level, and industry\n- **Employer** - Company entity with establishment details and contact information\n- **Job** - Job posting entity linking employers to job seekers through applications\n- **Education** \u0026 **Experience** - Supporting entities for job seeker qualifications\n\n---\n\n### Physical ERD (Database Schema)\n\nThe physical model shows the actual database implementation with tables, columns, data types, and foreign key constraints:\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"ERD Physical.png\" alt=\"Physical ERD\" width=\"800\"\u003e\n\u003c/div\u003e\n\n**Implementation Details:**\n- All primary keys use `IDENTITY(1,1)` for auto-increment\n- Foreign key constraints ensure referential integrity\n- Boolean fields use `BIT` type with appropriate defaults\n- Date fields use `DATE` and `SMALLDATETIME` types\n- Salary fields use `DECIMAL(10,2)` for precision\n\n---\n\n## 🔍 SQL Queries \u0026 Analytics\n\nThis project includes **6 powerful analytical queries** to extract meaningful insights from the recruitment data:\n\n### Query A: Most Popular Job Title\n\u003e *What was the most interesting job \"title\" that had maximum number of applicants?*\n\n```sql\nSELECT TOP(1) M.job_title AS [Job Title], \n       M.NumOfApplies AS [Number Of Applies]\nFROM (\n    SELECT Job_title.job_title, COUNT(*) AS NumOfApplies\n    FROM Application \n    JOIN Job_post ON Job_post.ID = Application.id_jobpost\n    JOIN Job_title ON job_title.ID = Job_post.jobtitle_id \n    GROUP BY job_title\n) AS M\nORDER BY M.NumOfApplies DESC;\n```\n\n---\n\n### Query B: Jobs Without Applicants\n\u003e *What was the announced job \"title\" that hadn't any applicants last month?*\n\n```sql\nSELECT DISTINCT Job_title.job_title \nFROM Job_title \nJOIN Job_post ON Job_title.ID \u003c\u003e ALL (\n    SELECT job_title.ID\n    FROM Application \n    JOIN Job_post ON Job_post.ID = Application.id_jobpost\n    JOIN Job_title ON job_title.ID = Job_post.jobtitle_id\n    WHERE created_at BETWEEN \n        DATEADD(day, 1-DAY(EOMONTH(CURRENT_TIMESTAMP,-1)), EOMONTH(CURRENT_TIMESTAMP,-1)) \n        AND EOMONTH(CURRENT_TIMESTAMP,-1)\n);\n```\n\n---\n\n### Query C: Top Employer by Announcements\n\u003e *Who was the employer with the maximum announcements last month?*\n\n```sql\nSELECT TOP(1) Employer.ID, Employer.company_name,\n       Employer.contact_no, Employer.email,\n       City.[name] AS City, states.[name] AS State,\n       m.posts AS [Number of announcements]\nFROM (\n    SELECT Employer.ID AS Employer_id, COUNT(*) AS posts\n    FROM Employer \n    JOIN Job_post ON Job_post.id_employer = Employer.ID \n    WHERE created_at BETWEEN \n        DATEADD(day, 1-DAY(EOMONTH(CURRENT_TIMESTAMP,-1)), EOMONTH(CURRENT_TIMESTAMP,-1))\n        AND EOMONTH(CURRENT_TIMESTAMP,-1)\n    GROUP BY Employer.ID\n) AS m \nJOIN Employer ON Employer.ID = m.Employer_id\nJOIN City ON City.cities_id = Employer.city_id\nJOIN states ON states.ID = City.state_id\nORDER BY [Number of announcements] DESC;\n```\n\n---\n\n### Query D: Inactive Employers\n\u003e *Who were the employers that didn't announce any job last month?*\n\n```sql\nSELECT Employer.ID, Employer.company_name,\n       Employer.contact_no, Employer.email,\n       City.[name] AS City, states.[name] AS State \nFROM Employer \nJOIN City ON City.cities_id = Employer.city_id\nJOIN states ON states.ID = City.state_id\nWHERE Employer.ID \u003c\u003e ALL (\n    SELECT Employer.ID\n    FROM Employer \n    JOIN Job_post ON Employer.ID = Job_post.id_employer\n    WHERE created_at BETWEEN \n        DATEADD(day, 1-DAY(EOMONTH(CURRENT_TIMESTAMP,-1)), EOMONTH(CURRENT_TIMESTAMP,-1)) \n        AND EOMONTH(CURRENT_TIMESTAMP,-1)\n);\n```\n\n---\n\n### Query E: Available Positions by Employer\n\u003e *What were the available positions at each employer last month?*\n\n```sql\nSELECT Job_post.id_employer AS [Employer ID], Job_post.ID AS [Post ID],\n       job_title.job_title, Job_post.[description],\n       Job_category.job_category, job_type.job_type,\n       Industry.[name] AS Industry, min_salary, max_salary,\n       City.[name] AS City, states.[name] AS State,\n       Job_post.experience_years\nFROM Job_post \nJOIN Job_title ON job_title.ID = Job_post.jobtitle_id\nJOIN City ON City.cities_id = Job_post.city_id\nJOIN states ON states.ID = Job_post.state_id\nJOIN Job_category ON Job_category.ID = Job_post.job_category\nJOIN Job_type ON job_type.ID = Job_post.jobtype_id\nJOIN Industry ON Industry.id = Job_post.industry_id\nWHERE Job_post.is_active = 1 \n  AND created_at BETWEEN \n      DATEADD(day, 1-DAY(EOMONTH(CURRENT_TIMESTAMP,-1)), EOMONTH(CURRENT_TIMESTAMP,-1))\n      AND EOMONTH(CURRENT_TIMESTAMP,-1)\nORDER BY Job_post.id_employer;\n```\n\n---\n\n### Query F: Job Seeker Applications Summary\n\u003e *For each seeker, retrieve all their information and the number of jobs they applied for*\n\n```sql\nSELECT JobSeeker.ID, JobSeeker.firstname, JobSeeker.lastname,\n       JobSeeker.email, JobSeeker.about_me, JobSeeker.contact_no,\n       JobSeeker.date_of_birth, JobSeeker.gender,\n       states.[name] AS State, City.[name] AS City,\n       Career.[name] AS Career, Industry.[name] AS Industry,\n       COUNT(Application.jobseeker_id) AS NumberOfApplies\nFROM Application\nRIGHT JOIN JobSeeker ON Application.jobseeker_id = JobSeeker.ID\nLEFT JOIN City ON JobSeeker.city_id = City.cities_id \nLEFT JOIN states ON JobSeeker.state_id = states.ID\nLEFT JOIN Career ON JobSeeker.career_id = Career.ID\nLEFT JOIN Industry ON JobSeeker.industry_id = Industry.id\nGROUP BY JobSeeker.ID, JobSeeker.firstname, JobSeeker.lastname,\n         JobSeeker.email, JobSeeker.about_me, JobSeeker.contact_no,\n         JobSeeker.date_of_birth, JobSeeker.gender,\n         City.[name], states.[name], Career.[name], Industry.[name]\nORDER BY NumberOfApplies DESC;\n```\n\n---\n\n## 🚀 Installation\n\n### Prerequisites\n- Microsoft SQL Server 2016 or later\n- SQL Server Management Studio (SSMS) or Azure Data Studio\n\n### Setup Instructions\n\n1. **Clone the repository**\n   ```bash\n   git clone https://github.com/Abdo-Essam/Online-Recruitment-Database-Project.git\n   cd Online-Recruitment-Database-Project\n   ```\n\n2. **Create the database**\n   ```sql\n   CREATE DATABASE OnlineRecruitment;\n   USE OnlineRecruitment;\n   ```\n\n3. **Create tables**\n   - Open `create tables.TXT` in SSMS\n   - Execute the script to create all tables\n\n4. **Insert sample data**\n   - Open `insert in tables.TXT` in SSMS\n   - Execute the script to populate with sample data\n\n5. **Run analytical queries**\n   - Navigate to the `queries/` folder\n   - Execute queries a.TXT through f.TXT as needed\n\n---\n\n## 💻 Usage\n\n### Creating a Job Seeker Profile\n\n```sql\nINSERT INTO JobSeeker(firstname, lastname, email, password, about_me, \n                      city_id, state_id, contact_no, career_id, \n                      date_of_birth, gender, industry_id)\nVALUES ('John', 'Doe', 'john.doe@email.com', 'securepass123',\n        'Experienced software developer...', 1, 1, '01234567890',\n        3, '1995-06-15', 'M', 4);\n```\n\n### Posting a Job Vacancy\n\n```sql\nINSERT INTO Job_post(id_employer, jobtitle_id, min_salary, max_salary,\n                     city_id, state_id, experience_years, description,\n                     job_category, jobtype_id, industry_id)\nVALUES (1, 2, 5000, 10000, 1, 1, 2,\n        'We are looking for a skilled web designer...',\n        6, 1, 4);\n```\n\n### Applying for a Job\n\n```sql\nINSERT INTO Application(id_jobpost, jobseeker_id)\nVALUES (1, 1);\n```\n\n---\n\n## 📁 Sample Data\n\nThe database comes pre-loaded with sample data including:\n\n### 🏢 Sample Employers\n| Company | Industry | Location |\n|---------|----------|----------|\n| Facebook | Technology | Fort Wayne, Indiana |\n| Google | Technology | Lincoln, Nebraska |\n| Amazon | E-commerce | Birmingham, Alabama |\n| AE | Technology | Birmingham, Alabama |\n| Souq | E-commerce | Fort Wayne, Indiana |\n\n### 👥 Sample Job Seekers\n| Name | Career Level | Industry |\n|------|--------------|----------|\n| Abdo Kamal | Experienced | FMCG |\n| Yara Yaser | Entry Level | Manufacturing |\n| Abdo Essam | Student | Computer Software |\n| Ahmed Mostafa | Entry Level | IT Services |\n| Sara Ahmed | Entry Level | Manufacturing |\n\n### 📋 Sample Job Types\n- Full Time\n- Part Time\n- Work From Home\n- Freelance/Project\n- Internship\n- Shift Based\n- Volunteering\n- Student Activity\n\n---\n\n## 📂 Project Structure\n\n```\nOnline-Recruitment-Database-Project/\n│\n├── 📄 README.md                    # Project documentation\n├── 📄 create tables.TXT            # DDL scripts for table creation\n├── 📄 insert in tables.TXT         # Sample data insertion scripts\n├── 📄 DATA.TXT                     # Reference data values\n│\n├── 📁 queries/                     # SQL analytical queries\n│   ├── a.TXT                       # Most popular job query\n│   ├── b.TXT                       # Jobs without applicants query\n│   ├── c.TXT                       # Top employer query\n│   ├── d.TXT                       # Inactive employers query\n│   ├── e.TXT                       # Available positions query\n│   └── f.TXT                       # Job seeker summary query\n│\n├── 🖼️ ERD conceptual .png          # Conceptual ER diagram\n├── 🖼️ ERD Physical.png             # Physical database schema\n│\n├── 📄 IS211 Project Description.pdf # Original project requirements\n└── 📄 IS211-20180144.pdf           # Project report\n```\n\n---\n\n## 🤝 Contributing\n\nContributions are welcome! Here's how you can help:\n\n1. **Fork** the repository\n2. **Create** a feature branch (`git checkout -b feature/AmazingFeature`)\n3. **Commit** your changes (`git commit -m 'Add some AmazingFeature'`)\n4. **Push** to the branch (`git push origin feature/AmazingFeature`)\n5. **Open** a Pull Request\n\n### Contribution Ideas\n- 🐛 Bug fixes and improvements\n- 📝 Additional SQL queries\n- 🎨 Enhanced ERD visualizations\n- 📖 Documentation improvements\n- 🧪 Performance optimizations\n\n---\n\n## 📜 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n\n## 👨‍💻 Author\n\n\u003cdiv align=\"center\"\u003e\n\n**Abdo Essam**\n\n[![GitHub](https://img.shields.io/badge/GitHub-100000?style=for-the-badge\u0026logo=github\u0026logoColor=white)](https://github.com/Abdo-Essam)\n[![LinkedIn](https://img.shields.io/badge/LinkedIn-0077B5?style=for-the-badge\u0026logo=linkedin\u0026logoColor=white)](https://linkedin.com/in/abdo-essam)\n\n\u003c/div\u003e\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n### ⭐ Star this repository if you find it helpful!\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/stars/Abdo-Essam/Online-Recruitment-Database-Project?style=social\" alt=\"Stars\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/forks/Abdo-Essam/Online-Recruitment-Database-Project?style=social\" alt=\"Forks\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/watchers/Abdo-Essam/Online-Recruitment-Database-Project?style=social\" alt=\"Watchers\"\u003e\n\u003c/p\u003e\n\n**Made with ❤️ for the Database Course (IS211)**\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabdo-essam%2Fonline-recruitment-database-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabdo-essam%2Fonline-recruitment-database-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabdo-essam%2Fonline-recruitment-database-project/lists"}