{"id":26896064,"url":"https://github.com/rahulsamant37/job-chatbot","last_synced_at":"2026-02-27T18:48:35.092Z","repository":{"id":276499015,"uuid":"922928360","full_name":"rahulsamant37/JOb-Chatbot","owner":"rahulsamant37","description":"This Chatbot Can fetch Multiple URL with detail about Jobs and Internship according to your requirements with AI Agent using Langgraph with a basic frontend in Nextjs","archived":false,"fork":false,"pushed_at":"2025-04-03T19:50:23.000Z","size":565,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-31T22:08:42.275Z","etag":null,"topics":["fastapi","langchain-python","langgraph-python","playwright-python","pydantic","typescript"],"latest_commit_sha":null,"homepage":"https://www.xzayogn.com/","language":"TypeScript","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/rahulsamant37.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-27T10:46:56.000Z","updated_at":"2025-05-21T14:08:01.000Z","dependencies_parsed_at":"2025-02-08T17:19:24.340Z","dependency_job_id":"c07c17fa-56a6-4979-9e68-769a564c111b","html_url":"https://github.com/rahulsamant37/JOb-Chatbot","commit_stats":null,"previous_names":["rahulsamant37/job-chatbot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rahulsamant37/JOb-Chatbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rahulsamant37%2FJOb-Chatbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rahulsamant37%2FJOb-Chatbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rahulsamant37%2FJOb-Chatbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rahulsamant37%2FJOb-Chatbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rahulsamant37","download_url":"https://codeload.github.com/rahulsamant37/JOb-Chatbot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rahulsamant37%2FJOb-Chatbot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278386118,"owners_count":25978109,"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","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["fastapi","langchain-python","langgraph-python","playwright-python","pydantic","typescript"],"created_at":"2025-04-01T02:59:32.266Z","updated_at":"2025-10-04T22:43:47.443Z","avatar_url":"https://github.com/rahulsamant37.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"```mermaid\ngraph TD\n    A[User Lands on Platform] --\u003e B{User Logged In?}\n    B --\u003e|No| C[Display Login/Signup Page]\n    B --\u003e|Yes| D[Display Job Search Dashboard]\n    \n    C --\u003e C1[User Creates Account/Logs In]\n    C1 --\u003e D\n    \n    D --\u003e E[Browse Jobs]\n    D --\u003e F[View Saved Searches]\n    D --\u003e G[Track Applications]\n    D --\u003e H[Access User Profile]\n    D --\u003e I{Premium User?}\n    \n    E --\u003e E1[Apply Search Filters]\n    E1 --\u003e E2[View Job Listings]\n    E2 --\u003e E3{Interested in Job?}\n    E3 --\u003e|Yes| E4[View Job Details]\n    E3 --\u003e|No| E1\n    E4 --\u003e E5[Save Job]\n    E4 --\u003e E6[Apply to Job]\n    E5 --\u003e E1\n    \n    E6 --\u003e E7[Upload Resume]\n    E7 --\u003e E8{Premium User?}\n    E8 --\u003e|Yes| E9[AI Resume Analysis]\n    E8 --\u003e|No| E10[Standard Application]\n    E9 --\u003e E9a[View Resume Optimization Suggestions]\n    E9a --\u003e E9b[Apply Suggested Changes]\n    E9b --\u003e E9c[Submit Enhanced Resume]\n    E9c --\u003e E10\n    E10 --\u003e E11[Confirm Application Submission]\n    E11 --\u003e D\n    \n    F --\u003e F1[View Saved Search List]\n    F1 --\u003e F2[Select Saved Search]\n    F2 --\u003e E1\n    F1 --\u003e F3[Create New Saved Search]\n    F3 --\u003e E1\n    \n    G --\u003e G1[View Application Status Dashboard]\n    G1 --\u003e G2[View Application Analytics]\n    G1 --\u003e G3[Filter Applications by Status]\n    G3 --\u003e G4[View Specific Application Details]\n    \n    H --\u003e H1[View Profile Information]\n    H1 --\u003e H2[Edit Profile]\n    H1 --\u003e H3[View Application History]\n    H1 --\u003e H4[View Success Metrics]\n    \n    I --\u003e|No| J[Display Premium Upgrade Option]\n    I --\u003e|Yes| K[Access Premium Features]\n    \n    J --\u003e J1[View Premium Benefits]\n    J1 --\u003e J2[Purchase Premium Subscription]\n    J2 --\u003e K\n    \n    K --\u003e K1[Access AI Resume Enhancement]\n    K --\u003e K2[View Job Match Scoring]\n    K --\u003e K3[Access Market Analysis]\n    \n    K1 --\u003e K1a[Upload Resume for Analysis]\n    K1a --\u003e K1b[View Resume Optimization Suggestions]\n    K1b --\u003e K1c[Apply Suggested Changes]\n    K1c --\u003e K1d[Save Enhanced Resume]\n    \n    K2 --\u003e K2a[View Match Score for Jobs]\n    K2a --\u003e K2b[View Detailed Match Analysis]\n    K2b --\u003e K2c[View Missing Skills/Qualifications]\n    \n    K3 --\u003e K3a[View Salary Range Visualizations]\n    K3 --\u003e K3b[View In-Demand Skills Analysis]\n    K3 --\u003e K3c[Browse Recommended Courses]\n    K3c --\u003e K3d[Enroll in Course]\n```\n\nDataBase\n```mermaid\nerDiagram\n    %% User Database\n    Users ||--o{ UserProfiles : has\n    Users ||--o{ UserSkills : has\n    Users ||--o{ UserExperience : has\n    Users ||--o{ UserEducation : has\n    Users ||--o{ UserCertifications : has\n    Users ||--o{ UserResumes : has\n    Users ||--o{ UserPreferences : has\n    Users ||--o{ Sessions : has\n    Users ||--o{ Applications : submits\n    Users ||--o{ SavedSearches : creates\n    Users ||--o{ SearchHistory : generates\n    Users ||--o{ Subscriptions : purchases\n    Users ||--o{ PremiumFeatureUsage : uses\n    Users ||--o{ UserCourseEnrollments : enrolls\n    Users ||--o{ UserAnalytics : generates\n\n    Skills ||--o{ UserSkills : used_in\n    Skills ||--o{ JobSkills : required_in\n    SkillCategories ||--o{ Skills : categorizes\n\n    %% Job Database\n    Companies ||--o{ Jobs : posts\n    Companies ||--o{ CompanyLocations : has\n    Industries ||--o{ Companies : categorizes\n    Industries ||--o{ Industries : has_sub_industry\n    \n    Jobs ||--o{ JobSkills : requires\n    Jobs ||--o{ Applications : receives\n    Jobs ||--o{ SearchIndexJobs : indexed_as\n    Jobs ||--o{ JobAnalytics : generates\n    \n    Locations ||--o{ Jobs : located_in\n    Locations ||--o{ CompanyLocations : located_in\n    Locations ||--o{ Users : located_in\n    Locations ||--o{ SalaryData : references\n    \n    Companies ||--o{ SearchIndexCompanies : indexed_as\n    Companies ||--o{ CompanyAnalytics : generates\n    \n    %% Application Database\n    Applications ||--o{ ApplicationTimeline : tracks\n    Applications ||--o{ ApplicationMessages : contains\n    Applications ||--o{ InterviewSchedules : schedules\n    Applications ||--o{ ApplicationFeedback : receives\n    UserResumes ||--o{ Applications : used_in\n    \n    %% Search Database\n    SearchRankingFactors ||--o{ SearchIndexJobs : influences\n    SearchRankingFactors ||--o{ SearchIndexCompanies : influences\n    \n    %% Premium Database\n    SubscriptionPlans ||--o{ Subscriptions : defines\n    Subscriptions ||--o{ SubscriptionTransactions : generates\n    PremiumFeatures ||--o{ PremiumFeatureUsage : tracked_in\n    \n    %% Content Database\n    CourseProviders ||--o{ Courses : offers\n    Courses ||--o{ UserCourseEnrollments : has\n    Skills ||--o{ Courses : teaches\n    \n    %% Analytics Database\n    Jobs ||--o{ JobAnalytics : measured_in\n    Users ||--o{ UserAnalytics : measured_in\n    Companies ||--o{ CompanyAnalytics : measured_in\n```\n# Comprehensive Database Design for Job Platform\n\n## Overview\n\nThis document outlines the complete database architecture required for the job platform. The design is organized into seven domain-specific databases that support all functionality while maintaining appropriate separation of concerns.\n\n## 1. User Database\n\nThe User Database stores all information related to user accounts, profiles, and authentication.\n\n### Tables\n\n#### Users\n- `user_id` (PK): Unique identifier for each user\n- `email`: User's email address (unique)\n- `password_hash`: Encrypted password\n- `first_name`: User's first name\n- `last_name`: User's last name\n- `phone_number`: Contact phone number\n- `location_id` (FK): Reference to Locations table\n- `profile_image_url`: URL to profile image\n- `account_status`: Account status (active, suspended, deleted)\n- `email_verified`: Boolean indicating email verification status\n- `registration_date`: Date when user registered\n- `last_login_date`: Date of most recent login\n- `account_type`: Type of account (basic, premium)\n\n#### UserProfiles\n- `profile_id` (PK): Unique identifier for profile\n- `user_id` (FK): Reference to Users table\n- `headline`: Professional headline/title\n- `summary`: Professional summary/bio\n- `years_experience`: Total years of professional experience\n- `current_job_title`: Current job title\n- `current_company`: Current company name\n- `desired_job_title`: Desired job title\n- `desired_salary_min`: Minimum desired salary\n- `desired_salary_max`: Maximum desired salary\n- `willing_to_relocate`: Boolean for relocation willingness\n- `remote_preference`: Remote work preference\n- `privacy_settings`: JSON storing privacy preferences\n- `profile_completion`: Percentage of profile completion\n\n#### UserSkills\n- `user_skill_id` (PK): Unique identifier \n- `user_id` (FK): Reference to Users table\n- `skill_id` (FK): Reference to Skills lookup table\n- `proficiency_level`: Self-rated proficiency (1-5)\n- `years_experience`: Years of experience with skill\n- `is_featured`: Boolean indicating if skill is featured on profile\n\n#### UserExperience\n- `experience_id` (PK): Unique identifier\n- `user_id` (FK): Reference to Users table\n- `company_name`: Name of employer\n- `job_title`: Title held at company\n- `location_id` (FK): Reference to Locations table\n- `start_date`: Employment start date\n- `end_date`: Employment end date (null if current)\n- `is_current`: Boolean indicating if this is current job\n- `description`: Job description and responsibilities\n- `achievements`: Notable achievements\n\n#### UserEducation\n- `education_id` (PK): Unique identifier\n- `user_id` (FK): Reference to Users table\n- `institution`: Educational institution name\n- `degree`: Degree earned\n- `field_of_study`: Major or concentration\n- `start_date`: Start date of education\n- `end_date`: End date (null if in progress)\n- `is_current`: Boolean indicating if currently studying\n- `achievements`: Academic achievements\n\n#### UserCertifications\n- `certification_id` (PK): Unique identifier\n- `user_id` (FK): Reference to Users table\n- `name`: Certification name\n- `issuing_organization`: Organization that issued certification\n- `issue_date`: Date certification was issued\n- `expiration_date`: Date certification expires (if applicable)\n- `credential_id`: Certification ID/credential number\n- `credential_url`: URL to verify certification\n\n#### UserResumes\n- `resume_id` (PK): Unique identifier\n- `user_id` (FK): Reference to Users table\n- `name`: Resume name/label\n- `file_url`: Storage URL for resume file\n- `created_at`: Creation date\n- `updated_at`: Last update date\n- `is_default`: Boolean indicating if this is the default resume\n- `file_type`: Type of file (PDF, DOCX, etc.)\n- `parsed_data`: JSON containing parsed resume data\n- `ai_analysis_data`: JSON containing AI analysis results\n\n#### UserPreferences\n- `preference_id` (PK): Unique identifier\n- `user_id` (FK): Reference to Users table\n- `email_notifications`: JSON with email notification preferences\n- `push_notifications`: JSON with push notification preferences\n- `job_alert_frequency`: Frequency of job alerts\n- `search_radius`: Default search radius for location-based searches\n- `default_search_filters`: JSON with default search parameters\n- `display_settings`: JSON with UI preferences\n\n#### Sessions\n- `session_id` (PK): Unique session identifier\n- `user_id` (FK): Reference to Users table\n- `token`: Authentication token\n- `ip_address`: IP address of session\n- `device_info`: Device information\n- `login_timestamp`: Session start time\n- `expiry_timestamp`: Session expiration time\n- `last_activity`: Timestamp of last activity\n- `is_active`: Boolean indicating if session is active\n\n## 2. Job Database\n\nThe Job Database stores all information related to job listings, companies, and related metadata.\n\n### Tables\n\n#### Jobs\n- `job_id` (PK): Unique identifier for job\n- `company_id` (FK): Reference to Companies table\n- `title`: Job title\n- `description`: Full job description\n- `responsibilities`: Job responsibilities\n- `requirements`: Job requirements\n- `benefits`: Job benefits\n- `location_id` (FK): Reference to Locations table\n- `is_remote`: Boolean indicating if job is remote\n- `employment_type`: Type of employment (full-time, part-time, contract, etc.)\n- `experience_level`: Required experience level\n- `education_level`: Required education level\n- `salary_min`: Minimum salary\n- `salary_max`: Maximum salary\n- `salary_currency`: Currency for salary\n- `salary_period`: Period for salary (hourly, monthly, yearly)\n- `salary_visible`: Boolean indicating if salary is visible to applicants\n- `posting_date`: Date job was posted\n- `expiration_date`: Date job expires\n- `status`: Status of job (active, filled, expired)\n- `views_count`: Number of views\n- `applications_count`: Number of applications\n- `featured`: Boolean indicating if job is featured\n- `is_verified`: Boolean indicating if job is verified\n\n#### Companies\n- `company_id` (PK): Unique identifier for company\n- `name`: Company name\n- `description`: Company description\n- `website`: Company website URL\n- `industry_id` (FK): Reference to Industries lookup table\n- `company_size`: Size range of company\n- `founded_year`: Year company was founded\n- `headquarters_location_id` (FK): Reference to Locations table\n- `logo_url`: URL to company logo\n- `cover_image_url`: URL to company cover image\n- `social_links`: JSON with social media links\n- `verified`: Boolean indicating if company is verified\n- `rating`: Average company rating from reviews\n\n#### CompanyLocations\n- `company_location_id` (PK): Unique identifier\n- `company_id` (FK): Reference to Companies table\n- `location_id` (FK): Reference to Locations table\n- `is_headquarters`: Boolean indicating if this is HQ\n- `address_line1`: Street address line 1\n- `address_line2`: Street address line 2\n- `is_active`: Boolean indicating if location is active\n\n#### JobSkills\n- `job_skill_id` (PK): Unique identifier\n- `job_id` (FK): Reference to Jobs table\n- `skill_id` (FK): Reference to Skills lookup table\n- `is_required`: Boolean indicating if skill is required\n- `is_preferred`: Boolean indicating if skill is preferred\n- `experience_years`: Years of experience required\n\n#### Locations\n- `location_id` (PK): Unique identifier\n- `country`: Country name\n- `country_code`: 2-letter country code\n- `state_province`: State or province\n- `city`: City name\n- `postal_code`: Postal code\n- `latitude`: Geographic latitude\n- `longitude`: Geographic longitude\n- `timezone`: Local timezone\n\n#### Industries\n- `industry_id` (PK): Unique identifier\n- `name`: Industry name\n- `description`: Industry description\n- `parent_industry_id` (FK): Self-reference for industry hierarchy\n\n#### Skills\n- `skill_id` (PK): Unique identifier\n- `name`: Skill name\n- `description`: Skill description\n- `category_id` (FK): Reference to SkillCategories table\n\n#### SkillCategories\n- `category_id` (PK): Unique identifier\n- `name`: Category name\n- `description`: Category description\n\n## 3. Application Database\n\nThe Application Database tracks all job applications and their lifecycle.\n\n### Tables\n\n#### Applications\n- `application_id` (PK): Unique identifier\n- `job_id` (FK): Reference to Jobs table\n- `user_id` (FK): Reference to Users table\n- `resume_id` (FK): Reference to UserResumes table\n- `cover_letter_text`: Cover letter content\n- `status`: Application status (submitted, reviewed, interview, rejected, offered, accepted)\n- `submission_date`: Date application was submitted\n- `last_updated`: Date application was last updated\n- `is_premium`: Boolean indicating if submitted with premium status\n- `match_score`: AI-calculated match score\n- `viewed_by_employer`: Boolean indicating if viewed by employer\n- `viewed_date`: Date application was viewed by employer\n- `source`: Source of application (search, recommendation, etc.)\n- `custom_questions`: JSON with responses to custom questions\n- `notes`: Applicant notes\n\n#### ApplicationTimeline\n- `timeline_id` (PK): Unique identifier\n- `application_id` (FK): Reference to Applications table\n- `status`: Status at this point\n- `timestamp`: When status changed\n- `notes`: Any notes associated with status change\n- `actor_id`: ID of user who changed status (recruiter or system)\n\n#### ApplicationMessages\n- `message_id` (PK): Unique identifier\n- `application_id` (FK): Reference to Applications table\n- `sender_id`: ID of sender (user or recruiter)\n- `sender_type`: Type of sender (applicant, recruiter, system)\n- `message`: Message content\n- `timestamp`: When message was sent\n- `read`: Boolean indicating if message was read\n- `read_timestamp`: When message was read\n\n#### InterviewSchedules\n- `interview_id` (PK): Unique identifier\n- `application_id` (FK): Reference to Applications table\n- `interview_type`: Type of interview (phone, video, in-person)\n- `scheduled_date`: Scheduled date and time\n- `duration_minutes`: Duration in minutes\n- `location`: Interview location (or URL for virtual)\n- `interviewer_names`: Names of interviewers\n- `notes`: Interview notes\n- `status`: Status (scheduled, completed, canceled, rescheduled)\n- `feedback`: Post-interview feedback\n\n#### ApplicationFeedback\n- `feedback_id` (PK): Unique identifier\n- `application_id` (FK): Reference to Applications table\n- `stage`: Application stage when feedback provided\n- `rating`: Numerical rating\n- `strengths`: Noted strengths\n- `weaknesses`: Areas for improvement\n- `decision`: Decision (move forward, reject, hold)\n- `provided_by`: ID of person providing feedback\n- `timestamp`: When feedback was provided\n- `is_shared_with_applicant`: Boolean indicating if shared with applicant\n\n## 4. Search Database\n\nThe Search Database optimizes job and content searching capabilities.\n\n### Tables\n\n#### SavedSearches\n- `search_id` (PK): Unique identifier\n- `user_id` (FK): Reference to Users table\n- `name`: Search name\n- `search_parameters`: JSON with search parameters\n- `created_at`: Creation date\n- `last_executed`: When search was last executed\n- `notification_enabled`: Boolean indicating if notifications are enabled\n- `notification_frequency`: Frequency of notifications\n- `result_count`: Number of results from last execution\n\n#### SearchHistory\n- `history_id` (PK): Unique identifier\n- `user_id` (FK): Reference to Users table\n- `search_query`: Search query text\n- `search_filters`: JSON with applied filters\n- `timestamp`: When search was performed\n- `results_count`: Number of results returned\n- `interaction_data`: JSON with user interaction data\n\n#### SearchIndexJobs\n- `index_id` (PK): Unique identifier\n- `job_id` (FK): Reference to Jobs table\n- `search_vector`: Optimized text search vector\n- `keywords`: Extracted keywords\n- `last_indexed`: When job was last indexed\n- `relevance_factors`: JSON with factors affecting search relevance\n\n#### SearchIndexCompanies\n- `index_id` (PK): Unique identifier\n- `company_id` (FK): Reference to Companies table\n- `search_vector`: Optimized text search vector\n- `keywords`: Extracted keywords\n- `last_indexed`: When company was last indexed\n\n#### SearchRankingFactors\n- `factor_id` (PK): Unique identifier\n- `name`: Factor name\n- `description`: Description of ranking factor\n- `weight`: Weight in search algorithm\n- `is_active`: Boolean indicating if factor is active\n\n## 5. Premium Database\n\nThe Premium Database manages subscription information and premium feature access.\n\n### Tables\n\n#### Subscriptions\n- `subscription_id` (PK): Unique identifier\n- `user_id` (FK): Reference to Users table\n- `plan_id` (FK): Reference to SubscriptionPlans table\n- `status`: Subscription status (active, canceled, expired)\n- `start_date`: Start date of subscription\n- `end_date`: End date of subscription\n- `renewal_date`: Next renewal date\n- `payment_method_id`: Reference to payment method\n- `auto_renew`: Boolean indicating if subscription auto-renews\n- `subscription_source`: Source of subscription\n\n#### SubscriptionPlans\n- `plan_id` (PK): Unique identifier\n- `name`: Plan name\n- `description`: Plan description\n- `price`: Plan price\n- `currency`: Currency code\n- `billing_period`: Billing period (monthly, annually)\n- `features`: JSON with included features\n- `is_active`: Boolean indicating if plan is active\n- `trial_days`: Number of trial days\n\n#### SubscriptionTransactions\n- `transaction_id` (PK): Unique identifier\n- `subscription_id` (FK): Reference to Subscriptions table\n- `amount`: Transaction amount\n- `currency`: Currency code\n- `transaction_date`: Date of transaction\n- `status`: Transaction status\n- `payment_provider`: Payment provider name\n- `payment_reference`: Reference from payment provider\n- `invoice_url`: URL to invoice\n\n#### PremiumFeatureUsage\n- `usage_id` (PK): Unique identifier\n- `user_id` (FK): Reference to Users table\n- `feature_id` (FK): Reference to PremiumFeatures table\n- `usage_count`: Number of times feature was used\n- `last_used`: When feature was last used\n- `remaining_quota`: Remaining usage quota, if applicable\n\n#### PremiumFeatures\n- `feature_id` (PK): Unique identifier\n- `name`: Feature name\n- `description`: Feature description\n- `category`: Feature category\n- `quota_period`: Period for quota (daily, monthly)\n- `quota_amount`: Amount of quota\n- `is_active`: Boolean indicating if feature is active\n\n## 6. Content Database\n\nThe Content Database stores educational content, courses, and learning resources.\n\n### Tables\n\n#### Courses\n- `course_id` (PK): Unique identifier\n- `title`: Course title\n- `description`: Course description\n- `provider_id` (FK): Reference to CourseProviders table\n- `skill_id` (FK): Reference to Skills table\n- `level`: Course difficulty level\n- `duration_hours`: Duration in hours\n- `price`: Course price\n- `currency`: Currency code\n- `is_free`: Boolean indicating if course is free\n- `url`: URL to course\n- `image_url`: URL to course image\n- `rating`: Average rating\n- `reviews_count`: Number of reviews\n- `enrollment_count`: Number of enrollments\n\n#### CourseProviders\n- `provider_id` (PK): Unique identifier\n- `name`: Provider name\n- `description`: Provider description\n- `website`: Provider website\n- `logo_url`: URL to provider logo\n- `is_verified`: Boolean indicating if provider is verified\n\n#### UserCourseEnrollments\n- `enrollment_id` (PK): Unique identifier\n- `user_id` (FK): Reference to Users table\n- `course_id` (FK): Reference to Courses table\n- `enrollment_date`: Date of enrollment\n- `completion_date`: Date of completion\n- `completion_percentage`: Percentage completed\n- `certificate_url`: URL to completion certificate\n- `user_rating`: User's rating of course\n- `user_review`: User's review of course\n\n#### MarketInsights\n- `insight_id` (PK): Unique identifier\n- `title`: Insight title\n- `description`: Insight description\n- `category`: Insight category\n- `content`: Insight content\n- `publish_date`: Date published\n- `expiration_date`: Date insight expires\n- `is_premium`: Boolean indicating if insight is premium content\n- `view_count`: Number of views\n\n#### SalaryData\n- `data_id` (PK): Unique identifier\n- `job_title`: Job title\n- `industry_id` (FK): Reference to Industries table\n- `location_id` (FK): Reference to Locations table\n- `experience_level`: Experience level\n- `salary_min`: Minimum salary\n- `salary_max`: Maximum salary\n- `salary_median`: Median salary\n- `salary_currency`: Currency code\n- `data_source`: Source of data\n- `sample_size`: Sample size for data\n- `last_updated`: When data was last updated\n\n## 7. Analytics Database\n\nThe Analytics Database aggregates data for reporting and analysis.\n\n### Tables\n\n#### UserAnalytics\n- `analytics_id` (PK): Unique identifier\n- `user_id` (FK): Reference to Users table\n- `login_count`: Number of logins\n- `average_session_duration`: Average session duration\n- `last_30d_activity_days`: Days active in last 30 days\n- `job_views_count`: Number of job views\n- `search_count`: Number of searches\n- `application_count`: Number of applications\n- `application_completion_rate`: Application completion rate\n- `interview_rate`: Interview success rate\n- `offer_rate`: Offer success rate\n- `course_enrollment_count`: Number of course enrollments\n- `course_completion_rate`: Course completion rate\n\n#### JobAnalytics\n- `analytics_id` (PK): Unique identifier\n- `job_id` (FK): Reference to Jobs table\n- `view_count`: Number of views\n- `application_count`: Number of applications\n- `application_to_view_ratio`: Ratio of applications to views\n- `qualified_applicants_count`: Number of qualified applicants\n- `average_applicant_rating`: Average applicant rating\n- `time_to_fill`: Days to fill position\n- `view_sources`: JSON with view sources\n- `application_sources`: JSON with application sources\n\n#### CompanyAnalytics\n- `analytics_id` (PK): Unique identifier\n- `company_id` (FK): Reference to Companies table\n- `profile_views`: Number of company profile views\n- `job_views`: Number of company job views\n- `application_count`: Number of applications to company jobs\n- `average_response_time`: Average time to respond to applications\n- `employer_rating`: Average employer rating\n- `engagement_metrics`: JSON with engagement metrics\n\n#### PlatformMetrics\n- `metric_id` (PK): Unique identifier\n- `date`: Date of metrics\n- `active_users`: Number of active users\n- `new_registrations`: Number of new registrations\n- `premium_conversions`: Number of premium conversions\n- `job_postings`: Number of new job postings\n- `applications`: Number of applications\n- `search_queries`: Number of search queries\n- `revenue`: Daily platform revenue\n- `user_retention_rate`: User retention rate\n\n#### SearchAnalytics\n- `analytics_id` (PK): Unique identifier\n- `date`: Date of analytics\n- `search_term`: Search term\n- `search_count`: Number of searches\n- `result_count_avg`: Average number of results\n- `click_through_rate`: Click-through rate\n- `conversion_rate`: Conversion rate to applications\n- `average_position_clicked`: Average position of clicked results\n\n#### RecommendationPerformance\n- `performance_id` (PK): Unique identifier\n- `user_id` (FK): Reference to Users table\n- `recommendation_type`: Type of recommendation\n- `impressions`: Number of impressions\n- `clicks`: Number of clicks\n- `applications`: Number of applications from recommendations\n- `algorithm_version`: Version of recommendation algorithm\n- `accuracy_score`: Algorithm accuracy score\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frahulsamant37%2Fjob-chatbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frahulsamant37%2Fjob-chatbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frahulsamant37%2Fjob-chatbot/lists"}