Skip to main content

Overview

The Job Finding Swarm is an intelligent multi-agent system designed to automate and streamline the job search process using the Swarms framework. It leverages specialized AI agents to analyze user requirements, execute comprehensive job searches, and curate relevant opportunities, transforming traditional job hunting into an intelligent, collaborative process.

Key Components

The Job Finding Swarm consists of three specialized agents, each responsible for a critical stage of the job search process:

Step 1: Setup and Installation

Prerequisites

  1. Install dependencies: Use the following command to download all dependencies.
  2. Set up API Keys: The Property Research Agent utilizes the exa_search tool, which requires an EXA_API_KEY. Create a .env file in the root directory of your project (or wherever your application loads environment variables) and add your API keys:
    Replace "YOUR_EXA_API_KEY" & "OPENAI_API_KEY" with your actual API keys.

Step 2: Running the Job Finding Swarm

Upon execution, the swarm will:
  1. Analyze the provided user_requirements.
  2. Generate and execute search queries using Exa.
  3. Curate and present the results in a structured format, including top recommendations and a prompt for user feedback.
The output will be printed to the console, showing the progression of the agents through each phase of the job search.

Workflow Stages

The JobSearchSwarm processes the job search through a continuous, iterative workflow:
  1. Phase 1: Analyze Requirements (analyze_requirements): The Sarah-Requirements-Analyzer agent processes the user’s input and conversation history to extract job criteria and generate optimized search queries.
  2. Phase 2: Execute Searches (execute_searches): The David-Search-Executor agent takes the generated queries, uses the exa_search tool to find job listings, and analyzes their relevance against the user’s requirements.
  3. Phase 3: Curate Results (curate_results): The Lisa-Results-Curator agent reviews, filters, and organizes the search results, presenting top recommendations and asking for user feedback to guide further iterations.
  4. Phase 4: Get User Feedback (end): In a full implementation, this stage gathers explicit user feedback to determine if the search needs refinement or can be concluded. For demonstration, this is a simulated step.
The swarm continues these phases in a loop until the search_concluded flag is set to True or max_loops is reached.

Customization

You can customize the JobSearchSwarm by modifying the JobSearchSwarm class parameters or the agents’ prompts:
  • name and description: Customize the swarm’s identity.
  • user_name: Define the name of the user interacting with the swarm.
  • output_type: Specify the desired output format for the conversation history (e.g., “json” or “list”).
  • max_loops: Control the number of internal reasoning iterations each agent performs (set during agent initialization).
  • system_prompt: Modify the REQUIREMENTS_ANALYZER_PROMPT, SEARCH_EXECUTOR_PROMPT, and RESULTS_CURATOR_PROMPT to refine agent behavior and output.
  • max_loops: Limit the total number of search cycles the swarm performs.

Best Practices

To get the most out of the AI Job Finding Swarm:
  • Provide Clear Requirements: Start with a detailed and unambiguous initial_user_input to help the Requirements Analyzer generate effective queries.
  • Iterate and Refine: In a live application, leverage the user feedback loop to continuously refine search criteria and improve result relevance.
  • Monitor Agent Outputs: Regularly review the outputs from each agent to ensure they are performing as expected and to identify areas for prompt improvement.
  • Manage API Usage: Be mindful of your Exa API key usage, especially when experimenting with max_loops or a large number of search queries.

Limitations

  • Prompt Engineering Dependency: The quality of the search results heavily depends on the clarity and effectiveness of the agent system_prompts and the initial user input.
  • Exa Search Scope: The exa_search tool’s effectiveness is tied to the breadth and depth of Exa’s indexed web content.
  • Iteration Control: The current end method in examples/demos/apps/job_finding.py is simplified for demonstration. A robust production system would require a more sophisticated user interaction mechanism to determine when to stop or refine the search.
  • Verification Needed: All AI-generated outputs, including job matches and summaries, should be independently verified by the user.