Pipeline

How the bot decides what to send

Job Watcher keeps a shared cache of job postings, applies fast rule-based filters first, then spends AI work only on jobs that still look plausible for your profile.

Decision flow

The sketch below is the high-level shape of the current evaluation path. Some numbers are configurable per deployment or profile, such as the AI score threshold and commute distance.

Rule-based first

Geography and seniority checks remove obvious mismatches before the AI shortlist runs.

Bulk AI shortlist

A cheaper batch pass decides whether a posting is worth detailed scoring.

Detailed scoring

High-scoring jobs are sent individually. Lower-scoring but still relevant jobs can be grouped into a digest.

Flowchart showing Job Watcher's filtering, AI shortlist, detailed scoring, and notification decisions
Illustrative flow for a single job after it has entered the shared cache.

How jobs enter the system

Ingestion is separate from user evaluation. Sources fetch jobs into a shared cache first; user profiles then evaluate cached jobs against their own preferences.

Direct sources

Specific company ingestion

For supported companies, Job Watcher talks directly to the company's career page or ATS feed. Examples include Greenhouse, Lever, Workday, SmartRecruiters, custom APIs, and structured HTML pages.

  • Each source has a configured parser and canonical source name.
  • Fetched postings are normalized into one internal job shape.
  • Stable job IDs, URLs, company names, locations, timestamps, and source metadata are stored in the shared cache.
  • Repeated runs refresh existing jobs, add new jobs, and mark missing jobs after enough successful checks.
Aggregators

Aggregator-based ingestion

Aggregator feeds cover roles and markets that are not tied to one configured company source. They are generated from search terms and geography, then parsed like other sources.

  • Profiles contribute search intent, such as roles and target jurisdictions.
  • The operator deduplicates compatible searches into shared aggregator feeds.
  • Aggregator postings can represent many employers, including companies that do not yet have a dedicated direct source.
  • The same normalization, cache freshness, and profile evaluation pipeline applies after ingestion.
1

Fetch

Source jobs run on a schedule and fetch postings into the shared database.

2

Normalize

Different ATS and page formats are converted into the same job model.

3

Evaluate

User profiles evaluate active cached jobs with geography, seniority, AI shortlist, and AI scoring.

4

Notify

Matches are sent through Telegram as individual alerts or grouped digest entries.