How ranjithreddybandi/jobsearch works
JobSearch is a web-based job-opportunity search product backed by a Python agent pipeline. A user submits role and preference criteria in the web UI; the backend invokes the pipeline, which normalizes the query, selects sources, scrapes jobs, classifies and ranks results, summarizes them, and exports files. The UI presents results and search controls. The README is minimal, so the workflow is supported mainly by sampled source and the source index; unsampled stage ordering is shown as unverified.
Main entry points: wrappers.py Step wrappers · RoleQueryNormalizer_Agent.py Query normalizer · JobSourceDiscovery_Agent.py Source discovery · JobScraper_Agent.py Job scraper
Components 17
Search pipeline
- Step wrappers
JobSearch_Agent/wrappers.py - Query normalizer
JobSearch_Agent/RoleQueryNormalizer_Agent.py - Source discovery
JobSearch_Agent/JobSourceDiscovery_Agent.py - Job scraper
JobSearch_Agent/JobScraper_Agent.py - Job classification
JobSearch_Agent/JobClassification_Agent.py - Relevance ranker
JobSearch_Agent/ranker_Agent.py - Job summarizer
JobSearch_Agent/summarizer_Agent.py - Result exporter
JobSearch_Agent/Export_Agent.py
External services
- LLM client
JobSearch_Agent/llm_client.py - Job boards and APIs
- LLM providers
Configuration and state
- Pipeline state
JobSearch_Agent/state.py - Runtime defaults
JobSearch_Agent/config.py - Source registry
JobSearch_Agent/data/sources.yaml
Other components
- Job seeker
Connections 24
- Job seeker → Search UI: submits search
JobSearch_Web/frontend/src/App.tsx - Search UI → Web API: starts run
JobSearch_Web/frontend/src/App.tsx - Web API → Step wrappers: invokes pipeline
JobSearch_Web/backend/main.py - Step wrappers → Query normalizer: calls
JobSearch_Agent/wrappers.py - Step wrappers → Source discovery: calls
JobSearch_Agent/wrappers.py - Step wrappers → Job scraper: calls
JobSearch_Agent/wrappers.py - Step wrappers → Job classification: calls
JobSearch_Agent/wrappers.py - Step wrappers → Relevance ranker: calls
JobSearch_Agent/wrappers.py - Step wrappers → Job summarizer: calls
JobSearch_Agent/wrappers.py - Step wrappers → Result exporter: calls
JobSearch_Agent/wrappers.py - Query normalizer → LLM client: requests expansion
JobSearch_Agent/RoleQueryNormalizer_Agent.py - Job summarizer → LLM client: requests summaries
JobSearch_Agent/summarizer_Agent.py - LLM client → LLM providers: sends completion
JobSearch_Agent/llm_client.py - Source discovery → Source registry: loads sources
- Job scraper → Job boards and APIs: fetches listings
- Query normalizer → Runtime defaults: reads defaults
- Step wrappers → Pipeline state: maps state
- Step wrappers → Search UI: returns results
- Query normalizer → Source discovery: prepares search
- Source discovery → Job scraper: selects sources
JobSearch_Agent/JobScraper_Agent.py - Job scraper → Job classification: provides jobs
- Job classification → Relevance ranker: provides classified jobs
- Relevance ranker → Job summarizer: provides ranked jobs
- Job summarizer → Result exporter: provides summaries