This Laravel application provides an automated resume screening process for job applications. It uses AI-powered services to assess resumes and manage the application workflow.
- Resume upload and storage
- PDF text extraction
- AI-powered resume screening
- Automated email notifications for successful and rejected applicants
- Integration with OpenAI and SendGrid services
- PHP 7.4+
- Laravel 8.x+
- Composer
- OpenAI API key
- SendGrid API key
-
Clone the repository:
git clone https://github.com/yourusername/resume-screening-app.git
-
Install dependencies:
composer install
-
Copy
.env.example
to.env
and configure your environment variables:cp .env.example .env
-
Generate application key:
php artisan key:generate
-
Configure your database in the
.env
file. -
Run migrations:
php artisan migrate
To start the Laravel development server, run the following command in your terminal:
php artisan serve
This will start the server, typically at http://localhost:8000
. You can now access the application by visiting this URL in your web browser.
Ensure you set the following environment variables in your .env
file:
OPENAI_API_KEY
: Your OpenAI API keySENDGRID_API_KEY
: Your SendGrid API keyRECRUITER_EMAIL
: Email address of the recruiter to receive successful applications
The main functionality is handled by the ResumeController
. Here's a brief overview of its methods:
uploadResume
: Handles the resume upload processscreenResume
: Processes the uploaded resume using AI servicesextractTextFromPdf
: Extracts text content from uploaded PDF resumes
The application uses the following services:
OpenAIService
: Interacts with the OpenAI APIRAGService
: Implements the Retrieval-Augmented Generation (RAG) process for resume screeningSendGridService
: Manages email notifications using SendGrid
Errors are logged using Laravel's built-in logging system. Check the Laravel log files for any issues during the resume screening process.
Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
This project is licensed under the MIT License - see the LICENSE.md file for details.