Skip to main content
Glama

search_jobs

Find job opportunities on LinkedIn by entering specific search terms to match career interests and requirements.

Instructions

Search for jobs on LinkedIn using a search term.

Args: search_term (str): Search term to use for the job search.

Returns: List[Dict[str, Any]]: List of job search results

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
search_termYes

Implementation Reference

  • The primary handler function for the 'search_jobs' MCP tool. It uses linkedin_scraper.JobSearch to find jobs matching the input search_term, converts Job objects to dictionaries, and handles exceptions with error formatting.
    @mcp.tool() async def search_jobs(search_term: str) -> List[Dict[str, Any]]: """ Search for jobs on LinkedIn using a search term. Args: search_term (str): Search term to use for the job search. Returns: List[Dict[str, Any]]: List of job search results """ try: driver = safe_get_driver() logger.info(f"Searching jobs: {search_term}") job_search = JobSearch(driver=driver, close_on_complete=False, scrape=False) jobs = job_search.search(search_term) # Convert job objects to dictionaries return [job.to_dict() for job in jobs] except Exception as e: return handle_tool_error_list(e, "search_jobs")
  • Invocation of register_job_tools during MCP server creation, which registers the search_jobs tool (and other job tools) via decorators.
    register_job_tools(mcp)
  • The register_job_tools function defines and registers all job-related tools including search_jobs using @mcp.tool() decorators.
    def register_job_tools(mcp: FastMCP) -> None: """ Register all job-related tools with the MCP server. Args: mcp (FastMCP): The MCP server instance """ @mcp.tool() async def get_job_details(job_id: str) -> Dict[str, Any]: """ Get job details for a specific job posting on LinkedIn Args: job_id (str): LinkedIn job ID (e.g., "4252026496", "3856789012") Returns: Dict[str, Any]: Structured job data including title, company, location, posting date, application count, and job description (may be empty if content is protected) """ try: # Construct clean LinkedIn URL from job ID job_url = f"https://www.linkedin.com/jobs/view/{job_id}/" driver = safe_get_driver() logger.info(f"Scraping job: {job_url}") job = Job(job_url, driver=driver, close_on_complete=False) # Convert job object to a dictionary return job.to_dict() except Exception as e: return handle_tool_error(e, "get_job_details") @mcp.tool() async def search_jobs(search_term: str) -> List[Dict[str, Any]]: """ Search for jobs on LinkedIn using a search term. Args: search_term (str): Search term to use for the job search. Returns: List[Dict[str, Any]]: List of job search results """ try: driver = safe_get_driver() logger.info(f"Searching jobs: {search_term}") job_search = JobSearch(driver=driver, close_on_complete=False, scrape=False) jobs = job_search.search(search_term) # Convert job objects to dictionaries return [job.to_dict() for job in jobs] except Exception as e: return handle_tool_error_list(e, "search_jobs") @mcp.tool() async def get_recommended_jobs() -> List[Dict[str, Any]]: """ Get your personalized recommended jobs from LinkedIn Returns: List[Dict[str, Any]]: List of recommended jobs """ try: driver = safe_get_driver() logger.info("Getting recommended jobs") job_search = JobSearch( driver=driver, close_on_complete=False, scrape=True, # Enable scraping to get recommended jobs scrape_recommended_jobs=True, ) if hasattr(job_search, "recommended_jobs") and job_search.recommended_jobs: return [job.to_dict() for job in job_search.recommended_jobs] else: return [] except Exception as e: return handle_tool_error_list(e, "get_recommended_jobs")

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Kappasig920/MCP-LinkedIn'

If you have feedback or need assistance with the MCP directory API, please join our Discord server