How luxinyue0910/job-search-agent works
Job Search Agent is a local, human-in-the-loop assistant that discovers jobs, evaluates fit, prepares tailored application materials, and fills supported ATS forms without submitting them. The primary workflow runs through the CLI: configured sources feed discovery and filtering, results are scored and tracked, then selected applications proceed to material preparation and browser-assisted review. The README also documents multi-track search, local-company coverage, and source-health reporting. Several subsystems are described in the README but their implementation was not sampled; their links reflect documented behavior, not inspected call sites.
Main entry points: job_search.py Search CLI · discovery_agent.py Daily discovery agent · scripts Source adapters · fill_form.js ATS form filler
Components 24
Job Discovery
- Search CLI
job-search/scripts/job_search.py - Source registry
job-search/examples/sources.example.json - Company coverage
job-search/examples/company_watchlist.example.json - Source adapters
job-search/scripts - Aggregator lead collector
job-search/scripts/collect_aggregator_leads.js
Evaluation And Tracking
- Freshness and role filters
job-search/scripts/job_search.py - Track routing
job-search/scripts/job_search.py - Fit and ATS scoring
job-search/scripts/job_search.py - Fit review rules
job-search/agents/fit_review_agent.py - Application tracker
job-search/scripts/job_search.py - Seen-job history
job-search/scripts/job_search.py
Application Preparation
- Material preparation
job-search/scripts/job_search.py - Application templates
job-search/templates - Material QA review
job-search/agents/application_qa_agent.py - ATS form filler
job-search/scripts/fill_form.js
Agent Support
- Agent workflow runner
job-search/agents/runner.py - Daily discovery agent
job-search/agents/discovery_agent.py - CLI tool wrapper
job-search/agents/tools.py - Source health records
job-search/agents/tools.py - Auditable run artifacts
job-search/agents/trace.py
Other components
- Human applicant
- Private candidate data
- Career sites and ATS APIs
- Manual browser review
Connections 33
- Human applicant → Search CLI: starts search
- Private candidate data → Search CLI: provides configuration
- Search CLI → Source registry: reads sources
- Search CLI → Company coverage: reads coverage
- Search CLI → Source adapters: dispatches discovery
- Source adapters → Career sites and ATS APIs: fetches listings
- Career sites and ATS APIs → Source adapters: returns postings
- Source adapters → Freshness and role filters: returns jobs
- Aggregator lead collector → Career sites and ATS APIs: searches leads
- Search CLI → Freshness and role filters: filters postings
- Freshness and role filters → Seen-job history: checks duplicates
- Freshness and role filters → Track routing: routes candidates
- Track routing → Fit and ATS scoring: selects track
- Fit and ATS scoring → Application tracker: records scores
- Fit review rules → Fit and ATS scoring: reviews fit
- Search CLI → Application tracker: updates applications
- Search CLI → Seen-job history: records seen jobs
- Human applicant → Search CLI: requests preparation
- Search CLI → Material preparation: prepares application
- Private candidate data → Material preparation: provides profile
- Application templates → Material preparation: guides drafting
- Material preparation → Application tracker: saves material paths
- Material preparation → Material QA review: submits drafts
- Application tracker → ATS form filler: provides application
- Private candidate data → ATS form filler: provides profile and files
- ATS form filler → Manual browser review: fills for review
- Manual browser review → Human applicant: awaits decision
- Human applicant → Agent workflow runner: starts daily run
- Agent workflow runner → Daily discovery agent: dispatches run
- Daily discovery agent → CLI tool wrapper: requests discovery
- CLI tool wrapper → Search CLI: invokes command
- Daily discovery agent → Source health records: updates health
- Daily discovery agent → Auditable run artifacts: records run