The 9-Step Autonomous Workflow
From initial role configuration to multi-portal discovery, deduplication, AI scoring, recruiter extraction, and automated delivery.
Input Job Role
Define target designations, core toolings, and location preferences (Indian IT hubs like Kochi, Bangalore, Hyderabad, Trivandrum, Pune, or Global Remote).
Search Multiple Sources
Executes parallel scraping across 13 major platforms with dedicated quotas so no single platform is starved.
Collect & Normalize
Converts unstructured HTML, JSON feeds, and ATS tables into a clean, unified data model with sanitized company and salary fields.
Remove Duplicates
Computes deterministic MD5 fingerprint hashes of company, title, and location to eliminate duplicate postings across cross-listed portals.
AI Job Analysis
Parses the full job description using Groq / Llama 3.3 70B, Google Gemini, or GPT-4o-mini to extract skills, seniority, and cloud architecture requirements.
Skill Matching & Score
Evaluates alignment between candidate profile and job requirements, calculating a 0–100% fit score and generating a concise match summary.
Recruiter Extraction
Extracts recruiter names, corporate HR email addresses, and phone numbers from posting bodies for direct outreach.
Generate Report & Track
Syncs to Google Sheets and generates an auto-formatted Excel workbook (.xlsx) with hyperlinks, while recording real-time application states.
Daily Notifications & Outreach
Delivers formatted HTML email digests, priority Telegram alerts for high fit (≥80%), and dispatches tailored cold pitches with attached PDF resumes via Gmail.
Used Technologies & Tools
Enterprise tools and modern cloud technologies powering end-to-end automation, high-speed scraping, and reactive user interfaces.
Automated ATS & Cold Recruiter Studio
Never duplicate an application again. The platform tracks your submissions and powers direct outreach from your browser.
Every job card dynamically checks your tracking sheet (Google Sheets & local database) using fuzzy company name normalization to prevent duplicate applications.
- Auto-Mark on Portal Click: Clicking "Apply on Portal" immediately turns the card green and marks it as applied.
- Historical Sync: Automatically links past applications (Litmus7, Urolime, Enfin, Seqato) on page load.
- 1-Click Manual Toggle: Use "+ Mark as Applied" anytime to track external submissions from your phone.
- Explorer Filters: Isolate applied jobs or click "Hide Applied" to view only fresh openings.
Turn discovered vacancies into immediate interview opportunities by emailing the hiring manager directly from the job card.
- HR Contact Discovery: Automatically scrapes recruiter names, direct emails, and phone numbers.
- AI Personalized Pitch: Generates tailored email copy mentioning 3+ years DevOps experience, Kubernetes, and CI/CD.
- Automated Resume Attachment: Delivers your PDF resume directly via the Gmail API without manual file browsing.
- Dual Fallback: Provides an instant "Open in Mail App" mailto link if you prefer your desktop email client.
Step-by-Step Installation & Setup
Complete guide to running the entire stack on AWS EC2 with Docker Compose, automated SSL certificates, and n8n webhooks.
Launch an Ubuntu 24.04 LTS instance (type t3.small or t3.medium). Configure your Security Group inbound rules to allow:
Port 22 (SSH) -> Your IP
Port 80 (HTTP) -> 0.0.0.0/0 (Caddy ACME Challenge)
Port 443 (HTTPS) -> 0.0.0.0/0 (Production Secure Web Traffic)
SSH into your EC2 instance and run the one-line Docker setup:
# Install Docker and Docker Compose v2
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
newgrp docker
# Clone repository
git clone https://github.com/Xopscloud/job-search-automation.git
cd job-search-automation
Create your environment configuration file in the project root:
# Domain & Caddy SSL
DOMAIN_NAME=devopspulse.yourdomain.com
ACME_EMAIL=your-email@gmail.com
# n8n Workflow Settings
N8N_PORT=5678
N8N_HOST=devopspulse.yourdomain.com
N8N_PROTOCOL=https
WEBHOOK_URL=https://devopspulse.yourdomain.com/
# AI Matcher API Keys (Choose one or multiple)
OPENAI_API_KEY=sk-...
GROQ_API_KEY=gsk_...
GEMINI_API_KEY=AIza...
# Email & Outreach
GMAIL_USER=your-email@gmail.com
RECIPIENT_EMAIL=your-email@gmail.com
Build and start all 4 services in detached mode:
# Build and spin up containers
docker compose up -d --build
# Verify container health
docker compose ps
# caddy Up (0.0.0.0:80, 0.0.0.0:443)
# web-app Up (3000)
# n8n Up (5678)
# scraper-service Up (8000)
Navigate to https://devopspulse.yourdomain.com in your browser. Complete n8n initial admin registration, then:
1. Go to Workflows ➔ Click Add Workflow ➔ Select Import from File.
2. Choose workflows/master_job_search_workflow.json from the repository.
3. Activate the workflow toggle in the top-right corner to start the cron schedule.
Normalized Data Schema
Standard JSON structure output by the scraper microservice and persisted to Google Sheets / Excel.
{
"job_id": "job_7a8b9c0d1e",
"title": "Senior DevOps & Cloud Engineer",
"company": "Litmus7",
"company_details": "Infopark Kochi Campus",
"location": "Kochi, Kerala (Hybrid)",
"match_score": 92,
"required_skills": ["Kubernetes", "AWS", "Terraform", "CI/CD", "Docker"],
"experience": "3 - 5 Years",
"salary": "₹12,00,000 - ₹18,00,000",
"date_posted": "2026-09-08",
"job_url": "https://infopark.in/job-details/...",
"source_website": "Infopark",
"recruiter_name": "Deepa Nair",
"recruiter_email": "careers@litmus7.com",
"recruiter_phone": "+91 484 1234567",
"match_summary": "Exceptional fit with candidate's hands-on AWS, Kubernetes, and CI/CD background.",
"is_applied": true,
"applied_on": "Sep 8, 2026"
}