Inspiration We noticed how time-consuming and inefficient it is for HR teams to manually screen hundreds of resumes. Many talented candidates are overlooked simply due to volume. We wanted to build a solution that could automate resume analysis and match candidates based on skills, using the power of serverless AWS technologies and AI tools.
What it does
- Automatically triggers when a resume is uploaded to an S3 bucket
- Extracts resume content using Amazon Textract
- Compares the extracted skills with a predefined job description
- Calculates a match score using keyword-based AI logic
- Stores all results in Amazon DynamoDB for easy retrieval and future processing
How we built it
- Built the backend logic as an AWS Lambda function in Python
- Used Amazon S3 to upload and store resumes, and to trigger the Lambda
- Integrated Amazon Textract to extract raw text from resumes in .pdf and .png formats
- Developed a lightweight scoring engine to compare candidate skills against the JD
- Stored processed data including match scores and metadata in DynamoDB
- Used CloudWatch for logging and monitoring function activity
Challenges we ran into
- Textract was extremely picky with file formats — we had to refine our resume inputs to ensure compatibility
- Debugging Lambda logs and managing IAM roles across services took effort
- Designing a meaningful scoring system that balances simplicity with accuracy was tricky
- Making sure the whole flow remained truly serverless and scalable
Accomplishments that we're proud of
- We successfully built a fully serverless resume screening system using only AWS tools
- Overcame Textract-related input issues and built a working PDF/image pipeline
- Achieved seamless integration between S3, Lambda, Textract, and DynamoDB
- Laid the foundation for a production-ready screening system for HR teams
- Learned how to create scalable serverless apps that use real AI tools
What we learned
- In-depth knowledge of AWS Lambda event handling and trigger flows
- Hands-on with Amazon Textract, including its limitations and practical usage
- How to design serverless logic that’s modular, monitorable, and efficient
- The importance of error handling, proper logging, and permissions in cloud applications
- Building useful, real-world solutions with minimal infrastructure
What's next for HR Resume Screener (AI + Serverless)
- Add Amazon Comprehend to extract named entities (skills, locations, experience) for smarter scoring
- Support dynamic job description input from HR teams
- Build a React or Angular dashboard UI to browse shortlisted candidates
- Integrate with email or Slack notifications for candidate alerts
- Make it a plug-and-play tool for small companies and startups
Built With
- amazon-cloudwatch
- amazon-dynamodb
- github
- iam
- lamda
- python
- s3
- textract
Log in or sign up for Devpost to join the conversation.