Skip to content

NissonCX/offercatcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

18 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

OfferCatcher

Never miss an interview again.
Turn recruiting emails into native reminders with AI-powered parsing.

Features โ€ข Quick Start โ€ข Installation โ€ข Usage โ€ข Configuration

OpenClaw Skill Python 3.11+ macOS MIT License ไธญๆ–‡ๆ–‡ๆกฃ


The Problem

You're job hunting. Your inbox is flooded with recruiting emailsโ€”interview invites, online assessments, coding challenges, deadlines. The important ones get buried under "application received" receipts and spam.

You miss an interview. Or show up at the wrong time. Or forget that coding test deadline.

The Solution

OfferCatcher automatically scans your emails, extracts recruiting events using AI, and creates native reminders on your iPhone/Mac.

๐Ÿ“ง Email arrives โ†’ ๐Ÿค– AI parses it โ†’ ๐Ÿ”” Reminder created

No regex. No brittle pattern matching. Just intelligent extraction that works across all email formats and languages.

Features

  • ๐Ÿค– AI-Powered Parsing โ€” LLM understands any email format, any language
  • ๐ŸŽ Native Apple Integration โ€” Works with Mail.app and Reminders.app
  • ๐Ÿ“ฑ Cross-Device Sync โ€” Reminders appear on iPhone, iPad, Mac via iCloud
  • โšก Fully Automated โ€” Set up once, runs via OpenClaw heartbeat
  • ๐ŸŒ Universal Language Support โ€” Chinese, English, Japanese, you name it

Community

  • LINUX DO โ€” ไธญๆ–‡ๅผ€ๅ‘่€…็คพๅŒบ

Quick Start

# Install
curl -sSL https://raw.githubusercontent.com/NissonCX/offercatcher/main/install.sh | bash

# Configure
echo 'mail_account: "Gmail"' >> ~/.openclaw/offercatcher.yaml

# Scan
python3 ~/.openclaw/workspace/skills/offercatcher/scripts/recruiting_sync.py --scan-only

OpenClaw will automatically parse the results and create reminders.

Installation

Requirements

  • macOS (Apple Mail & Reminders integration)
  • Python 3.11+
  • OpenClaw (optional, for automation)

Option 1: One-Line Install (Recommended)

curl -sSL https://raw.githubusercontent.com/NissonCX/offercatcher/main/install.sh | bash

Option 2: Manual Install

git clone https://github.com/NissonCX/offercatcher.git
cd offercatcher

Usage

Step 1: Find Your Mail Account

python3 scripts/list_mail_sources.py

This shows all accounts configured in Apple Mail:

[
  {"account": "Gmail", "mailbox": "INBOX"},
  {"account": "iCloud", "mailbox": "INBOX"}
]

Step 2: Configure

Create ~/.openclaw/offercatcher.yaml:

mail_account: "Gmail"    # Your Apple Mail account name
mailbox: "INBOX"         # Mailbox to scan
days: 2                  # Scan last N days
max_results: 60          # Max emails to process

Step 3: Scan Emails

python3 scripts/recruiting_sync.py --scan-only

Output (JSON for OpenClaw LLM to parse):

{
  "emails": [
    {
      "message_id": "12345",
      "subject": "Interview Invitation - Software Engineer",
      "sender": "recruiting@company.com",
      "received_at": "2026-04-01 10:00",
      "body": "Dear Candidate, Your interview is scheduled for..."
    }
  ]
}

Step 4: AI Parsing + Reminder Creation

OpenClaw automatically:

  1. Parses each email with LLM
  2. Extracts company, event type, time, link
  3. Creates native Apple Reminders

Or manually apply parsed events:

python3 scripts/recruiting_sync.py --apply-events /tmp/events.json

Manual Event Entry

python3 scripts/manual_event.py \
  --title "Google Interview" \
  --due "2026-04-15 14:00" \
  --notes "Link: https://meet.google.com/xxx"

How It Works

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   --scan-only   โ”‚ โ”€โ”€โ–ถ โ”‚   OpenClaw LLM  โ”‚ โ”€โ”€โ–ถ โ”‚  --apply-events โ”‚
โ”‚   Scan emails   โ”‚     โ”‚   Parse events  โ”‚     โ”‚ Create reminder โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Why LLM Over Regex?

Regex LLM
Breaks on new formats Adapts to any format
Company-specific rules Works for any company
Manual maintenance Zero maintenance
Language-specific Universal language support

Configuration

Command Line Options

Option Default Description
--mail-account all Apple Mail account name
--mailbox INBOX Mailbox folder to scan
--days 2 Scan last N days
--max-results 60 Max emails to process
--dry-run false Test without creating reminders
--verbose false Enable debug logging

Environment Variables

OFFERCATCHER_MAIL_ACCOUNT="Gmail"
OFFERCATCHER_DAYS=7
OFFERCATCHER_MAX_RESULTS=100
OFFERCATCHER_LOG_LEVEL=DEBUG

Event JSON Format

The --apply-events command accepts:

{
  "events": [
    {
      "id": "unique-id",
      "company": "Google",
      "event_type": "interview",
      "title": "Google SWE Interview",
      "timing": {"start": "2026-04-15 14:00", "end": "2026-04-15 15:00"},
      "role": "Software Engineer",
      "link": "https://meet.google.com/xxx"
    }
  ]
}

Event types: interview, ai_interview, written_exam, assessment, authorization, deadline

Screenshots

Reminder list
Reminder List
Reminder detail
Reminder Detail

Project Structure

offercatcher/
โ”œโ”€โ”€ scripts/
โ”‚   โ”œโ”€โ”€ recruiting_sync.py      # Main script (scan/apply)
โ”‚   โ”œโ”€โ”€ apple_reminders_bridge.py # Apple Reminders bridge
โ”‚   โ”œโ”€โ”€ manual_event.py         # Manual event entry
โ”‚   โ””โ”€โ”€ list_mail_sources.py    # List Mail accounts
โ”œโ”€โ”€ tests/                      # Unit tests
โ”œโ”€โ”€ SKILL.md                    # OpenClaw skill definition
โ””โ”€โ”€ README.md                   # This file

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT License


Made with โค๏ธ for job seekers everywhere

About

๐ŸŽฏ AI ้ฉฑๅŠจ็š„ๆ‹›่˜้‚ฎไปถๆ้†’ๅทฅๅ…ท๏ผŒ่‡ชๅŠจๆๅ–้ข่ฏ•ใ€ๆต‹่ฏ„ใ€็ฌ”่ฏ•็ญ‰ไบ‹ไปถๅนถๅŒๆญฅๅˆฐ Apple Remindersใ€‚Never miss an interview again.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors