Workflow overview
Why this workflow matters
Relevant for managed services and support workflows.
Job Application Status Analyser An automated AlekSystem workflow that monitors your Gmail inbox, classifies job application emails using a local AI (Ollama), and logs every application — with company, role, and status — to a Google Sheet in real-time. No cloud AI APIs. No rate limits. Fully local, fully private. How It Works Gmail ➜ Preprocess ➜ Filter Spam ➜ AI Classify (Ollama) ➜ Parse ➜ Merge ➜ Judge ➜ Google Sheets Email Ingestion — Gmail Trigger polls for new emails every minute from Primary/Updates categories. A manual backfill trigger lets you process the last 150 emails on demand. Preprocessing — Extracts subject, sender, body text, date, and application links (ATS portals like Greenhouse, Lever, Workday, etc.) from raw email data. Spam Filter — Drops newsletters, promotional digests, and sale emails via regex before they hit the AI. AI Classification — Sends each email to a local Ollama instance (Llama 3.1 8B) with a structured prompt. The AI extracts: Company name Role / job title Status — applied | rejected | interview | offer Smart Fallbacks — If the AI returns unknown: Status → 100+ keyword normalization map + regex body scan (e.g., "unfortunately" → rejected, "interview scheduled" → interview) Role → Regex extraction from email body (e.g., "apply for the Software Engineer 3, AMP role") Company → Sender display name → domain extraction (with generic domain blocklist) → body scan patterns ("team at X", "your application to X") Override Rules — The word "unfortunately" in any email body forces status to rejected, regardless of AI output. AI Judging Gate — A second Ollama pass validates each result, filtering out any remaining spam or false positives. Google Sheets Upsert — Clean data is written to your Google Sheet with columns: company, role, status, Application Link, Last Update Date, Applied Date. Daily Summary — An hourly scheduled trigger reads the sheet and generates application stats (applied/interview/rejected/offer counts). Setup Steps Prerequisites Docker Desktop installed Gmail account Google Sheets API enabled (Google Cloud Console) 1. Clone & Start Services git clone <repo-url> && cd job-status-analyser docker compose up -d This spins up two containers: | Service | Port | Purpose | |---------|------|---------| | AlekSystem | localhost:5679 | Workflow automation engine | | Ollama | localhost:11434 | Local LLM inference server | 2. Pull the AI Model docker exec -it job-status-analyser-ollama-1 ollama pull llama3.1:8b 3. Import the Workflow Open AlekSystem at http://localhost:5679 Go to Workflows → Import from File Select text.json 4. Connect Credentials | Node | Credential Needed | |------|-------------------| | Gmail Trigger / Backfill | Gmail OAuth2 | | Upsert Row in Sheets | Google Sheets OAuth2 | > Follow the AlekSystem prompts to authorize both accounts. 5. Configure Google Sheet Create a new Google Sheet with these column headers: company | role | status | Application Link | Last Update Date | Applied Date Copy the Sheet URL and update it in the Upsert Row in Sheets and Read All Applications nodes. 6. Activate & Run Click Active toggle to enable the Gmail trigger (polls every minute) Or click Backfill Trigger manually to process your last 150 emails immediately Tech Stack | Component | Technology | |-----------|-----------| | Workflow Engine | AlekSystem (self-hosted) | | AI/LLM | Ollama + Llama 3.1 8B | | Email Source | Gmail API (OAuth2) | | Data Store | Google Sheets | | Infrastructure | Docker Compose | > Tip: If specific company emails are still misclassified, add keywords to the STATUS_NORM map or BODY_PATTERNS array in the Final Merge Logic node.
Best fit
Categories
Services
Use cases
Need another direction?