Cybersecurity jobs aggregator bot with ranking system, Egypt-focused filtering, and automated Telegram delivery via GitHub Actions.
# Cybersecurity Jobs Bot — v53
> **v53: LinkedIn-first, Egypt-priority, noise-reduced Greenhouse, 4-layer URL dedup.**
## What's New in v53
| Fix | Description |
|-----|-------------|
| ✅ **`Threat Intelligence Researcher` false-reject fixed** | Pattern now in `intelligence/patterns.py` SOC domain |
| ✅ **LinkedIn Egypt CORE queries expanded** | +6 Egypt queries, Arabic queries, Alexandria/Giza/Mansoura |
| ✅ **LinkedIn budget increased** | 300s (was 240s), 0.65 rps (was 0.55), 5 concurrency (was 4) |
| ✅ **LinkedIn EXPANSION queries expanded** | +12 queries: Arabic, security specializations, more remote |
| ✅ **Wazzif (وظف) added** | New Egyptian job board, priority 19 |
| ✅ **Akhtaboot Egypt added** | MENA regional board with Egypt filter, priority 19 |
| ✅ **DrJobPro + Forasna added** | Egypt-specific boards via `sources/egypt_boards.py` |
| ✅ **Greenhouse Big Tech reduced** | From 21 → 7 companies (only security-heavy ones kept) |
| ✅ **Greenhouse Cybersec expanded** | From 11 → 27 dedicated security vendors |
| ✅ **Greenhouse double-fetch fixed** | `expanded_sources.GREENHOUSE_TIER1` emptied (was duplicating `greenhouse_expanded`) |
| ✅ **Per-batch Greenhouse budget** | Cybersec=120s, BigTech=60s, SaaS=60s — prevents budget blowout |
| ✅ **URL-normalized dedup layer added** | Catches same job from different source keys (Layer 1 enhancement) |
| ✅ **Khamsat + Freelancer in registry** | Now official sources in `source_registry.py` Tier 3 |
| ✅ **Truelancer feeds expanded** | +3 RSS feeds (pentesting, info-sec, security-audit) |
| ✅ **Source priority order** | LinkedIn → Official Careers → Greenhouse/direct ATS → Indeed → regional boards → freelance → remote/discovery |
A Telegram bot that automatically scrapes, filters, deduplicates, scores, and routes
cybersecurity job listings to dedicated topic channels. Runs on GitHub Actions every
3 hours with zero infrastructure cost.
---
## Architecture
```
GitHub Actions (cron: */3h)
│
▼
main.py ─── Async fetch ── …