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:
- Initial Submission: Applicant uploads their resume.
- 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:
-
Clone the repository:
git clone <repository-url> cd django-career-app
-
Create and activate a virtual environment:
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
-
Configure Environment Variables:
- This project uses a
.envfile to manage environment-specific settings. - Copy the example file:
cp .env.example .env
- Edit the
.envfile 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 toTruefor development,Falsefor 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
.envfile is included in.gitignoreand should not be committed to your repository.
- This project uses a
-
Install dependencies: This project uses a
requirements.txtfile to manage its dependencies.pip install -r requirements.txt
Note: If
requirements.txtdoes not exist, you may need to create it based on the project's imports or Django version. -
Apply database migrations:
python manage.py migrate
-
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.
-
Copy App Directory:
- Copy the
careersdirectory (located atcareer_portal/careersin this repository) into your existing Django project. A common location is the root of your project, alongside other apps.
- Copy the
-
Add to INSTALLED_APPS:
- In your existing project's
settings.pyfile, add'careers.apps.CareersConfig'to theINSTALLED_APPSlist.INSTALLED_APPS = [ # ... other apps 'careers.apps.CareersConfig', # ... or 'careers', if you prefer the shorter version ]
- In your existing project's
-
Include App URLs:
- In your existing project's main
urls.pyfile (usually located in the project's configuration directory), include thecareersapp'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.).
- In your existing project's main
-
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,
litellmfor LLM interaction, andjson-repairfor handling LLM responses. Reviewrequirements.txtcarefully.
- This app's dependencies are listed in
-
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 careerscommand might not be necessary initially if you are using the migrations already present in the copiedcareers/migrationsfolder and no model changes have been made. However, it's good practice if you intend to modify the app's models.migratewill apply the app's migrations to your database.
- After adding the app and ensuring dependencies are met, run database migrations:
-
Collect Static Files (If applicable):
- If the
careersapp 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_ROOTin yoursettings.py.
- If the
(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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aaa2fc2755658818ea58ecd0427b9ddbf4785deff29e3c4357f4d721d2ddf31b
|
|
| MD5 |
673d864f1f02098d842ae35f3e488141
|
|
| BLAKE2b-256 |
48d318c46fb8112dbcb33be3bafc026c1fb87026d072409688b0ac762768d614
|
Provenance
The following attestation bundles were made for django_career_app-0.1.0.tar.gz:
Publisher:
workflow.yml on t6830/django-career-app
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
django_career_app-0.1.0.tar.gz -
Subject digest:
aaa2fc2755658818ea58ecd0427b9ddbf4785deff29e3c4357f4d721d2ddf31b - Sigstore transparency entry: 225825915
- Sigstore integration time:
-
Permalink:
t6830/django-career-app@b1c321ce31b49459bc95b1b1a9e7ef80fb7ddb05 -
Branch / Tag:
refs/tags/0.1.0 - Owner: https://github.com/t6830
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@b1c321ce31b49459bc95b1b1a9e7ef80fb7ddb05 -
Trigger Event:
release
-
Statement type:
File details
Details for the file django_career_app-0.1.0-py3-none-any.whl.
File metadata
- Download URL: django_career_app-0.1.0-py3-none-any.whl
- Upload date:
- Size: 60.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ffa784819591b70d0bcbb5c03b2f78a8429804eb547bca41f47d40a40a3ed694
|
|
| MD5 |
b450fb5ba0500c769d5956db73ce246f
|
|
| BLAKE2b-256 |
e281b59e0bffa63248333b339291b6fe389578eb00521f58f71762230174254e
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
django_career_app-0.1.0-py3-none-any.whl -
Subject digest:
ffa784819591b70d0bcbb5c03b2f78a8429804eb547bca41f47d40a40a3ed694 - Sigstore transparency entry: 225825916
- Sigstore integration time:
-
Permalink:
t6830/django-career-app@b1c321ce31b49459bc95b1b1a9e7ef80fb7ddb05 -
Branch / Tag:
refs/tags/0.1.0 - Owner: https://github.com/t6830
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@b1c321ce31b49459bc95b1b1a9e7ef80fb7ddb05 -
Trigger Event:
release
-
Statement type: