Provided by TheirStack
Search Job Postings by Title, Country and How Recently They Were Posted (TheirStack)
Find job postings by criteria: how recently a vacancy appeared (always required, from 0 to 365 days), wording in the job title, the two-letter country code it is advertised in, or the domains of specific employers. Each posting carries the position advertised, where it is advertised, when it was posted and the employer that published it. Up to 25 postings per page, with a page number for the next page; priced per vacancy returned.
How to run it
Step 1Set up
Once: paste this into your agent's chat. The Skill installs the CLI and logs in by itself. For an agent that cannot use a shell, connect it over MCP instead.
set up https://glasser.ai/SKILL.md
Show me how to use the TheirStack endpoint /v1/jobs/search on Glasser.glasser run -p theirstack -e '/v1/jobs/search' -i '{"limit":10,"job_title_or":["platform engineer"],"job_country_code_or":["US"],"posted_at_max_age_days":7}' --endpoint-version 1Uses endpoint version 1. Inspect the current price before running. Install and log in first on Get Started.
Once per Run:
IDEMPOTENCY_KEY=$(uuidgen)Run it, and copy this same block to send it again:
curl -X POST https://api.glasser.ai/v1/runs \
-H "Authorization: Bearer gl_..." \
-H "Idempotency-Key: $IDEMPOTENCY_KEY" \
-H "Content-Type: application/json" \
-d '{"provider":"theirstack","endpoint":"/v1/jobs/search","input":{"limit":10,"job_title_or":["platform engineer"],"job_country_code_or":["US"],"posted_at_max_age_days":7},"endpoint_version":1}'Reuse the same Idempotency-Key to send it again: the second send is a read of the first Run. A new key is a new Run and a new Charge. Uses endpoint version 1; inspect the current price before running.
Step 2Try a specific example task
When you need to shortlist jobs, you might compare the available roles with your skills to find opportunities worth reviewing more closely.
Copy this prompt into your agent to review job matches for your skills.
Use theirstack:/v1/jobs/search on Glasser.
Find roles matching my skills in the returned job data and explain each match.Endpoint structure
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"posted_at_max_age_days"
],
"properties": {
"page": {
"type": "integer",
"maximum": 100,
"minimum": 0
},
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1
},
"job_title_or": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"maxItems": 10
},
"company_domain_or": {
"type": "array",
"items": {
"type": "string",
"maxLength": 255,
"minLength": 3
},
"maxItems": 25
},
"job_country_code_or": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z]{2}$"
},
"maxItems": 10
},
"posted_at_max_age_days": {
"type": "integer",
"maximum": 365,
"minimum": 0
}
},
"additionalProperties": false
}{
"limit": 10,
"job_title_or": [
"platform engineer"
],
"job_country_code_or": [
"US"
],
"posted_at_max_age_days": 7
}This Endpoint publishes no output schema. You get the Provider's own response body, unchanged — we do not warrant a shape we cannot guarantee.
How pricing works
| Per result returned | Charged for each result returned. No charge when no data is returned. | $0.035934 |
|---|---|---|
| Maximum per Run | The total charge will not exceed this amount. | $1.25 |
| Provider error | The Provider failed to answer. | $0.00 |
| Timed out | The Run exceeded its time limit. | $0.00 |
| Internal failure | An internal error prevented completion. | $0.00 |