An intelligent LLM agent that can scan online job postings and provide detailed information with links. Built with LangChain and powered by Ollama, this agent uses the ReAct (Reasoning and Acting) framework to search for job opportunities and extract relevant details.
- Intelligent Job Search: Automatically searches for job postings based on your criteria
- Detailed Information Extraction: Provides comprehensive job details including requirements, location, and company information
- Source Links: Returns direct links to original job postings for easy access
- Structured Output: Uses Pydantic schemas for consistent, structured responses
- Web Search Integration: Leverages Tavily search for real-time job posting discovery
The agent is built using:
- LangChain: For agent orchestration and tool integration
- Ollama: Local LLM inference with Qwen3:14b model
- Tavily Search: For web search capabilities
- ReAct Framework: For reasoning and acting in a structured manner
- Pydantic: For data validation and structured outputs
- Python 3.10 or higher
- Ollama installed and running
- Qwen3:14b model pulled in Ollama
- Clone the repository:
git clone https://github.com/tseste/job_scan_agent.git
cd job_scan_agent- Install dependencies using uv:
uv sync- Set up environment variables:
Create a
.envfile in the root directory and add your API keys:
TAVILY_API_KEY=your_tavily_api_key_here
# optionally enable langsmith (requires langsmith accounts creation)
LANGSMITH_TRACING=true
LANGSMITH_ENDPOINT=us_or_eu_langsmith_url
LANGSMITH_API_KEY=your_langsmith_api_key
LANGSMITH_PROJECT=your_langsmith_project_name- Pull the required Ollama model:
ollama pull qwen3:14b
# a 12GB nvidia card could span the context window a little bit more. (default qwen3:14b 10GB)
ollama create -f ModelFile qwen3:14b-ctxRun the agent with a job search query:
python agent.pyThe default example searches for AI engineer positions using LangChain in the Bay Area on LinkedIn.
For an interactive web interface, you can run the Streamlit app:
streamlit run app.pyThis will launch a web interface where you can:
- Enter custom prompts interactively
- View structured responses with sources
- See conversation history
- Toggle raw JSON output for debugging
The web interface provides a user-friendly way to interact with the agent without modifying code.
The agent uses the Qwen3:14b model with the following configuration:
- Context window: 6144 tokens
- Model: qwen3:14b-ctx
The agent returns structured responses with the following format:
{
"answer": "Detailed job information and analysis",
"sources": [
{
"link": "https://example.com/job-posting-1"
},
{
"link": "https://example.com/job-posting-2"
}
]
}- Ollama not running: Ensure Ollama is installed and running (ollama installation)
- Model not found: Pull the required model with
ollama pull qwen3:14b - API key issues: Verify your Tavily API key is correctly set in the
.envfile - Memory issues: The model requires significant RAM; ensure you have at least 12GB available