Skip to content
Personal

Hospital Job Alert Service

2024-08-02 — 2024-08-14

Serverless backend service that automatically collects job postings from 4 university hospitals and delivers keyword-based email notifications

Hospital Job Alert Service project cover image

Project Description

Built to eliminate the hassle of manually checking multiple hospital career sites for medical job seekers. The service automatically scrapes job postings from 4 university hospitals (Severance, Ewha, Chung-Ang, etc.) every hour and sends email notifications when new postings match subscriber-registered keywords. Applied the Strategy pattern to handle varying hospital site structures — separating API-based scraping and Puppeteer browser automation per hospital. Ensured email delivery reliability through pessimistic locking and retry logic on the notification queue.

Highlights

  • Hourly automated collection from 4 hospitals with Strategy pattern
  • Pessimistic locking on notification queue preventing duplicate sends
  • Dual deployment: Docker on EC2 + Serverless Framework on Lambda
  • GitHub Actions CI/CD with automated post-deploy health checks

Features

  • Automated scraping of 4 university hospital job postings (hourly cron scheduling)
  • Strategy pattern per hospital — API-based (Severance, Ewha, Chung-Ang) + Puppeteer browser automation (Chung-Ang Heukseok)
  • Email notifications for new postings matching subscriber keywords
  • Notification queue management — pessimistic locking, batch processing (10), up to 3 retries on failure
  • Duplicate post filtering via external ID
  • Subscription management API (keyword registration per hospital)

Lessons Learned

  • 💡 Achieved scraping logic extensibility and maintainability by applying Strategy pattern to handle varying hospital site structures
  • 💡 Designed extensible architecture enabling new hospital additions without modifying existing code through runtime algorithm switching
  • 💡 Experienced dual deployment architecture combining EC2 persistent server with Lambda serverless for cost efficiency and reliability
  • 💡 Ensured deployment reliability through GitHub Actions CI/CD pipeline with automated post-deploy health checks

Tech Stack

NestJS TypeScript PostgreSQL TypeORM Puppeteer Cheerio Nodemailer Docker AWS EC2 AWS RDS AWS Lambda Serverless Framework

Project Images