Title98/100
Search matching jobs
The title clearly communicates the tool’s action and subject. Keep it concise.
Description87/100
Search the jobs that match the user's résumé and filters, best match first, a page at a time. Leaves out jobs already applied to unless include_applied is true, and postings open only to nationals unless the profile lists a nationality or nationals_only says otherwise. Reads only.
The description explains the capability, when to use it, and what to expect.
Inputs92/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
query
Words in the title, employer or description.
Clear enough to supply this argument.
country
Country name or ISO code, e.g. "US", "United Kingdom", "AE".
Clear enough to supply this argument.
city
City the posting is in, e.g. "Dubai" or "London".
Clear enough to supply this argument.
workplace
Where the work is done; leave it out for any.
Clear enough to supply this argument.
employment_type
e.g. full_time, part_time, contract.
Clear enough to supply this argument.
seniority
Seniority as postings state it, e.g. "senior", "junior", "lead".
Clear enough to supply this argument.
min_score
Only jobs the résumé matches at least this well; leave it out for no floor.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
min_salary
Only jobs stating pay of at least this; a job with no stated salary is left out.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
salary_currency
ISO code of the currency the stated pay must be in: with min_salary the floor is read in that currency, on its own it keeps the jobs that state pay in it.
Clear enough to supply this argument.
posted_since
ISO date; only jobs posted on or after it. Jobs with no known posting date are left out.
Clear enough to supply this argument.
nationals_only
Whether postings open only to a country's nationals are left out, included, or the only ones kept; leaving it out excludes them unless the profile lists a nationality.
Clear enough to supply this argument.
sort
Order of the page: best match first, or newest posting first.
Clear enough to supply this argument.
include_applied
Include jobs already applied to; they are left out otherwise.
Clear enough to supply this argument.
limit
How many jobs to return.
Clear enough to supply this argument.
offset
Rows to skip for the next page: the previous page's coverage names the offset to pass.
Clear enough to supply this argument.
Annotations100/100
All four behavior hints are declared.
{
"title": "Search matching jobs",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Output schema91/100
The output schema explains the structured result.
View output schema
{
"type": "object",
"required": [
"jobs",
"offset",
"total",
"more",
"coverage"
],
"properties": {
"jobs": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"match"
],
"properties": {
"id": {
"type": "string",
"description": "The job id the other job tools take."
},
"city": {
"type": [
"string",
"null"
],
"description": "City the posting is in."
},
"match": {
"type": "object",
"required": [
"eligible",
"score",
"reasons"
],
"properties": {
"notes": {
"type": "array",
"items": {
"type": "string",
"description": "One note the assessment kept beside the score."
},
"description": "Notes the assessment kept beside the score; a full job read carries them, a list row does not."
},
"score": {
"type": "integer",
"description": "Match score from 0 to 100 against the user's résumé and targets; higher is better."
},
"missing": {
"type": "array",
"items": {
"type": "string",
"description": "One fact the assessment could not establish about the user."
},
"description": "What the assessment could not establish about the user for this posting; a full job read carries it, a list row does not."
},
"reasons": {
"type": "array",
"items": {
"type": "string",
"description": "One reason the job scored as it did."
},
"description": "Why the job scores what it does, in words."
},
"eligible": {
"type": "boolean",
"description": "Whether the user may take this job: work authorization, language and the posting's stated requirements all pass."
},
"breakdown": {
"type": "object",
"description": "Points each match factor added; a full job read carries them, a list row does not.",
"additionalProperties": {
"type": "integer",
"description": "Points this factor added to the score."
}
}
},
"description": "The assessment of this job against the user's résumé, targets and eligibility."
},
"saved": {
"type": "boolean",
"description": "Whether the user saved this job."
},
"title": {
"type": "string",
"description": "The posting's title as the employer states it."
},
"salary": {
"type": [
"object",
"null"
],
"required": [
"min",
"max",
"currency",
"period"
],
"properties": {
"max": {
"type": [
"number",
"null"
],
"description": "Highest amount the posting states, in the currency's units."
},
"min": {
"type": [
"number",
"null"
],
"description": "Lowest amount the posting states, in the currency's units."
},
"period": {
"type": [
"string",
"null"
],
"description": "What the amounts are for (year, month, week, day or hour) when the posting states a period Applysent recognizes."
},
"currency": {
"type": "string",
"description": "ISO code of the stated pay."
}
},
"description": "The pay the posting states, or null when it states none."
},
"company": {
"type": "string",
"description": "The employer's name."
},
"country": {
"type": [
"string",
"null"
],
"description": "Country the posting is in, as the catalogue recorded it."
},
"excerpt": {
"type": "string",
"description": "The start of the posting's text, plain, for a list row."
},
"provider": {
"type": "string",
"description": "The employer's hiring system the posting came from, e.g. workday, greenhouse or ashby."
},
"apply_url": {
"type": "string",
"description": "The employer's posting URL, where the application is filled."
},
"posted_at": {
"type": [
"string",
"null"
],
"description": "When the posting went up, ISO 8601 in UTC, when the catalogue knows it."
},
"apply_supported": {
"type": "boolean",
"description": "Whether Applysent can fill and submit this posting's form by itself."
}
},
"description": "One job row: its facts, its match assessment and the start of its text."
},
"description": "The page of matching jobs, best match first or newest first as asked."
},
"more": {
"type": "boolean",
"description": "True when later pages hold more jobs."
},
"total": {
"type": "integer",
"description": "How many jobs the filters match in all."
},
"offset": {
"type": "integer",
"description": "The offset this page starts at."
},
"coverage": {
"type": "object",
"required": [
"line",
"complete",
"gaps"
],
"properties": {
"gaps": {
"type": "array",
"items": {
"type": "object",
"required": [
"kind",
"what"
],
"properties": {
"kind": {
"type": "string",
"description": "Why the row is missing: \"page\" for later rows, \"earlier_pages\" for rows before this page, \"filtered\" for rows a filter left out."
},
"what": {
"type": "string",
"description": "The gap in words: the offset to ask for next, or what was filtered out."
}
},
"description": "One kind of row this result does not hold."
},
"description": "What this result does not hold, one entry per gap."
},
"line": {
"type": "string",
"description": "One sentence saying what this page holds, what was left out and what was not read; show it to the user as it is."
},
"total": {
"type": [
"integer",
"null"
],
"description": "How many rows the filters match in all, when that is known."
},
"complete": {
"type": "boolean",
"description": "True when this page holds every matching row and no earlier page was skipped."
},
"empty_reason": {
"type": [
"string",
"null"
],
"description": "Why nothing came back, when the page is empty; null when it holds rows."
}
},
"description": "What this page covers, so the assistant can say honestly what it read."
}
}
}