AI-powered job search agent using advanced agent architecture with planning, tools, and intelligent execution. Built with Node.js, Express, and modern AI providers.
# Install dependencies
npm install
# Start the web interface
npm start
# Open http://localhost:3000 in your browser
# Go to Settings panel and enter your API keys:
# - SerpAPI Key for job search
# - OpenRouter API Key for LLM access
# - Groq API Key (optional, as fallback)- 🤖 Intelligent Agent Architecture: Uses
_stepsandtoolspattern for structured job searching - 🔍 Advanced Web Search: SerpAPI integration with intelligent filtering
- 📊 Smart Data Extraction: AI-powered job information parsing with quality control
- 🎯 Content Filtering: Automatically excludes non-job content (Reddit, Quora, etc.)
- 📁 Multiple Export Formats: TXT, CSV, Excel, PDF with clean filenames
- 🌐 Professional Web Interface: Modern UI with real-time workflow visualization
- 📋 Search History: View and download previous job searches
- 🔄 LLM Fallback System: OpenRouter → Groq with intelligent provider switching
searchGoogle- SerpAPI-powered job search with intelligent filteringbrowseWeb- Web scraping tool for detailed job page analysisaddTodos- Task management for job search workflowmarkTodoDone- Progress trackingcheckTodos- View current taskscheckGoalDone- LLM-powered goal completion validationsearchJobs- Comprehensive job search orchestration
src/
├── _steps/ # Agent workflow steps
│ ├── step0-llm.js # LLM integration demo
│ ├── step1-condition.js # Conditional logic demo
│ ├── step2-tool.js # Tool usage demo
│ ├── step3-refactor.js # Code refactoring demo
│ └── step4-planning.js # Planning and execution demo
├── tools/ # Available tools
│ ├── searchGoogle.js # Job search with SerpAPI
│ ├── browseWeb.js # Web scraping tool
│ ├── todoList.js # Task management
│ ├── llmJudge.js # Goal validation
│ └── index.js # Tool registry
├── utils/ # Utilities
│ ├── ai.js # LLM provider management
│ └── fileExport.js # Export functionality
└── server.js # Express web server
The application no longer requires a .env file. All configuration is done through the web interface:
- Start the application:
npm start - Open the web interface: http://localhost:3000
- Go to Settings panel (right sidebar)
- Enter your API keys:
- SerpAPI Key: Required for job search functionality
- OpenRouter API Key: Required for LLM access
- Groq API Key: Optional, used as fallback if OpenRouter fails
- Click "Save Settings" to apply changes
Note: Settings are stored in memory and will reset when the server restarts.
- Planning Phase: Agent creates a structured plan for job search
- Search Execution: Uses SerpAPI to find relevant job postings
- Content Filtering: Intelligently filters out non-job content
- Data Extraction: Parses job information with AI assistance
- Quality Control: Validates results and excludes low-quality data
- Export & Storage: Saves results in multiple formats with clean filenames
- Smart Filtering: Excludes social media, advice sites, and aggregator pages
- Content Analysis: Detects and filters non-job content patterns
- Company Mapping: Maps job sites to readable company names
- Location Extraction: Intelligent location parsing from titles and snippets
- Clean Filenames: Generates short, meaningful filenames (e.g.,
software_engineer_2025-08-18.txt)
- Search Configuration: Job title, location, remote preference, count
- Real-time Workflow: Visual agent progress tracking
- Results Display: Clean table format with job details
- Search History: View and download previous searches
- Export Options: Direct download in CSV, Excel, PDF formats
# Start the web interface
npm start
# Access the interface at http://localhost:3000
# Use the search form to find jobs:
# - Job Title: "Software Engineer"
# - Location: "San Francisco, CA"
# - Remote: Yes/No
# - Count: Number of jobs to find- LinkedIn, Indeed, Glassdoor, Monster
- CareerBuilder, ZipRecruiter, SimplyHired
- Dice, Built In SF, AngelList
- GitHub, Stack Overflow, Amazon Jobs
- German sites: Hays, EnglishJobs, GermanTechJobs
- And many more...
MIT
