IAM Job Scout
A FastAPI job board that pulls IAM roles from three job APIs, de-duplicates them with fuzzy matching, filters out senior titles, and ships with Prometheus metrics, a Grafana dashboard and Docker Compose deployment.
Build an automated, production-grade web application that helps junior to mid-level Identity & Access Management (IAM) professionals discover relevant job opportunities across the USA. The application automatically searches for IAM job postings using multiple job APIs (JSearch, Adzuna, and RemoteOK) with intelligent deduplication, filters out senior positions, and presents them in a clean, searchable interface with smart filtering and monitoring capabilities.
Core Technologies & Stack
Python · FastAPI · Jinja2 Templates · TailwindCSS · SQLite · PostgreSQL · APScheduler · Prometheus · Grafana · Docker · Docker Compose · JSearch API · Adzuna API · RemoteOK API
Key Features
- Multi-API Integration: Searches JSearch (Indeed, LinkedIn, Glassdoor), Adzuna, and RemoteOK concurrently for comprehensive job coverage across multiple platforms
- Smart Deduplication: Uses fuzzy matching algorithms to automatically eliminate duplicate job listings from different sources
- Smart Job Filtering: Automatically excludes senior/advanced roles while focusing on junior to mid-level positions (0-5 years experience)
- Full-Text Search: Search across job title, company name, and description with real-time results
- Location Filtering: Geographic filtering to find jobs in specific regions
- Multiple Sorting Options: Sort by newest, oldest, relevance, or company name
- Job Status Tracking: Mark jobs as saved, applied, or hidden to manage your application process
- Auto-Cleanup: Jobs older than 30 days are automatically removed to keep listings fresh
- Scheduled Scanning: Configurable automatic job searches (default: Monday/Wednesday/Saturday)
- Similar Job Suggestions: View related opportunities when viewing job details
- Admin Panel: Secure, password-protected admin interface for manual job scanning
- Demo Mode: Works without API keys using sample data for testing
- API Token Protection: Secure endpoints for cron-triggered operations
- Production Monitoring: Built-in Prometheus metrics and Grafana dashboard support
Intelligent Filtering Logic
Excluded Keywords (Senior Roles): senior, sr, principal, architect, lead, manager, director, head, vp, staff, distinguished, chief
Included Keywords (Junior/Mid Roles): analyst, associate, administrator, engineer, specialist, iam, identity, okta, entra, azure ad, sso, saml, oidc, scim, iga, pam, sailpoint, saviynt, ping, cyberark
Experience Filters: Include 0-5, 1-3, 2-4, 3-5 years | Exclude 7+, 10+, 12+ years
Production-Grade Monitoring & Observability
Application Performance Metrics
HTTP request duration histograms (p50, p95, p99), request rate by endpoint, error rate tracking, and concurrent request monitoring
Business Metrics
Total jobs in database, new jobs this week, saved/applied job tracking, scan success rate, and last successful scan timestamp
Database & System Metrics
Query duration tracking, active connection pool utilization, database operations by type, memory usage, and Python garbage collection metrics
API Endpoints & Architecture
Public Endpoints: Main job board with search/filters, individual job details, admin login, JSON API for jobs/stats, health check, Prometheus metrics
Protected Endpoints (Session Auth or API Token): Manual job scan trigger, automatic cleanup of old jobs (30+ days)
Deployment Options
Render (Recommended)
Easiest deployment with built-in cron job support, automatic HTTPS, and zero-config environment
Fly.io
Docker-based deployment with generous free tier and global edge network support
VPS
Full control deployment on DigitalOcean, AWS Lightsail, or Ubuntu Server with Docker Compose
Security Features
- Password-Protected Admin Panel: Secure authentication for manual job scanning operations
- API Token Authentication: X-ADMIN-TOKEN header validation for cron job endpoints
- Session Secret Encryption: Secure session management with cryptographic session keys
- Environment Variable Configuration: Sensitive credentials stored outside codebase
- Production Security Recommendations: Documented best practices for secure deployment
Technical Highlights & Best Practices
FastAPI Modern Python Backend
Production Monitoring Stack
Automated Job Scheduling
Containerized Architecture
Flexible Database Support
Comprehensive Documentation
Quick Start Guide - Get monitoring running in 10 minutes
Complete Monitoring Guide - Comprehensive documentation with examples
Architecture Diagram - Visual guide to monitoring setup
Docker Networking Guide - Tips for container deployments
Prometheus Configuration Examples - Ready-to-use configs
Alert Rules - Production-ready alerting setup
What it looks like when it is actually configured.
Screenshots from the build, named and captioned so each one can be traced to the configuration it proves.
