Job Agent

Contents

  • Introduction
  • Installation
  • Configuration
  • Usage
  • 12-Factor App Compliance
  • API Reference
    • Main Entry Points
    • Modules
      • Job Search Module
        • Source tiers
        • Job Data Class
        • JobSearcher Class
      • Notifications Module
      • Tracker Module
  • Indices and Tables
Job Agent
  • API Reference
  • Job Search Module
  • View page source

Job Search Module

Job search module - scrapes/queries job listings from multiple sources.

Source tiers

Tier 1 - Always-on free public JSON APIs (no auth):

remote-ok, remotive, arbeitnow, himalayas, jobicy, the-muse

Tier 2 - RSS feed (no auth):

we-work-remotely

Tier 3 - API-key required (configure in .env):

adzuna, indeed, ziprecruiter

Tier 4 - OAuth 2.0 (configure LinkedIn app in .env):

linkedin

Tier 5 - ATS aggregators (company career pages, public API):

lever, ashby, greenhouse

Job Data Class

class modules.job_search.Job(title: str, company: str, location: str, url: str, source: str, posted_date: str | None = None, salary: str | None = None, description: str | None = None, applied: bool = False, applied_date: str | None = None, search_term: str = '')[source]

Bases: object

Job listing data structure.

applied: bool = False
applied_date: str | None = None
company: str
description: str | None = None
location: str
posted_date: str | None = None
salary: str | None = None
search_term: str = ''
source: str
title: str
url: str

JobSearcher Class

class modules.job_search.JobSearcher(config_path: str | None = None)[source]

Bases: object

Searches job boards for new listings.

filter_new_jobs(existing_jobs: list[modules.job_search.Job]) → list[modules.job_search.Job][source]

Filter out jobs already tracked.

async search_all() → list[modules.job_search.Job][source]

Search all configured/enabled sources in parallel.

Previous Next

© Copyright 2026, Job Agent.

Built with Sphinx using a theme provided by Read the Docs.