Image Generated by DELL-E
As a active job seeker, I recognized a gap in the market for a tool that candidates could use to better align their resumes with job descriptions.
While the majority of recruiters rely on Applicant Tracking Systems (ATS) to filter candidates, these systems are often not transparent to the job seeker. Many of the existing tools for candidates are either subpar in quality or prohibitive in cost.
To address this, I've crafted a serverless application that harnesses the natural language processing (NLP) capabilities of OpenAI's GPT-4. This solution aims to empower job seekers with deep insights into how well their resume matches a job description and what skills they need to highlight or develop.
Core Functionalities of the Application
- Automated Resume Analysis: Users can upload their resume in PDF format to an S3 bucket. The system will parse the resume and compare it against a provided job description.
- Interactive Feedback: Through the integration with GPT-4, the application can offer users up to five detailed feedback sessions within a 24-hour period.
- Dynamic Context Management: By utilizing DynamoDB, the application maintains the context of each user session, enabling a more nuanced and accurate analysis over multiple interactions.
- Security and Compliance: All sensitive data, including the OpenAI API key, are securely managed through AWS Secret Manager to ensure data privacy and security.
- Customizable Parameters: The solution offers flexibility and can be tailored to specific needs through a configuration file that dictates model parameters and behavior.
Why Use AWS Serverless Architecture?
I chose to build this application using AWS's serverless offerings for several reasons:
- Scalability: Serverless functions, such as AWS Lambda, automatically scale based on demand.
- Cost-Effectiveness: You pay only for the compute time you consume, with no charge when your code is not running.
- Ease of Deployment: With AWS SAM (Serverless Application Model), I can define the application's infrastructure as code, making it reproducible and easy to deploy.
Getting Started with the Application
Prerequisites
Before you can deploy and use this application, you need to have:
- An AWS account with administrative access to Lambda, S3, DynamoDB, and Secrets Manager.
- AWS SAM CLI installed on your local development machine.
- An OpenAI API key for accessing GPT-4, which should be secured in AWS Secret Manager.
- Python 3.8+, which is the runtime our Lambda function depends on.
Deployment Steps
- Clone the application repository:
git clone https://github.com/amitraikkr/aws-serverless-skillscan-app.git cd aws-serverless-skillscan-app
- Use AWS SAM to build the application:
sam build
- Deploy your application stack:
sam deploy --guided
This step will set up your Lambda functions, API Gateway, S3 buckets, and DynamoDB tables as defined in your SAM template.
Using the Application
Once deployed:
- Upload your resume to the specified S3 bucket with the naming convention
resume_userid.pdf
. - Trigger the analysis by invoking the Lambda function, API Gateway (need to create it manually & link with Lambda), either through the AWS Management Console or using the AWS CLI/SDKs:
{
"userId": "unique_user_id",
"jobDescription": "Text of the job description here."
}
- The application will return a compatibility score and a detailed breakdown of skills and areas for improvement.
Limitations
To maintain a high level of service and avoid abuse, the application limits users to 5 analysis requests within a 24-hour period.
Future Enhancements
The architecture of this application allows for future enhancements, such as the development of a front-end interface for users to interact with the system more seamlessly, or the introduction of additional analytics features.
This application not only aids candidates in optimizing their resumes but also educates them on the nuances of job descriptions, ultimately leading to more fruitful employment opportunities.