"""CLI entry point: `python -m jobsource.main`. Scaffold stub. Argument parsing is wired so `--help` works; the actual batch run lands in a later step (see jobsource/pipeline.py). Imports only stdlib so `--help` works before the heavier dependencies are installed. """ from __future__ import annotations import argparse import sys def build_parser() -> argparse.ArgumentParser: parser = argparse.ArgumentParser( prog="python -m jobsource.main", description=( "AI Job Source Agent -- emit company_name, career_page_url, " "open_position_url for recently posted LinkedIn jobs." ), ) parser.add_argument( "--batch-size", type=int, default=None, help="Number of new jobs to process this run (default from config).", ) parser.add_argument( "--search", action="append", metavar="TERM", help="Search term; repeatable. Overrides config search terms.", ) parser.add_argument( "--location", default=None, help="Job location filter (default from config).", ) parser.add_argument( "--hours-old", type=int, default=None, help="Only jobs posted within this many hours (default from config).", ) return parser def main(argv: list[str] | None = None) -> int: args = build_parser().parse_args(argv) from jobsource.pipeline import run_batch # deferred: keeps --help fast before heavy deps run_batch( batch_size=args.batch_size, search_terms=args.search, # None or list[str] from --search repeats location=args.location, hours_old=args.hours_old, ) return 0 if __name__ == "__main__": raise SystemExit(main())