Implementation:CrewAIInc CrewAI Serply Job Search Tool
| Knowledge Sources | |
|---|---|
| Domains | Tools, Job_Search |
| Last Updated | 2026-02-11 00:00 GMT |
Overview
SerplyJobSearchTool searches for job postings in the US using the Serply.io job search API.
Description
The SerplyJobSearchTool extends RagTool and uses the Serply.io API endpoint at https://api.serply.io/v1/job/search/ to find job listings. During initialization, it sets up HTTP headers with the SERPLY_API_KEY environment variable, a User-Agent of "crew-tools", and a configurable proxy location (defaulting to "US"). The _run method constructs a GET request URL with URL-encoded query parameters, parses the JSON response for a "jobs" array, and formats each job entry into a human-readable string containing position, employer, location, link, highlights, and remote/hybrid status.
Usage
Use this tool when a CrewAI agent needs to discover job postings as part of research, recruitment, or career-related workflows.
Code Reference
Source Location
- Repository: CrewAI
- File: lib/crewai-tools/src/crewai_tools/tools/serply_api_tool/serply_job_search_tool.py
- Lines: 1-94
Signature
class SerplyJobSearchToolSchema(BaseModel):
search_query: str = Field(..., description="Mandatory search query you want to use to fetch jobs postings.")
class SerplyJobSearchTool(RagTool):
name: str = "Job Search"
description: str = "A tool to perform to perform a job search in the US with a search_query."
args_schema: type[BaseModel] = SerplyJobSearchToolSchema
request_url: str = "https://api.serply.io/v1/job/search/"
proxy_location: str | None = "US"
env_vars: list[EnvVar] # SERPLY_API_KEY
def _run(self, query: str | None = None, search_query: str | None = None) -> str:
...
Import
from crewai_tools import SerplyJobSearchTool
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| search_query | str | Yes | Search query to find job postings |
| query | str | No | Alternative parameter name for the search query |
Outputs
| Name | Type | Description |
|---|---|---|
| _run() returns | str | Formatted job listings with position, employer, location, link, highlights, and remote status |
Usage Examples
Basic Usage
from crewai_tools import SerplyJobSearchTool
tool = SerplyJobSearchTool()
result = tool._run(search_query="python developer")