job posting analyzer

View Repository

What it is

The Job Posting Analyzer Application is a serverless solution designed to streamline the job application process by automating the extraction and analysis of job postings. Users can upload job postings in PDF format, which are then processed using advanced AWS services, including Amazon Textract and Amazon Comprehend. The application extracts relevant keywords, matches them against user-defined skills, and generates an HTML report summarizing the analysis results. This tool aims to enhance the efficiency of job seekers by providing insights into how well job postings align with their skills and qualifications.

How it's built

The application is built using a serverless architecture on AWS, leveraging Terraform for infrastructure as code (IaC). The key components include:

  • AWS Lambda Functions: These functions handle the core logic of the application, processing the uploaded job postings and managing interactions with other AWS services.
  • Amazon Textract: This service is used for extracting text and data from the uploaded PDF job postings, identifying keywords and predefined queries.
  • Amazon Comprehend: This natural language processing service analyzes the extracted keywords to determine their relevance based on user-defined criteria.
  • S3 Buckets: Used for storing both the uploaded job postings and the generated HTML reports.

The workflow begins when a user uploads a job posting, triggering a series of automated processes that culminate in a detailed report saved in an S3 bucket.

A diagram of the architecture

A screenshot of the report

A screenshot of the report

Technologies

The Job Posting Analyzer Application uses several key technologies:

  • Terraform: For provisioning and managing AWS resources.
  • AWS Lambda: To execute application logic in a serverless environment.
  • Amazon Textract: For extracting text and data from PDF documents.
  • Amazon Comprehend: For natural language processing and keyword analysis.
  • AWS S3: For storing input files (PDFs) and output reports (HTML).

Lessons learned

  • Understanding Serverless Architecture: Building a serverless application provided insights into how to leverage cloud services effectively without managing infrastructure.
  • Integrating Multiple Services: Successfully integrating various AWS services taught me about their capabilities and limitations, as well as how they can complement each other to create solutions.
  • Iterative Development: Regular testing and iteration allowed for continuous improvement of the application.