Documents

Remote Job Hunter

Try it

Automates daily remote job search, matching, and email reports. Invoke when the user asks to search remote jobs, find job matches, run job hunting, or set up...

What it does

Automates daily remote job search, matching, and email reports. Invoke when the user asks to search remote jobs, find job matches, run job hunting, or set up daily job alerts. Triggers on keywords: 'job hunt', 'find remote jobs', 'search jobs', 'job alert', 'remote work', 'daily job search'.

The skill document

Remote Job Hunter

Automated remote job search tool. Searches multiple sources, matches against user's profile, verifies job links are still open, and delivers reports via email or console.

When to Use

Invoke this skill when the user:

  • Asks to search for remote jobs or job opportunities
  • Wants to find job matches based on their resume/skills
  • Requests a daily job hunting setup or job alerts
  • Says keywords like "job hunt", "find remote jobs", "search jobs", "job alert", "remote work"

Quick Commands

The skill provides these entry points for the agent to call directly:

1. Instant Job Search (run now, output to console)

python3 run_now.py --dry-run

This runs the full pipeline (search -> match -> verify) and prints results to console without sending email. Use this when the user wants to see jobs immediately.

2. Full Pipeline with Email Report

python3 daily_scheduler.py

Runs the complete pipeline and sends email report if matches are found. Use for scheduled daily runs.

3. Setup / Reconfigure

python3 setup.py

Interactive setup. Use when config.json is missing or user wants to change settings.

4. Quick Setup from Template (non-interactive)

python3 setup.py --quick --name "User Name" --title "Job Title" --email "user@example.com"

Generates config.json without interactive prompts. Use when user provides info inline.

Agent Usage Guide

If user says "帮我搜一下远程工作" or "find me remote jobs":

  1. Check if config.json exists. If not, ask user for: name, job title, email.
  2. Run: python3 run_now.py --dry-run
  3. Show the user the top matches from the output.

If user says "set up daily job alerts" or "每天帮我找":

  1. Ensure config.json exists (run setup.py if needed).
  2. Run: python3 daily_scheduler.py once to test.
  3. Help user set up cron or TRAE automation to run daily.

If user wants to change keywords, skills, or filters:

  • Edit config.json directly — it's plain JSON. No need to re-run setup.
  • Key fields to modify:
    • search.keywords — what jobs to search for
    • profile.skills — your skills for matching
    • search.location_filter — region preferences
    • email.* — where to send reports

Configuration

config.json controls all behavior. Key sections:

SectionPurpose
profileName, title, skills, interests, dealbreakers
search.keywordsSearch terms (auto-generated from title + skills)
search.location_filterRegion filtering mode and keywords
search.platformsWhich job sources to query
emailSMTP settings for daily reports
cover_letterStyle settings for cover letter drafts

Location Filter Modes

  • "all" — no filtering, show all remote jobs
  • "exclude_only" — only remove jobs matching exclusion keywords
  • "include_global" — prioritize preferred regions + exclude unwanted

File Structure

remote-job-hunter/
├── SKILL.md              # Agent instructions (this file)
├── run_now.py            # Instant search entry point (agent-friendly)
├── daily_scheduler.py    # Full pipeline with email
├── setup.py              # Interactive or quick setup
├── config.json           # User configuration (generated)
├── config.template.json  # Config template
├── scripts/
│   ├── search_jobs.py    # Multi-source search
│   ├── match_jobs.py     # Resume-to-job scoring
│   ├── verify_jobs.py    # Link verification
│   └── send_email.py     # Email reports
└── README.md             # Human documentation

Troubleshooting

No config.json found: Run python3 setup.py or python3 setup.py --quick with required flags.

No jobs found: Check config.json -> search.keywords. Try setting location_filter.mode to "all".

Email not received: Check spam folder; verify SMTP credentials in config.json.

SMTP / Gmail App Password: Generate at https://myaccount.google.com/apppasswords


License: MIT-0

Related skills

Researches job postings, hiring signals, and freelance gigs via the Crawlora API — Indeed, Google/Amazon/Apple/Meta/Tesla careers sites, any company's ATS board (Greenhouse, Lever, Workday, SmartRecruiters, Ashby, and more), plus Upwork and Fiverr — returning clean JSON. Use when the user wants to search job postings, see what a specific company is hiring for, aggregate hiring signals for a company, or research freelance gigs and sellers.

1 installs

Searches Indeed job postings and pulls single job listings via the Crawlora API — keyword + location search, location autocomplete, and job detail by job key — returning clean JSON. Use when the user wants to search Indeed for jobs, look up location suggestions for an Indeed search, or fetch the full detail of a specific Indeed posting.

1 installs

Searches LinkedIn, Poslovi Infostud, and HelloWorld.rs for jobs matching your target roles. Scores each listing against your resume PDF (1-10).

4 installs1 stars

Search Indeed job postings by keyword and location via RolesAPI.com. Get job listings as JSON, filter to postings from today, this week, or remote-only, acro...

Searches Google's public careers site (careers.google.com) via the Crawlora API and pulls single job postings by id, returning clean JSON. Use when the user wants to search Google Jobs, see what roles Google is hiring for in a location, or pull the full detail of a specific Google Jobs posting.

1 installs