preslaff commited on
Commit
309b902
·
unverified ·
1 Parent(s): b239998

Fixed assertion error for input list, now gives list(dict)

Browse files
Files changed (1) hide show
  1. tools/linkedin_job_search.py +8 -9
tools/linkedin_job_search.py CHANGED
@@ -5,18 +5,20 @@ from typing import Dict, List
5
  class LinkedInJobSearchTool(Tool):
6
  name = "linkedin_job_search"
7
  description = "Searches for jobs on LinkedIn based on job title, location, and work mode (remote, hybrid, in-office)."
 
8
  inputs = {
9
- "position": {"type": "string", "description": "Job title or keyword (e.g., Data Scientist)"},
10
- "location": {"type": "string", "description": "City or country where the job is located (e.g., New York, Remote)"},
11
- "work_mode": {"type": "string", "description": "Preferred work setting: remote, hybrid, in-office"}
12
  }
13
- output_type = "list" # Returning a list of job postings
 
14
 
15
  def forward(self, position: str, location: str, work_mode: str) -> List[Dict]:
16
  """
17
  Searches LinkedIn for job postings using SerpAPI.
18
  """
19
- SERPAPI_KEY = "2f660e5a696e7d1d08662085b95f83a61224476ec19558de3c68218baf346e43" # Replace with your SerpAPI key
20
  base_url = "https://serpapi.com/search"
21
 
22
  params = {
@@ -33,8 +35,7 @@ class LinkedInJobSearchTool(Tool):
33
  data = response.json()
34
  job_results = data.get("jobs_results", [])
35
 
36
- # Extracting relevant job info
37
- formatted_jobs = [
38
  {
39
  "title": job["title"],
40
  "company": job.get("company_name", "N/A"),
@@ -44,7 +45,5 @@ class LinkedInJobSearchTool(Tool):
44
  }
45
  for job in job_results
46
  ]
47
-
48
- return formatted_jobs
49
  else:
50
  return [{"error": f"Error {response.status_code}: {response.text}"}]
 
5
  class LinkedInJobSearchTool(Tool):
6
  name = "linkedin_job_search"
7
  description = "Searches for jobs on LinkedIn based on job title, location, and work mode (remote, hybrid, in-office)."
8
+
9
  inputs = {
10
+ "position": {"type": "string", "description": "Job title (e.g., Data Scientist)"},
11
+ "location": {"type": "string", "description": "City or country (e.g., New York)"},
12
+ "work_mode": {"type": "string", "description": "remote, hybrid, in-office"}
13
  }
14
+
15
+ output_type = "list[dict]" # ✅ Use an authorized output type
16
 
17
  def forward(self, position: str, location: str, work_mode: str) -> List[Dict]:
18
  """
19
  Searches LinkedIn for job postings using SerpAPI.
20
  """
21
+ SERPAPI_KEY = "2f660e5a696e7d1d08662085b95f83a61224476ec19558de3c68218baf346e43" # Replace with your API key
22
  base_url = "https://serpapi.com/search"
23
 
24
  params = {
 
35
  data = response.json()
36
  job_results = data.get("jobs_results", [])
37
 
38
+ return [
 
39
  {
40
  "title": job["title"],
41
  "company": job.get("company_name", "N/A"),
 
45
  }
46
  for job in job_results
47
  ]
 
 
48
  else:
49
  return [{"error": f"Error {response.status_code}: {response.text}"}]