Skip to main content
Glama

Plainfold data tools (all tools)

plainfold/company-hiring-signals

plainfold--company-hiring-signals
Destructive

This tool calls the Actor "plainfold/company-hiring-signals" and retrieves its output results. Actor description: Get any company's open jobs from its website: auto-detects Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee & more. Normalized jobs plus a hiring summary: departments, locations, new roles, velocity. No API key. $0.003/company, $0.001/job, $0.0005/run.

Input Schema

NameRequiredDescriptionDefault
waitSecsNoMax seconds (0–45, default 30) to cap the wait for the Actor run to reach terminal state. For long-running Actors the response returns at the cap with the current run status; follow `nextStep` to poll via get-actor-run. Set to 0 to fire-and-forget.
companiesYes**REQUIRED** Companies to check, one per entry. Best: the company website domain ("ramp.com"); the Actor reads its homepage and careers page to find the job board, then falls back to the board name on each supported ATS. Also accepted: a job-board URL ("https://jobs.lever.co/spotify", "https://job-boards.greenhouse.io/stripe"), "ats:slug" ("greenhouse:stripe", "ashby:ramp", "smartrecruiters:ServiceNow") or a plain company name ("Hugging Face"; least reliable). [Description truncated] Example values: ["ramp.com","https://jobs.lever.co/spotify","greenhouse:stripe"]
remoteOnlyNoReturn only jobs that can be done remotely (remote: true). Default: false.
includeJobsNoReturn one dataset item per job (charged per job). Set false to get only the per-company hiring summaries (cheapest way to monitor many companies). Default: true. Example values: true
postedSinceNoOptional: return only jobs first posted on or after this point, for monitoring new roles. Either a date ("2026-10-01") or a window back from now ("24 hours", "7 days", "2 weeks", "1 month"). Jobs without a posting date (BambooHR) are excluded when this is set. The company summary always describes all open roles and adds newSinceCount. Empty = all open jobs.
titleKeywordsNoOptional: return only jobs whose title contains any of these words (case-insensitive), e.g. ["engineer", "sales"]. The summary still covers all roles.
locationKeywordsNoOptional: return only jobs whose location or country contains any of these, e.g. ["New York", "Remote", "GB"].
maxJobsPerCompanyNoMaximum jobs returned per company after filters, newest first (each job is one charge). The summary always counts every open role. Default: 200. Example values: 200
includeDescriptionNoAdd a plain-text description (up to 4,000 characters, emails and phone numbers removed) to each job where the ATS feed provides one (not SmartRecruiters, Breezy or BambooHR). Makes output larger. Default: false.

Output Schema

NameRequiredDescriptionDefault
tipNoAdvisory guidance RAG Web Browser wrote to its key-value store under the reserved "TIP" key
runIdYesActor run ID
statsNoRun statistics
statusYesRun status: READY | RUNNING | TIMING-OUT | TIMED-OUT | ABORTING | ABORTED | SUCCEEDED | FAILED
actorIdYesStable Apify Actor ID from the run record
summaryYesPast-tense summary of the run state
exitCodeNoActor process exit code; populated for terminal states (especially FAILED)
nextStepYesOne primary follow-up action with identifiers interpolated
storagesYesDataset and key-value store metadata, keyed by alias. "default" is always the primary entry.
actorNameNo"username/actor-name"
startedAtNoISO timestamp when the run started
finishedAtNoISO timestamp when the run finished (terminal states only)
statusMessageNoPass-through from Apify run.statusMessage
apifyConsoleUrlNoPersonalized Apify Console link to the run; present only for Console sessions

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema / properties / otherBoards / items / properties
      Added value: +{
      +  "ats": {
      +    "type": "string"
      +  },
      +  "boardSlug": {
      +    "type": "string"
      +  },
      +  "boardUrl": {
      +    "type": "string"
      +  },
      +  "confidence": {
      +    "type": "string"
      +  },
      +  "detectedVia": {
      +    "type": "string"
      +  },
      +  "openRoles": {
      +    "type": "number"
      +  }
      +}
    • addedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema / properties / otherBoards / items / type
      Added value: +"object"
  2. Changed2 schema fields changed
    • removedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema / properties / otherBoards / items / properties
      Removed value: -{
      -  "ats": {
      -    "type": "string"
      -  },
      -  "boardSlug": {
      -    "type": "string"
      -  },
      -  "boardUrl": {
      -    "type": "string"
      -  },
      -  "confidence": {
      -    "type": "string"
      -  },
      -  "detectedVia": {
      -    "type": "string"
      -  },
      -  "openRoles": {
      -    "type": "number"
      -  }
      -}
    • removedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema / properties / otherBoards / items / type
      Removed value: -"object"
  3. Changed2 schema fields changed
    • addedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema / properties / otherBoards / items / properties
      Added value: +{
      +  "ats": {
      +    "type": "string"
      +  },
      +  "boardSlug": {
      +    "type": "string"
      +  },
      +  "boardUrl": {
      +    "type": "string"
      +  },
      +  "confidence": {
      +    "type": "string"
      +  },
      +  "detectedVia": {
      +    "type": "string"
      +  },
      +  "openRoles": {
      +    "type": "number"
      +  }
      +}
    • addedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema / properties / otherBoards / items / type
      Added value: +"object"
  4. Changed2 schema fields changed
    • removedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema / properties / otherBoards / items / properties
      Removed value: -{
      -  "ats": {
      -    "type": "string"
      -  },
      -  "boardSlug": {
      -    "type": "string"
      -  },
      -  "boardUrl": {
      -    "type": "string"
      -  },
      -  "confidence": {
      -    "type": "string"
      -  },
      -  "detectedVia": {
      -    "type": "string"
      -  },
      -  "openRoles": {
      -    "type": "number"
      -  }
      -}
    • removedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema / properties / otherBoards / items / type
      Removed value: -"object"
  5. Changed2 schema fields changed
    • addedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema / properties / otherBoards / items / properties
      Added value: +{
      +  "ats": {
      +    "type": "string"
      +  },
      +  "boardSlug": {
      +    "type": "string"
      +  },
      +  "boardUrl": {
      +    "type": "string"
      +  },
      +  "confidence": {
      +    "type": "string"
      +  },
      +  "detectedVia": {
      +    "type": "string"
      +  },
      +  "openRoles": {
      +    "type": "number"
      +  }
      +}
    • addedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema / properties / otherBoards / items / type
      Added value: +"object"
  6. Changed2 schema fields changed
    • removedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema / properties / otherBoards / items / properties
      Removed value: -{
      -  "ats": {
      -    "type": "string"
      -  },
      -  "boardSlug": {
      -    "type": "string"
      -  },
      -  "boardUrl": {
      -    "type": "string"
      -  },
      -  "confidence": {
      -    "type": "string"
      -  },
      -  "detectedVia": {
      -    "type": "string"
      -  },
      -  "openRoles": {
      -    "type": "number"
      -  }
      -}
    • removedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema / properties / otherBoards / items / type
      Removed value: -"object"
  7. Changed2 schema fields changed
    • addedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema / properties / otherBoards / items / properties
      Added value: +{
      +  "ats": {
      +    "type": "string"
      +  },
      +  "boardSlug": {
      +    "type": "string"
      +  },
      +  "boardUrl": {
      +    "type": "string"
      +  },
      +  "confidence": {
      +    "type": "string"
      +  },
      +  "detectedVia": {
      +    "type": "string"
      +  },
      +  "openRoles": {
      +    "type": "number"
      +  }
      +}
    • addedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema / properties / otherBoards / items / type
      Added value: +"object"
  8. Changed2 schema fields changed
    • removedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema / properties / otherBoards / items / properties
      Removed value: -{
      -  "ats": {
      -    "type": "string"
      -  },
      -  "boardSlug": {
      -    "type": "string"
      -  },
      -  "boardUrl": {
      -    "type": "string"
      -  },
      -  "confidence": {
      -    "type": "string"
      -  },
      -  "detectedVia": {
      -    "type": "string"
      -  },
      -  "openRoles": {
      -    "type": "number"
      -  }
      -}
    • removedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema / properties / otherBoards / items / type
      Removed value: -"object"
  9. Changed2 schema fields changed
    • addedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema / properties / otherBoards / items / properties
      Added value: +{
      +  "ats": {
      +    "type": "string"
      +  },
      +  "boardSlug": {
      +    "type": "string"
      +  },
      +  "boardUrl": {
      +    "type": "string"
      +  },
      +  "confidence": {
      +    "type": "string"
      +  },
      +  "detectedVia": {
      +    "type": "string"
      +  },
      +  "openRoles": {
      +    "type": "number"
      +  }
      +}
    • addedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema / properties / otherBoards / items / type
      Added value: +"object"
  10. Changed2 schema fields changed
    • removedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema / properties / otherBoards / items / properties
      Removed value: -{
      -  "ats": {
      -    "type": "string"
      -  },
      -  "boardSlug": {
      -    "type": "string"
      -  },
      -  "boardUrl": {
      -    "type": "string"
      -  },
      -  "confidence": {
      -    "type": "string"
      -  },
      -  "detectedVia": {
      -    "type": "string"
      -  },
      -  "openRoles": {
      -    "type": "number"
      -  }
      -}
    • removedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema / properties / otherBoards / items / type
      Removed value: -"object"
  11. Changed2 schema fields changed
    • addedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema / properties / otherBoards / items / properties
      Added value: +{
      +  "ats": {
      +    "type": "string"
      +  },
      +  "boardSlug": {
      +    "type": "string"
      +  },
      +  "boardUrl": {
      +    "type": "string"
      +  },
      +  "confidence": {
      +    "type": "string"
      +  },
      +  "detectedVia": {
      +    "type": "string"
      +  },
      +  "openRoles": {
      +    "type": "number"
      +  }
      +}
    • addedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema / properties / otherBoards / items / type
      Added value: +"object"
  12. Changed2 schema fields changed
    • removedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema / properties / otherBoards / items / properties
      Removed value: -{
      -  "ats": {
      -    "type": "string"
      -  },
      -  "boardSlug": {
      -    "type": "string"
      -  },
      -  "boardUrl": {
      -    "type": "string"
      -  },
      -  "confidence": {
      -    "type": "string"
      -  },
      -  "detectedVia": {
      -    "type": "string"
      -  },
      -  "openRoles": {
      -    "type": "number"
      -  }
      -}
    • removedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema / properties / otherBoards / items / type
      Removed value: -"object"
  13. Changed2 schema fields changed
    • addedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema / properties / otherBoards / items / properties
      Added value: +{
      +  "ats": {
      +    "type": "string"
      +  },
      +  "boardSlug": {
      +    "type": "string"
      +  },
      +  "boardUrl": {
      +    "type": "string"
      +  },
      +  "confidence": {
      +    "type": "string"
      +  },
      +  "detectedVia": {
      +    "type": "string"
      +  },
      +  "openRoles": {
      +    "type": "number"
      +  }
      +}
    • addedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema / properties / otherBoards / items / type
      Added value: +"object"
  14. Changed2 schema fields changed
    • addedOutput schema / properties / tip / properties / caveat
      Added value: +{
      +  "description": "Present when this session cannot run the Actor the tip recommends",
      +  "type": "string"
      +}
    • changedOutput schema / properties / tip / properties / recommendedActorId / description
      Previous value: -"Apify Actor ID the tip recommends running next, when it names one — pass directly as `actor` to call-actor or fetch-actor-details"New value: +"Apify Actor ID the tip recommends, when it names one"
  15. Changed1 schema field changed
    • addedOutput schema / properties / storages / properties / datasets / properties / default / properties / itemsSchema
      Added value: +{
      +  "description": "JSON Schema for rows in the dataset at `storages.datasets.default.id` — describes row shape only; the rows themselves are NOT returned inline in this response. Inferred from this Actor's historical successful runs. To fetch actual rows, call `get-dataset-items` with the dataset id and a `fields` projection drawn from this schema.",
      +  "properties": {
      +    "applyUrl": {
      +      "type": "string"
      +    },
      +    "ats": {
      +      "type": "string"
      +    },
      +    "atsName": {
      +      "type": "string"
      +    },
      +    "boardSlug": {
      +      "type": "string"
      +    },
      +    "boardUrl": {
      +      "type": "string"
      +    },
      +    "byDepartment": {
      +      "items": {
      +        "properties": {
      +          "count": {
      +            "type": "number"
      +          },
      +          "name": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "byLocation": {
      +      "items": {
      +        "properties": {
      +          "count": {
      +            "type": "number"
      +          },
      +          "name": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "bySeniority": {
      +      "items": {
      +        "properties": {
      +          "count": {
      +            "type": "number"
      +          },
      +          "name": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "checkedAt": {
      +      "type": "string"
      +    },
      +    "company": {
      +      "type": "string"
      +    },
      +    "companyName": {
      +      "type": [
      +        "null",
      +        "string"
      +      ]
      +    },
      +    "country": {
      +      "type": [
      +        "null",
      +        "string"
      +      ]
      +    },
      +    "department": {
      +      "type": "string"
      +    },
      +    "detectedVia": {
      +      "type": "string"
      +    },
      +    "detectionConfidence": {
      +      "type": "string"
      +    },
      +    "employmentType": {
      +      "type": [
      +        "null",
      +        "string"
      +      ]
      +    },
      +    "engineeringSharePct": {
      +      "type": "number"
      +    },
      +    "found": {
      +      "type": "boolean"
      +    },
      +    "goToMarketSharePct": {
      +      "type": "number"
      +    },
      +    "growthHints": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "hiringVelocity": {
      +      "type": "string"
      +    },
      +    "input": {
      +      "type": "string"
      +    },
      +    "jobId": {
      +      "type": "string"
      +    },
      +    "jobsReturned": {
      +      "type": "number"
      +    },
      +    "jobsTruncated": {
      +      "type": "boolean"
      +    },
      +    "leadershipRoles": {
      +      "type": "number"
      +    },
      +    "location": {
      +      "type": "string"
      +    },
      +    "locations": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "medianPostingAgeDays": {
      +      "type": "number"
      +    },
      +    "newLocations30d": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "newRolesByDepartment30d": {
      +      "items": {
      +        "properties": {
      +          "count": {
      +            "type": "number"
      +          },
      +          "name": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "newestPostedAt": {
      +      "type": "string"
      +    },
      +    "newestPostings": {
      +      "items": {
      +        "properties": {
      +          "department": {
      +            "type": "string"
      +          },
      +          "location": {
      +            "type": "string"
      +          },
      +          "postedAt": {
      +            "type": "string"
      +          },
      +          "title": {
      +            "type": "string"
      +          },
      +          "url": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "oldestPostedAt": {
      +      "type": "string"
      +    },
      +    "openRoles": {
      +      "type": "number"
      +    },
      +    "otherBoards": {
      +      "items": {},
      +      "type": "array"
      +    },
      +    "postedAt": {
      +      "type": "string"
      +    },
      +    "postedLast30Days": {
      +      "type": "number"
      +    },
      +    "postedLast7Days": {
      +      "type": "number"
      +    },
      +    "postedLast90Days": {
      +      "type": "number"
      +    },
      +    "recordType": {
      +      "type": "string"
      +    },
      +    "remote": {
      +      "type": "boolean"
      +    },
      +    "salary": {},
      +    "salaryTransparencyPct": {
      +      "type": "number"
      +    },
      +    "seniority": {
      +      "type": "string"
      +    },
      +    "status": {
      +      "type": "string"
      +    },
      +    "summary": {
      +      "type": "string"
      +    },
      +    "team": {
      +      "type": [
      +        "null",
      +        "string"
      +      ]
      +    },
      +    "title": {
      +      "type": "string"
      +    },
      +    "undatedRoles": {
      +      "type": "number"
      +    },
      +    "updatedAt": {
      +      "type": [
      +        "null",
      +        "string"
      +      ]
      +    },
      +    "url": {
      +      "type": "string"
      +    },
      +    "website": {
      +      "type": [
      +        "null",
      +        "string"
      +      ]
      +    },
      +    "workplace": {
      +      "properties": {
      +        "hybrid": {
      +          "type": "number"
      +        },
      +        "onsite": {
      +          "type": "number"
      +        },
      +        "remote": {
      +          "type": "number"
      +        },
      +        "remoteEligible": {
      +          "type": "number"
      +        },
      +        "unspecified": {
      +          "type": "number"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "workplaceType": {
      +      "type": [
      +        "null",
      +        "string"
      +      ]
      +    }
      +  },
      +  "type": "object"
      +}
  16. First observed

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare openWorldHint and destructiveHint, and the description adds genuinely useful context the annotations don't carry: explicit per-run pricing ($0.003/company, $0.001/job, $0.0005/run), no API key requirement, and which ATSs are auto-detected. It does not explain the run lifecycle or the waitSecs cap, but the schema covers that. No contradiction with the declared write/destructive profile, since this spawns paid Actor runs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact parts: the wrapper framing and the actor description, both front-loaded with the capability and pricing. Some marketing cadence ('& more', the price triplet) but every clause conveys selection-relevant information; nothing needs trimming urgently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description needn't explain return shapes, yet it still summarizes outputs (normalized jobs, departments, locations, velocity) and cost model. For a 9-parameter, outbound-scraping tool the only real gap is guidance on run duration/polling, which the schema's waitSecs text handles.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and each of the 9 parameters is thoroughly documented in the schema (accepted input formats, charge behavior, filtering side-effects). The description adds no parameter-level meaning beyond what the schema already states, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description combines a wrapper sentence ('calls the Actor ... and retrieves its output results') with a concrete actor summary: 'Get any company's open jobs from its website: auto-detects Greenhouse, Lever, Ashby...' plus normalized jobs and a hiring summary. That is a specific verb+resource an agent can match against siblings like sec-company-financials or sam-gov-contract-opportunities. The leading boilerplate about calling an Actor adds nothing but does not obscure the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied (monitoring companies' open roles, finding new postings by department/location) and the schema's includeJobs note hints at the 'cheapest way to monitor many companies'. However, the description never states when to pick this over the sibling data actors, nor any exclusions or prerequisites beyond 'No API key'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.