← Back to all projects

Jobs/Contracts

Jobs/Contracts project screenshot

AI-powered automated job application platform that intelligently finds, evaluates, and applies to contract jobs. Features multi-site scraping, AI-based scoring, automated applications, geolocation analysis, and professional cover letter generation.

Technology

backendpythonflasksqlalchemy
databasemysql
devopsdockertornado
toolsplaywrightseleniumvllmnltkspacyweasyprintnominatimosrmapscheduler

Contracts - Automated Job Application Platform

Contracts is a comprehensive, AI-powered platform that automates the entire lifecycle of finding, evaluating, and applying to contract jobs. It combines intelligent job scraping, AI-based scoring, automated applications, geolocation analysis, and professional cover letter generation into a unified system.

The platform saves significant time by automatically filtering thousands of job listings, identifying the most relevant opportunities, and handling application submissions—all while learning and optimizing search strategies through AI feedback.

🚀 Core Functionality

Intelligent Job Discovery

  • Scrapes job postings from multiple sources (TotalJobs, Adzuna, Indeed, Reed, CV-Library, Jobsite)
  • Uses AI to generate optimized Boolean search queries
  • Browser extension for manual job tracking and coloring
  • Anti-bot handling with proxy rotation and TLS client

AI-Powered Evaluation

  • Processes your CV to extract skills and expertise
  • Scores jobs using hybrid AI (LLM primary + NLTK fallback)
  • Multi-stage filtering: job title fuzzy matching → salary → drive time → skills → AI scoring
  • Recommends best matches based on customizable thresholds

Geographic Intelligence

  • Converts job locations to coordinates via Nominatim
  • Calculates drive times using OSRM routing engine
  • Filters jobs by maximum acceptable commute time
  • Caches results for fast repeated lookups (20× faster with caching)

Automated Applications

  • Auto-applies to TotalJobs ApplyExpress positions
  • Handles authentication, form filling, and submission
  • Tracks application status in database
  • Extensible framework for additional job sites

Professional Document Generation

  • AI-powered cover letter generation using LLM
  • Professional PDF templates with custom branding
  • Smart GB-style greeting/sign-off logic
  • WeasyPrint rendering for high-quality PDFs

Centralized Dashboard

  • Flask web interface for managing jobs
  • User authentication (email/password, Google OAuth, Facebook OAuth)
  • Job organization: Applied, Not Applied, Guarded, Bin folders
  • Email notifications and verification

Learning & Optimization

  • Tracks which search queries find relevant jobs
  • Logs scoring performance (LLM vs NLTK)
  • Learns from user preferences and application history
  • Continuous improvement through feedback loops

🛠️ Technology Stack

Backend

  • Python 3.10+: Core language
  • Flask 3.1.1: Web framework
  • SQLAlchemy 2.0.42: ORM for database operations
  • MySQL 8.0: Primary database

Web Scraping & Automation

  • Playwright 1.54.0: Browser automation
  • Selenium 4.32.0: Alternative browser automation
  • requests 2.32.5+: HTTP client
  • aiohttp 3.12.14+: Async HTTP client
  • tls-client 1.0.1: TLS client for anti-bot measures
  • BeautifulSoup4 4.13.5: HTML parsing

AI & Natural Language Processing

  • vLLM: Self-hosted LLM inference
    • Models: Qwen2.5-Coder-32B-Instruct-AWQ, Llama-3.1-70B-Instruct
  • NLTK 3.9.1: Natural language processing
  • spaCy 3.8.0+: Advanced NLP
  • rapidfuzz 3.14.3: Fuzzy string matching
  • scikit-learn 1.7.2: Machine learning utilities

Document Processing

  • pypdf 6.1.3: PDF processing
  • python-docx 1.2.0: Word document processing
  • WeasyPrint 66.0: PDF generation
  • Jinja2 3.1.6: Template engine

Geolocation & Mapping

  • Nominatim: OpenStreetMap geocoding
  • OSRM: Open Source Routing Machine for drive time calculations
  • geopy 2.4.1: Geocoding library

Infrastructure

  • APScheduler 3.10.4: Background task scheduling
  • Flask-Login 0.6.3: User session management
  • Flask-Mail 0.10.0: Email functionality
  • Flask-CORS 6.0.0: Cross-origin resource sharing
  • Tornado 6.5+: Web server

Security

  • Flask-Bcrypt 1.0.1: Password hashing
  • reCAPTCHA v3: Bot protection
  • pyOpenSSL 25.3.0: SSL/TLS support

📊 Architecture

The platform consists of multiple layers:

  • Job Ingestion Layer: Multi-site scrapers, intelligent search, browser extension
  • Job Enrichment Layer: Geocoding, drive time calculation, proxy rotation
  • Evaluation & Matching Layer: CV processing, multi-stage filtering, hybrid AI scoring
  • Application Layer: Automated applications with browser automation
  • Document Generation Layer: AI-powered letter writing with professional PDF templates
  • LLM Infrastructure: Local and remote GPU deployments for AI inference

🎯 Key Benefits

  • Time Savings: Automatically filters thousands of irrelevant job ads
  • Intelligence: AI-powered matching based on skills and preferences
  • Automation: Hands-free application to suitable positions
  • Optimization: Learns and improves search strategies over time
  • Context: Geographic awareness with drive time calculations
  • Professionalism: Generates polished, branded cover letters
  • Reliability: Proxy rotation bypasses anti-scraping measures
  • Centralization: Single dashboard for entire job search process