Skip to main content

A Django project for a career portal.

Project description

django-career-app

A Django-based platform designed to streamline the job application process for both applicants and recruiters, leveraging AI for resume analysis and scoring.

Features

  • Browse Job Postings: Users can view a list of available job openings, including details like title and location.
  • Detailed Job View: Each job posting has a dedicated page showing a full description, requirements, and department (if applicable).
  • Resume Upload (PDF): Applicants can easily submit their resume in PDF format.
  • Automated Resume Parsing: Utilizes Large Language Models (LLMs) to automatically extract key information from uploaded resumes, including:
    • Contact details (full name, email, phone, LinkedIn).
    • Latest education (degree, school, major, graduation year).
    • Recent work experience (job title, company).
    • Top achievements and differentiating skills as "tags".
  • AI-Powered Resume Scoring: Resumes are automatically scored against the specific job description and its weighted requirements using LLMs, providing an initial assessment of fit.
  • Two-Step Application Process:
    1. Initial Submission: Applicant uploads their resume.
    2. Review & Finalize: Applicant reviews the LLM-parsed data and AI score, can edit details, and confirms their application.
  • User Account Management:
    • Automatic user account creation for new applicants using their email.
    • Links application to existing user accounts if the email is already registered.
    • Secure password handling for user accounts.
  • Data Management: Stores and manages company profiles, job postings, applicant data, and application records.
  • Secure Application Handling: Ensures user data and application details are handled securely throughout the process.

Installation

To get this application up and running, follow these steps:

  1. Clone the repository:

    git clone <repository-url>
    cd django-career-app
    
  2. Create and activate a virtual environment:

    python -m venv venv
    source venv/bin/activate  # On Windows use `venv\Scripts\activate`
    
  3. Configure Environment Variables:

    • This project uses a .env file to manage environment-specific settings.
    • Copy the example file:
      cp .env.example .env
      
    • Edit the .env file and update the following variables with your specific settings:
      • GEMINI_API_KEY: Your API key for the Gemini LLM (or other LLM provider if configured).
      • SECRET_KEY: Your Django secret key. Generate a new one for production.
      • DEBUG: Set to True for development, False for production.
      • DATABASE_URL: (Optional) If you are using a database other than the default SQLite, configure its URL here (e.g., postgres://user:password@host:port/dbname).
    • Note: The .env file is included in .gitignore and should not be committed to your repository.
  4. Install dependencies: This project uses a requirements.txt file to manage its dependencies.

    pip install -r requirements.txt
    

    Note: If requirements.txt does not exist, you may need to create it based on the project's imports or Django version.

  5. Apply database migrations:

    python manage.py migrate
    
  6. Create a superuser (optional, for admin access):

    python manage.py createsuperuser
    

Usage

Once the installation is complete, you can run the Django development server:

python manage.py runserver

The application will typically be accessible at http://127.0.0.1:8000/ in your web browser.

Integrating as a Django App

This section details how to integrate the careers app into your existing Django project.

  1. Copy App Directory:

    • Copy the careers directory (located at career_portal/careers in this repository) into your existing Django project. A common location is the root of your project, alongside other apps.
  2. Add to INSTALLED_APPS:

    • In your existing project's settings.py file, add 'careers.apps.CareersConfig' to the INSTALLED_APPS list.
      INSTALLED_APPS = [
          # ... other apps
          'careers.apps.CareersConfig',
          # ... or 'careers', if you prefer the shorter version
      ]
      
  3. Include App URLs:

    • In your existing project's main urls.py file (usually located in the project's configuration directory), include the careers app's URL patterns.
      from django.urls import path, include
      
      urlpatterns = [
          # ... other project urls
          path('your_desired_path/', include('careers.urls')),
          # Example: path('career-portal/', include('careers.urls')),
      ]
      
    • Make sure to replace 'your_desired_path/' with the actual URL prefix you want to use for this app (e.g., careers/, jobs/, etc.).
  4. Install Dependencies:

    • This app's dependencies are listed in requirements.txt. Compare this file with your existing project's dependencies.
    • Install any missing packages, being mindful of potential version conflicts. You might need to adjust versions to ensure compatibility with your project.
      pip install -r requirements.txt # Run this if you've copied requirements.txt to your project
      # Or, install specific packages:
      # pip install Django==4.2.21 # Example, ensure compatibility
      # pip install litellm json-repair # Key dependencies for LLM features
      
    • Key dependencies for this app include Django, litellm for LLM interaction, and json-repair for handling LLM responses. Review requirements.txt carefully.
  5. Run Database Migrations:

    • After adding the app and ensuring dependencies are met, run database migrations:
      python manage.py makemigrations careers
      python manage.py migrate
      
    • The makemigrations careers command might not be necessary initially if you are using the migrations already present in the copied careers/migrations folder and no model changes have been made. However, it's good practice if you intend to modify the app's models. migrate will apply the app's migrations to your database.
  6. Collect Static Files (If applicable):

    • If the careers app uses static files (CSS, JavaScript, images) that need to be served by your project, run:
      python manage.py collectstatic
      
    • This will gather all static files into the directory specified by STATIC_ROOT in your settings.py.

(Note: The "Features (Example)" section from the old README has been removed as it's now replaced by the comprehensive "Features" section above.)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_career_app-0.1.0.tar.gz (49.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_career_app-0.1.0-py3-none-any.whl (60.7 kB view details)

Uploaded Python 3

File details

Details for the file django_career_app-0.1.0.tar.gz.

File metadata

  • Download URL: django_career_app-0.1.0.tar.gz
  • Upload date:
  • Size: 49.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for django_career_app-0.1.0.tar.gz
Algorithm Hash digest
SHA256 aaa2fc2755658818ea58ecd0427b9ddbf4785deff29e3c4357f4d721d2ddf31b
MD5 673d864f1f02098d842ae35f3e488141
BLAKE2b-256 48d318c46fb8112dbcb33be3bafc026c1fb87026d072409688b0ac762768d614

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_career_app-0.1.0.tar.gz:

Publisher: workflow.yml on t6830/django-career-app

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file django_career_app-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for django_career_app-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ffa784819591b70d0bcbb5c03b2f78a8429804eb547bca41f47d40a40a3ed694
MD5 b450fb5ba0500c769d5956db73ce246f
BLAKE2b-256 e281b59e0bffa63248333b339291b6fe389578eb00521f58f71762230174254e

See more details on using hashes here.

Provenance

The following attestation bundles were made for django_career_app-0.1.0-py3-none-any.whl:

Publisher: workflow.yml on t6830/django-career-app

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page