addedInput schema / properties / intent / description
Added value: +"What the candidate is actually looking for, stated explicitly rather than guessed from the resume. Every field is optional; the ones given narrow the result, and the excluded* fields remove roles the candidate does not want to see."
addedInput schema / properties / intent / properties / countries / description
Added value: +"Two-letter codes the candidate may work in, such as IN or US. This is eligibility to work, not where the office is"
addedInput schema / properties / intent / properties / excludedCountries / description
Added value: +"Two-letter codes to drop even when a role is otherwise eligible"
addedInput schema / properties / intent / properties / excludedLocations / description
Added value: +"Cities or regions to drop, matched like locations"
addedInput schema / properties / intent / properties / excludedRoles / description
Added value: +"Role titles to drop, matched like roles"
addedInput schema / properties / intent / properties / excludedTerms / description
Added value: +"Words that disqualify a role, matched as whole words in the title, such as \"intern\" or \"sales\""
addedInput schema / properties / intent / properties / locations / description
Added value: +"Cities or regions to keep, matched as case-insensitive substrings of the job's location, such as \"Bengaluru\" or \"Delhi NCR\""
addedInput schema / properties / intent / properties / remote / description
Added value: +"True to keep only remote roles, false to drop them; omit to keep both"
addedInput schema / properties / intent / properties / requiredSkills / description
Added value: +"Skills a role must state to be kept, such as \"kubernetes\". Each is matched as a whole word"
addedInput schema / properties / intent / properties / roles / description
Added value: +"Role titles the candidate is looking for, in their own words, such as \"backend engineer\" or \"data analyst\". Matched against the job title"
addedInput schema / properties / intent / properties / seniority / description
Added value: +"Levels to keep, in the posting's own vocabulary, such as \"senior\" or \"lead\". Not a years-of-experience filter: use experienceYears in search_jobs for that"
addedInput schema / properties / jobId / description
Added value: +"Stable job id from search_jobs or recommend_jobs"
addedInput schema / properties / resume / description
Added value: +"The resume itself, passed inline. It is parsed in memory for this call and never written to disk, logged, or sent anywhere else."
addedInput schema / properties / resume / properties / format / description
Added value: +"How content is encoded: plain text, markdown, or base64 of a PDF or DOCX file"
changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "additionalProperties": true,
+ "properties": {
+ "assessment": {
+ "additionalProperties": true,
+ "description": "The overall read, with its reasoning",
+ "type": "object"
+ },
+ "interviewPreparationGaps": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "job": {
+ "additionalProperties": true,
+ "description": "The job that was analyzed",
+ "properties": {
+ "age": {
+ "description": "Bucketed posting age; undated means the board gave no date, not that the role is fresh",
+ "enum": [
+ "new",
+ "older",
+ "stale",
+ "undated"
+ ],
+ "type": "string"
+ },
+ "company": {
+ "type": "string"
+ },
+ "eligibleCountries": {
+ "description": "Two-letter codes the role is open to",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "experience": {
+ "additionalProperties": true,
+ "description": "Years the posting itself states as { min, max }; null when it states none, absent when the description was not read",
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "id": {
+ "description": "Stable id to pass to get_job, analyze_job_fit or optimize_resume",
+ "type": "string"
+ },
+ "location": {
+ "type": "string"
+ },
+ "postedDaysAgo": {
+ "type": "number"
+ },
+ "remote": {
+ "type": "boolean"
+ },
+ "title": {
+ "type": "string"
+ },
+ "updatedAt": {
+ "description": "When the board says the role was posted or last updated; absent when the board states none",
+ "type": "string"
+ },
+ "url": {
+ "description": "The employer's own posting, which is where an application is made",
+ "type": "string"
+ },
+ "workMode": {
+ "enum": [
+ "remote",
+ "hybrid",
+ "onsite",
+ "unknown"
+ ],
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "partiallySupported": {
+ "description": "Requirements with partial evidence, and what is missing",
+ "items": {
+ "additionalProperties": true,
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "profile": {
+ "additionalProperties": true,
+ "description": "What was read from the resume; not stored",
+ "type": "object"
+ },
+ "scores": {
+ "additionalProperties": true,
+ "type": "object"
+ },
+ "screeningRisks": {
+ "description": "What is likely to stop this application early",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "supported": {
+ "description": "Requirements the resume supports, each with the quoted evidence",
+ "items": {
+ "additionalProperties": true,
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "unsupported": {
+ "description": "Requirements the resume does not evidence at all",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "job",
+ "assessment"
+ ],
+ "type": "object"
+}