Resume, LinkedIn and interview practice tools for project, program and product managers.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Records the person's answer to the current question of a mock interview and checks its structure with the rules of check_interview_answer. Returns a compact verdict and what comes next: a follow-up probe for what the answer does not show (own action, a result in numbers, the figure before, one specific example), or the next question. skip moves on without an answer. An answer in another language is recorded and checked as its literal English translation (text_en) sent with it. Contact details are removed first. Requires sign-in with a PM Career Desk account that has an Interview Coach Pass.
The session_id that start_mock_interview returned.
The language the person writes in, as a code such as es, fr or ru; empty or en for English. The result names this language; findings are written in English.
True moves on to the next question without an answer.
Optional. The turn number of the question being answered; a repeated turn returns the same reply without recording the answer twice. 0 when not known.
The person's answer to the current question or follow-up, exactly as given.
Only when the text is not in English: a literal English translation of it, word for word, with no fact added or left out and figures and names as written. The fixed rules read this translation, and the result says so.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Records the person's answer to the current question of a mock interview and checks its structure with the rules of check_interview_answer. Returns a compact verdict and what comes next: a follow-up probe for what the answer does not show (own action, a result in numbers, the figure before, one specific example), or the next question. skip moves on without an answer. An answer in another language is recorded and checked as its literal English translation (text_en) sent with it. Contact details are removed first. Requires sign-in with a PM Career Desk account that has an Interview Coach Pass.
| Argument | Type | Description |
|---|---|---|
| lang | any | The language the person writes in, as a code such as es, fr or ru; empty or en for English. The result names this language; findings are written in English. |
| skip | boolean | True moves on to the next question without an answer. |
| turn | integer | Optional. The turn number of the question being answered; a repeated turn returns the same reply without recording the answer twice. 0 when not known. |
| answer | string | The person's answer to the current question or follow-up, exactly as given. |
| text_en | string | Only when the text is not in English: a literal English translation of it, word for word, with no fact added or left out and figures and names as written. The fixed rules read this translation, and the result says so. |
| session_id* | string | The session_id that start_mock_interview returned. |
{
"type": "object",
"title": "answer_mock_question_toolArguments",
"required": [
"session_id"
],
"properties": {
"lang": {
"anyOf": [
{
"type": "string",
"maxLength": 35
},
{
"type": "null"
}
],
"title": "Lang",
"default": "",
"description": "The language the person writes in, as a code such as es, fr or ru; empty or en for English. The result names this language; findings are written in English."
},
"skip": {
"type": "boolean",
"title": "Skip",
"default": false,
"description": "True moves on to the next question without an answer."
},
"turn": {
"type": "integer",
"title": "Turn",
"default": 0,
"description": "Optional. The turn number of the question being answered; a repeated turn returns the same reply without recording the answer twice. 0 when not known."
},
"answer": {
"type": "string",
"title": "Answer",
"default": "",
"description": "The person's answer to the current question or follow-up, exactly as given."
},
"text_en": {
"type": "string",
"title": "Text En",
"default": "",
"description": "Only when the text is not in English: a literal English translation of it, word for word, with no fact added or left out and figures and names as written. The fixed rules read this translation, and the result says so."
},
"session_id": {
"type": "string",
"title": "Session Id",
"description": "The session_id that start_mock_interview returned."
}
}
}Builds 10 to 15 STAR interview stories (situation, task, action, result) from the resume text of a project, program or product manager: each story uses only the resume's own lines and figures, names the competencies it shows (conflict, risk, vendor management, stakeholder management, influence without authority and others), and lists the questions still open, such as a result without a figure or an action that reads as the team's. Fixed rules, no model. Contact details are removed before the check; the resume is not stored. Requires sign-in with a PM Career Desk account that has an Interview Coach Pass.
| Argument | Type | Description |
|---|---|---|
| role | any | Optional. The target role, for example program manager or technical program manager. |
| resume_text* | string | The resume as plain text, copied in full from what the person pasted or from the text of the file they attached. At least the summary and the experience section. |
{
"type": "object",
"title": "build_story_bank_toolArguments",
"required": [
"resume_text"
],
"properties": {
"role": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Role",
"default": "",
"description": "Optional. The target role, for example program manager or technical program manager."
},
"resume_text": {
"type": "string",
"title": "Resume Text",
"description": "The resume as plain text, copied in full from what the person pasted or from the text of the file they attached. At least the summary and the experience section."
}
}
}Checks the structure of one practice answer to an interview question. Use it when the person writes or pastes an answer and wants feedback before the interview. Checks for a situation, the speaker's own action in the first person, a result, a before and after figure or a named record, vague amounts, length, filler and hedging words, and the balance of we and I; returns the rubric for the question type and what is missing. Needs question_id (from prepare_interview_questions) or question_type (for example conflict, failure, stakeholder, prioritization, measure). With resume_text, figures the resume does not show are marked unconfirmed. It does not judge whether the story is true and does not write the answer. Up to 6000 characters; contact details are removed first; nothing is stored.
| Argument | Type | Description |
|---|---|---|
| lang | any | The language the person writes in, as a code such as es, fr or ru; empty or en for English. The result names this language; findings are written in English. |
| answer* | string | The practice answer as the person would say it, in their own words. |
| text_en | string | Only when the text is not in English: a literal English translation of it, word for word, with no fact added or left out and figures and names as written. The fixed rules read this translation, and the result says so. |
| question_id | string | The id of the question from prepare_interview_questions, for example line.L12.measure, req.R3.gap or beh.c-conflict. One of question_id and question_type is needed. |
Checks the LinkedIn headline and About section (and, optionally, the top experience entry) of a project, program or product manager, TPM or PMO lead. Use it when someone asks to review or improve their LinkedIn profile for recruiters. Checks the 220 character headline limit, the role title and searchable keywords, filler, what About shows before see more, figures and named scope, first person, personal details in public text, and whether the titles agree. Returns up to 10 findings in the order of risk, each with the line, the question a recruiter may ask and a direction, plus a score per section. It does not rewrite the text. English text; contact details are removed first; nothing is stored.
| Argument | Type | Description |
|---|---|---|
| lang | any | The language the person writes in, as a code such as es, fr or ru; empty or en for English. The result names this language; findings are written in English. |
| role | any | Optional. One of project-manager, program-manager, technical-program-manager, product-manager, scrum-master, pmo, it-manager, business-analyst, delivery-manager; a title as written (for example Senior Program Manager) is also read. Empty when not sure. |
| about | string | The About section as written. |
| about_en | string | Only when the profile is not in English: a literal English translation of the About section, word for word, with no fact added or left out and figures and names as written. |
| headline | string | The LinkedIn headline as written. At least the headline or the About section is needed. |
Checks one resume bullet of a project, program or product manager, TPM or PMO lead with rules written by practitioners. Use it when someone asks about a single line or wants to test a rewrite of it. Returns one finding and the question a hiring manager may ask about that line. 5 words to 500 characters, English; contact details are removed first; nothing is stored.
| Argument | Type | Description |
|---|---|---|
| lang | any | The language the person writes in, as a code such as es, fr or ru; empty or en for English. The result names this language; findings are written in English. |
| line* | string | One resume bullet as the person wrote it, 5 words to 500 characters. Several lines: the first full line is checked. |
| role | any | Optional. One of project-manager, program-manager, technical-program-manager, product-manager, scrum-master, pmo, it-manager, business-analyst, delivery-manager; a title as written (for example Senior Program Manager) is also read. Empty when not sure. |
| text_en | string | Only when the text is not in English: a literal English translation of it, word for word, with no fact added or left out and figures and names as written. The fixed rules read this translation, and the result says so. |
{
"type": "object",
"title": "check_resume_line_toolArguments",
"required": [
"line"
],
"properties": {
"lang": {
"anyOf": [
{
"type": "string",
"maxLength": 35
},
{
"type": "null"
}
],
"title": "Lang",
"default": "",
"description": "The language the person writes in, as a code such as es, fr or ru; empty or en for English. The result names this language; findings are written in English."
},
"line": {
"type": "string",
"title": "Line",
"description": "One resume bullet as the person wrote it, 5 words to 500 characters. Several lines: the first full line is checked."
},
"role": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Role",
"default": "",
"description": "Optional. One of project-manager, program-manager, technical-program-manager, product-manager, scrum-master, pmo, it-manager, business-analyst, delivery-manager; a title as written (for example Senior Program Manager) is also read. Empty when not sure."
},
"text_en": {
"type": "string",
"title": "Text En",
"default": "",
"description": "Only when the text is not in English: a literal English translation of it, word for word, with no fact added or left out and figures and names as written. The fixed rules read this translation, and the result says so."
}
}
}Drafts a 30-60-90 day plan skeleton for one job posting: what to learn in the first 30 days (the stakeholders and systems the posting names, a delivery health check), quick wins by day 60 tied to the problems the posting states, and day 90 goals written as targets for the person to set. Each item names the posting requirement it answers and, where one fits, the person's own resume line. Fixed rules, no model. Contact details are removed before the check; the resume and the posting are not stored. Requires sign-in with a PM Career Desk account that has an Interview Coach Pass.
| Argument | Type | Description |
|---|---|---|
| role | any | Optional. The target role, for example program manager or technical program manager. |
| job_posting* | string | The full text of the job posting, as the person gave it, at least 15 words; the plan is built from its requirements. |
| resume_text* | string | The resume as plain text, copied in full from what the person pasted or from the text of the file they attached. At least the summary and the experience section. |
{
"type": "object",
"title": "draft_30_60_90_plan_toolArguments",
"required": [
"resume_text",
"job_posting"
],
"properties": {
"role": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Role",
"default": "",
"description": "Optional. The target role, for example program manager or technical program manager."
},
"job_posting": {
"type": "string",
"title": "Job Posting",
"description": "The full text of the job posting, as the person gave it, at least 15 words; the plan is built from its requirements."
},
"resume_text": {
"type": "string",
"title": "Resume Text",
"description": "The resume as plain text, copied in full from what the person pasted or from the text of the file they attached. At least the summary and the experience section."
}
}
}Builds the full interview plan (as prepare_interview_plan) as a Word file (.docx): the questions by interview stage with the points a strong answer includes, the requirement map and the gaps, and the answer texts the person kept with save_practice. Returns a download link that works once and expires after 10 minutes; the file is built in memory and not kept. Contact details are removed before the check. Requires sign-in with a PM Career Desk account that has an Interview Coach Pass.
| Argument | Type | Description |
|---|---|---|
| role | any | Optional. One of project-manager, program-manager, technical-program-manager, product-manager, scrum-master, pmo, it-manager, business-analyst, delivery-manager; a title as written (for example Senior Program Manager) is also read. Empty when not sure. |
| company | any | Optional. The employer's name as written in the posting. |
| job_posting | any | The full text of the job posting, as the person gave it. Optional; with it the result adds the requirements, the gaps and questions about them. |
| resume_text* | string | The resume as plain text, copied in full from what the person pasted or from the text of the file they attached. At least the summary and the experience section. |
| resume_outline | any | Optional structure of the resume: roles with title, company, dates and bullets; summary; skills; certifications; education. Every line must appear word for word in resume_text; lines that do not are left out and counted in the result. Without it the plain text is read. |
Ends a mock interview and returns the scorecard: each competency met, partly or not shown (from the structure checks), and the three questions to practise next with their ids. Saves the progress of each checked answer (question id, checks met, word count) to the practice of the account, deleted after 180 days; the answer texts only with keep_answer_text true, encrypted with the account key (for an answer not in English, its English translation); nothing with save_progress false. The answers are then removed from the session; finishing again returns the same scorecard. Requires sign-in with a PM Career Desk account that has an Interview Coach Pass.
| Argument | Type | Description |
|---|---|---|
| session_id* | string | The session_id that start_mock_interview returned. |
| save_progress | boolean | False saves nothing to the practice of the account. |
| keep_answer_text | boolean | True only when the person asked to keep the text of the answer; it is kept encrypted with the account key. |
{
"type": "object",
"title": "finish_mock_interview_toolArguments",
"required": [
"session_id"
],
"properties": {
"session_id": {
"type": "string",
"title": "Session Id",
"description": "The session_id that start_mock_interview returned."
},
"save_progress": {
"type": "boolean",
"title": "Save Progress",
"default": true,
"description": "False saves nothing to the practice of the account."
},
"keep_answer_text": {
"type": "boolean",
"title": "Keep Answer Text",
"default": false,
"description": "True only when the person asked to keep the text of the answer; it is kept encrypted with the account key."
}
}
}Returns the 10 questions of the PM Archetype test for project, program and product managers, each with six options labelled A to F. For reflection, not a psychometric or hiring assessment.
No arguments.
{
"type": "object",
"title": "get_pm_archetype_test_toolArguments",
"properties": {}
}Returns the 9 questions of the title fit check, which compares project manager, program manager and technical program manager for a person's current work. Options are labelled a to d.
No arguments.
{
"type": "object",
"title": "get_pm_title_fit_questions_toolArguments",
"properties": {}
}Returns the practice attempts saved on the signed-in account, newest first (up to 50), with a summary per question: attempts, the best number of structure checks met, the last date. Kept answer texts are included only with include_answer_text true. Requires sign-in with a PM Career Desk account that has an Interview Coach Pass.
| Argument | Type | Description |
|---|---|---|
| question_id | string | Optional. Only the attempts of this question id. |
| include_answer_text | boolean | True to include the kept answer texts. |
{
"type": "object",
"title": "get_practice_toolArguments",
"properties": {
"question_id": {
"type": "string",
"title": "Question Id",
"default": "",
"description": "Optional. Only the attempts of this question id."
},
"include_answer_text": {
"type": "boolean",
"title": "Include Answer Text",
"default": false,
"description": "True to include the kept answer texts."
}
}
}Scores the 9 title fit answers (a to d, in question order, as returned by get_pm_title_fit_questions) and returns the closest title among project manager, program manager and technical program manager, with what hiring managers usually look for under that title. Nothing is stored.
| Argument | Type | Description |
|---|---|---|
| answers* | any | The 9 answer letters, a to d, one per question in the order of get_pm_title_fit_questions, as a list or as one string. |
{
"type": "object",
"title": "match_pm_title_toolArguments",
"required": [
"answers"
],
"properties": {
"answers": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "string"
}
],
"title": "Answers",
"description": "The 9 answer letters, a to d, one per question in the order of get_pm_title_fit_questions, as a list or as one string."
}
}
}Matches a job posting to a resume of a project, program or product manager, TPM, PMO lead or business analyst. Use it when someone asks whether they fit a posting, what is missing, or how to tailor their resume to it. Returns each requirement of the posting as covered, partial, gap or not checked, with the resume lines that show it; a years requirement is read against the dates of the roles and a budget size against the figures in the lines. Fixed rules, the same result for the same texts. Resume up to 30000 characters, posting up to 15000; contact details are removed first; nothing is stored.
| Argument | Type | Description |
|---|---|---|
| role | any | Optional. One of project-manager, program-manager, technical-program-manager, product-manager, scrum-master, pmo, it-manager, business-analyst, delivery-manager; a title as written (for example Senior Program Manager) is also read. Empty when not sure. |
| job_posting | any | The full text of the job posting, as the person gave it. Optional; with it the result adds the requirements, the gaps and questions about them. |
| resume_text* | string | The resume as plain text, copied in full from what the person pasted or from the text of the file they attached. At least the summary and the experience section. |
| resume_outline | any | Optional structure of the resume: roles with title, company, dates and bullets; summary; skills; certifications; education. Every line must appear word for word in resume_text; lines that do not are left out and counted in the result. Without it the plain text is read. |
Builds the full interview plan for a project, program or product manager (or a business analyst) from the resume text and, optionally, a job posting and a company name: every resume line a hiring manager is likely to press on, every requirement of the posting matched to the resume, every company question with its source pages, and the questions arranged by interview stage (recruiter screen, hiring manager, panel, company round). Same inputs and question ids as prepare_interview_questions. Fixed rules, no model. Contact details are removed before the check; the resume and the posting are not stored. Requires sign-in with a PM Career Desk account that has an Interview Coach Pass.
| Argument | Type | Description |
|---|---|---|
| role | any | Optional. One of project-manager, program-manager, technical-program-manager, product-manager, scrum-master, pmo, it-manager, business-analyst, delivery-manager; a title as written (for example Senior Program Manager) is also read. Empty when not sure. |
| company | any | Optional. The employer's name as written in the posting. |
| industry | any | Optional. The employer's industry, one of healthcare-life-sciences, financial-services, software-saas, government-public-sector, consulting-services, retail-supply-chain, manufacturing-industrial, energy-utilities; a plain name such as healthcare or banking is also read. Adds questions written for that industry. Empty when not sure. |
| job_posting | any | The full text of the job posting, as the person gave it. Optional; with it the result adds the requirements, the gaps and questions about them. |
Builds a job interview prep set for a project, program or product manager, TPM, PMO lead or business analyst from their resume text and, if they have it, the job posting. Use it when someone shares a resume (pasted or attached) before an interview, or asks what a hiring manager will ask them. Returns: the resume lines a hiring manager is likely to press on, each with a question that quotes the line and the points a strong answer covers; each requirement of the posting covered, partial or a gap, with the gaps as questions; and behavioral questions for the role. Each question has an id to pass to check_interview_answer when the person practises it. Optional: company (adds questions from what some large US employers publish, with source links), interview_date (adds the days left and what to practise first). Fixed rules written by practitioners, the same result for the same text. English text; contact details are removed first; nothing is stored.
| Argument | Type | Description |
|---|---|---|
| lang | any | The language the person writes in, as a code such as es, fr or ru; empty or en for English. The result names this language; findings are written in English. |
| role | any | Optional. One of project-manager, program-manager, technical-program-manager, product-manager, scrum-master, pmo, it-manager, business-analyst, delivery-manager; a title as written (for example Senior Program Manager) is also read. Empty when not sure. |
| company | any | Optional. The employer's name as written in the posting. |
| industry | any | Optional. The employer's industry, one of healthcare-life-sciences, financial-services, software-saas, government-public-sector, consulting-services, retail-supply-chain, manufacturing-industrial, energy-utilities; a plain name such as healthcare or banking is also read. Adds questions written for that industry. Empty when not sure. |
Reviews a whole resume of a project, program or product manager, TPM, PMO lead or business analyst, line by line, with rules written by practitioners. Use it when someone shares their resume and asks for a review, feedback, or what to fix before applying. Returns up to 12 lines in the order of risk (unsupported figures, duties with no result, vague claims), each with the finding and the question a hiring manager may ask about it, and the role signals the resume does not show yet. It points at what to fix and does not rewrite lines, so the person's own facts stay their own. English text up to 30000 characters; contact details are removed first; nothing is stored.
| Argument | Type | Description |
|---|---|---|
| role | any | Optional. One of project-manager, program-manager, technical-program-manager, product-manager, scrum-master, pmo, it-manager, business-analyst, delivery-manager; a title as written (for example Senior Program Manager) is also read. Empty when not sure. |
| resume_text* | string | The resume as plain text, copied in full from what the person pasted or from the text of the file they attached. At least the summary and the experience section. |
{
"type": "object",
"title": "review_resume_toolArguments",
"required": [
"resume_text"
],
"properties": {
"role": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Role",
"default": "",
"description": "Optional. One of project-manager, program-manager, technical-program-manager, product-manager, scrum-master, pmo, it-manager, business-analyst, delivery-manager; a title as written (for example Senior Program Manager) is also read. Empty when not sure."
},
"resume_text": {
"type": "string",
"title": "Resume Text",
"description": "The resume as plain text, copied in full from what the person pasted or from the text of the file they attached. At least the summary and the experience section."
}
}
}Saves one practice answer attempt to the signed-in account, when the person asks to save it. The answer is checked with the same structure rules as check_interview_answer; by default only the progress is saved (question id and type, structure checks met, word count, date). The answer text and the question are kept only with keep_answer_text true, encrypted with the account key. Saved attempts are deleted after 180 days. An answer in another language is checked through its literal English translation (text_en) sent with it. Contact details are removed before the check. Requires sign-in with a PM Career Desk account that has an Interview Coach Pass.
| Argument | Type | Description |
|---|---|---|
| lang | any | The language the person writes in, as a code such as es, fr or ru; empty or en for English. The result names this language; findings are written in English. |
| answer* | string | The practice answer as the person would say it, in their own words. |
| text_en | string | Only when the text is not in English: a literal English translation of it, word for word, with no fact added or left out and figures and names as written. The fixed rules read this translation, and the result says so. |
| question_id | string | The id of the question from prepare_interview_questions, for example line.L12.measure, req.R3.gap or beh.c-conflict. One of question_id and question_type is needed. |
| question_text | string | Optional. The question as asked; kept only together with the answer text. |
| question_type |
Scores the PM Archetype test from 10 answer letters (A to F, in question order, as returned by get_pm_archetype_test). Returns the primary archetype, an optional secondary streak, strengths, a blind spot and one resume fix. Nothing is stored.
| Argument | Type | Description |
|---|---|---|
| answers* | any | The 10 answer letters, A to F, one per question in the order of get_pm_archetype_test, as a list or as one string, for example ["A", "C", "B", "F", "A", "D", "E", "B", "C", "A"] or "ACBFADEBCA". |
{
"type": "object",
"title": "score_pm_archetype_toolArguments",
"required": [
"answers"
],
"properties": {
"answers": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "string"
}
],
"title": "Answers",
"description": "The 10 answer letters, A to F, one per question in the order of get_pm_archetype_test, as a list or as one string, for example [\"A\", \"C\", \"B\", \"F\", \"A\", \"D\", \"E\", \"B\", \"C\", \"A\"] or \"ACBFADEBCA\"."
}
}
}Starts a mock interview for a project, program or product manager (or a business analyst) from the resume text and, optionally, a job posting and a company name. Picks 5 to 10 questions for one interview stage (screen, hiring_manager, panel or final) from the resume lines, the requirements of the posting, behavioral questions for the role and company principle questions, each with the competency it tests and the follow-up probes an interviewer uses. Returns a session id and the first question only. The session is kept 24 hours, encrypted with the account key. Questions are written in English; optional lang names the person's language. Contact details are removed first. Requires sign-in with a PM Career Desk account that has an Interview Coach Pass.
| Argument | Type | Description |
|---|---|---|
| lang | any | The language the person writes in, as a code such as es, fr or ru; empty or en for English. The result names this language; findings are written in English. |
| role | any | Optional. One of project-manager, program-manager, technical-program-manager, product-manager, scrum-master, pmo, it-manager, business-analyst, delivery-manager; a title as written (for example Senior Program Manager) is also read. Empty when not sure. |
| stage | string | The interview stage: screen, hiring_manager, panel or final. |
| length | integer | The number of questions, 5 to 10; a number outside is held to the nearest end. |
| company | any | Optional. The employer's name as written in the posting. |
| job_posting |
| resume_text |
| string |
| Optional. The resume, or the resume line the question came from; figures of the answer it does not show are marked unconfirmed. |
| question_type | string | Used when there is no question_id: measure, ownership, stakeholder, conflict, failure, prioritization or requirement_gap. |
{
"type": "object",
"title": "check_interview_answer_toolArguments",
"required": [
"answer"
],
"properties": {
"lang": {
"anyOf": [
{
"type": "string",
"maxLength": 35
},
{
"type": "null"
}
],
"title": "Lang",
"default": "",
"description": "The language the person writes in, as a code such as es, fr or ru; empty or en for English. The result names this language; findings are written in English."
},
"answer": {
"type": "string",
"title": "Answer",
"description": "The practice answer as the person would say it, in their own words."
},
"text_en": {
"type": "string",
"title": "Text En",
"default": "",
"description": "Only when the text is not in English: a literal English translation of it, word for word, with no fact added or left out and figures and names as written. The fixed rules read this translation, and the result says so."
},
"question_id": {
"type": "string",
"title": "Question Id",
"default": "",
"description": "The id of the question from prepare_interview_questions, for example line.L12.measure, req.R3.gap or beh.c-conflict. One of question_id and question_type is needed."
},
"resume_text": {
"type": "string",
"title": "Resume Text",
"default": "",
"description": "Optional. The resume, or the resume line the question came from; figures of the answer it does not show are marked unconfirmed."
},
"question_type": {
"type": "string",
"title": "Question Type",
"default": "",
"description": "Used when there is no question_id: measure, ownership, stakeholder, conflict, failure, prioritization or requirement_gap."
}
}
}| experience | string | Optional. The top experience entry: the title line, then its description. |
| headline_en | string | Only when the profile is not in English: a literal English translation of the headline, word for word, with no fact added or left out and figures and names as written. |
| experience_en | string | Only when the profile is not in English: a literal English translation of the top experience entry, word for word, with no fact added or left out and figures and names as written. |
{
"type": "object",
"title": "check_linkedin_profile_toolArguments",
"properties": {
"lang": {
"anyOf": [
{
"type": "string",
"maxLength": 35
},
{
"type": "null"
}
],
"title": "Lang",
"default": "",
"description": "The language the person writes in, as a code such as es, fr or ru; empty or en for English. The result names this language; findings are written in English."
},
"role": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Role",
"default": "",
"description": "Optional. One of project-manager, program-manager, technical-program-manager, product-manager, scrum-master, pmo, it-manager, business-analyst, delivery-manager; a title as written (for example Senior Program Manager) is also read. Empty when not sure."
},
"about": {
"type": "string",
"title": "About",
"default": "",
"description": "The About section as written."
},
"about_en": {
"type": "string",
"title": "About En",
"default": "",
"description": "Only when the profile is not in English: a literal English translation of the About section, word for word, with no fact added or left out and figures and names as written."
},
"headline": {
"type": "string",
"title": "Headline",
"default": "",
"description": "The LinkedIn headline as written. At least the headline or the About section is needed."
},
"experience": {
"type": "string",
"title": "Experience",
"default": "",
"description": "Optional. The top experience entry: the title line, then its description."
},
"headline_en": {
"type": "string",
"title": "Headline En",
"default": "",
"description": "Only when the profile is not in English: a literal English translation of the headline, word for word, with no fact added or left out and figures and names as written."
},
"experience_en": {
"type": "string",
"title": "Experience En",
"default": "",
"description": "Only when the profile is not in English: a literal English translation of the top experience entry, word for word, with no fact added or left out and figures and names as written."
}
}
}| job_requirements |
| any |
| Optional. The requirement lines of the job posting, each word for word from job_posting; lines that are not are left out and counted in the result. Without them the requirements are read from job_posting. |
| include_saved_answers | boolean | False leaves the kept practice answers out of the file. |
{
"type": "object",
"$defs": {
"OutlineRole": {
"type": "object",
"title": "OutlineRole",
"properties": {
"dates": {
"type": "string",
"title": "Dates",
"default": "",
"maxLength": 80,
"description": "Dates of the role, as written, for example Jan 2019 - Present."
},
"title": {
"type": "string",
"title": "Title",
"default": "",
"maxLength": 200,
"description": "Job title, as written in the resume."
},
"bullets": {
"type": "array",
"items": {
"type": "string"
},
"title": "Bullets",
"maxItems": 40,
"description": "The bullets of this role, each copied word for word."
},
"company": {
"type": "string",
"title": "Company",
"default": "",
"maxLength": 200,
"description": "Employer, as written in the resume."
}
}
},
"ResumeOutline": {
"type": "object",
"title": "ResumeOutline",
"properties": {
"roles": {
"type": "array",
"items": {
"$ref": "#/$defs/OutlineRole"
},
"title": "Roles",
"maxItems": 30,
"description": "Roles in resume order."
},
"skills": {
"type": "array",
"items": {
"type": "string"
},
"title": "Skills",
"maxItems": 60,
"description": "Skills or tools lines, word for word."
},
"summary": {
"type": "array",
"items": {
"type": "string"
},
"title": "Summary",
"maxItems": 60,
"description": "Summary lines, word for word."
},
"education": {
"type": "array",
"items": {
"type": "string"
},
"title": "Education",
"maxItems": 60,
"description": "Education lines, word for word."
},
"certifications": {
"type": "array",
"items": {
"type": "string"
},
"title": "Certifications",
"maxItems": 60,
"description": "One credential per item, word for word."
}
}
}
},
"title": "export_prep_pack_toolArguments",
"required": [
"resume_text"
],
"properties": {
"role": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Role",
"default": "",
"description": "Optional. One of project-manager, program-manager, technical-program-manager, product-manager, scrum-master, pmo, it-manager, business-analyst, delivery-manager; a title as written (for example Senior Program Manager) is also read. Empty when not sure."
},
"company": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Company",
"default": "",
"description": "Optional. The employer's name as written in the posting."
},
"job_posting": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Job Posting",
"default": "",
"description": "The full text of the job posting, as the person gave it. Optional; with it the result adds the requirements, the gaps and questions about them."
},
"resume_text": {
"type": "string",
"title": "Resume Text",
"description": "The resume as plain text, copied in full from what the person pasted or from the text of the file they attached. At least the summary and the experience section."
},
"resume_outline": {
"anyOf": [
{
"$ref": "#/$defs/ResumeOutline"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional structure of the resume: roles with title, company, dates and bullets; summary; skills; certifications; education. Every line must appear word for word in resume_text; lines that do not are left out and counted in the result. Without it the plain text is read."
},
"job_requirements": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Job Requirements",
"default": null,
"description": "Optional. The requirement lines of the job posting, each word for word from job_posting; lines that are not are left out and counted in the result. Without them the requirements are read from job_posting."
},
"include_saved_answers": {
"type": "boolean",
"title": "Include Saved Answers",
"default": true,
"description": "False leaves the kept practice answers out of the file."
}
}
}| job_requirements | any | Optional. The requirement lines of the job posting, each word for word from job_posting; lines that are not are left out and counted in the result. Without them the requirements are read from job_posting. |
{
"type": "object",
"$defs": {
"OutlineRole": {
"type": "object",
"title": "OutlineRole",
"properties": {
"dates": {
"type": "string",
"title": "Dates",
"default": "",
"maxLength": 80,
"description": "Dates of the role, as written, for example Jan 2019 - Present."
},
"title": {
"type": "string",
"title": "Title",
"default": "",
"maxLength": 200,
"description": "Job title, as written in the resume."
},
"bullets": {
"type": "array",
"items": {
"type": "string"
},
"title": "Bullets",
"maxItems": 40,
"description": "The bullets of this role, each copied word for word."
},
"company": {
"type": "string",
"title": "Company",
"default": "",
"maxLength": 200,
"description": "Employer, as written in the resume."
}
}
},
"ResumeOutline": {
"type": "object",
"title": "ResumeOutline",
"properties": {
"roles": {
"type": "array",
"items": {
"$ref": "#/$defs/OutlineRole"
},
"title": "Roles",
"maxItems": 30,
"description": "Roles in resume order."
},
"skills": {
"type": "array",
"items": {
"type": "string"
},
"title": "Skills",
"maxItems": 60,
"description": "Skills or tools lines, word for word."
},
"summary": {
"type": "array",
"items": {
"type": "string"
},
"title": "Summary",
"maxItems": 60,
"description": "Summary lines, word for word."
},
"education": {
"type": "array",
"items": {
"type": "string"
},
"title": "Education",
"maxItems": 60,
"description": "Education lines, word for word."
},
"certifications": {
"type": "array",
"items": {
"type": "string"
},
"title": "Certifications",
"maxItems": 60,
"description": "One credential per item, word for word."
}
}
}
},
"title": "match_resume_to_job_toolArguments",
"required": [
"resume_text"
],
"properties": {
"role": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Role",
"default": "",
"description": "Optional. One of project-manager, program-manager, technical-program-manager, product-manager, scrum-master, pmo, it-manager, business-analyst, delivery-manager; a title as written (for example Senior Program Manager) is also read. Empty when not sure."
},
"job_posting": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Job Posting",
"default": "",
"description": "The full text of the job posting, as the person gave it. Optional; with it the result adds the requirements, the gaps and questions about them."
},
"resume_text": {
"type": "string",
"title": "Resume Text",
"description": "The resume as plain text, copied in full from what the person pasted or from the text of the file they attached. At least the summary and the experience section."
},
"resume_outline": {
"anyOf": [
{
"$ref": "#/$defs/ResumeOutline"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional structure of the resume: roles with title, company, dates and bullets; summary; skills; certifications; education. Every line must appear word for word in resume_text; lines that do not are left out and counted in the result. Without it the plain text is read."
},
"job_requirements": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Job Requirements",
"default": null,
"description": "Optional. The requirement lines of the job posting, each word for word from job_posting; lines that are not are left out and counted in the result. Without them the requirements are read from job_posting."
}
}
}| resume_text* | string | The resume as plain text, copied in full from what the person pasted or from the text of the file they attached. At least the summary and the experience section. |
| resume_outline | any | Optional structure of the resume: roles with title, company, dates and bullets; summary; skills; certifications; education. Every line must appear word for word in resume_text; lines that do not are left out and counted in the result. Without it the plain text is read. |
| job_requirements | any | Optional. The requirement lines of the job posting, each word for word from job_posting; lines that are not are left out and counted in the result. Without them the requirements are read from job_posting. |
{
"type": "object",
"$defs": {
"OutlineRole": {
"type": "object",
"title": "OutlineRole",
"properties": {
"dates": {
"type": "string",
"title": "Dates",
"default": "",
"maxLength": 80,
"description": "Dates of the role, as written, for example Jan 2019 - Present."
},
"title": {
"type": "string",
"title": "Title",
"default": "",
"maxLength": 200,
"description": "Job title, as written in the resume."
},
"bullets": {
"type": "array",
"items": {
"type": "string"
},
"title": "Bullets",
"maxItems": 40,
"description": "The bullets of this role, each copied word for word."
},
"company": {
"type": "string",
"title": "Company",
"default": "",
"maxLength": 200,
"description": "Employer, as written in the resume."
}
}
},
"ResumeOutline": {
"type": "object",
"title": "ResumeOutline",
"properties": {
"roles": {
"type": "array",
"items": {
"$ref": "#/$defs/OutlineRole"
},
"title": "Roles",
"maxItems": 30,
"description": "Roles in resume order."
},
"skills": {
"type": "array",
"items": {
"type": "string"
},
"title": "Skills",
"maxItems": 60,
"description": "Skills or tools lines, word for word."
},
"summary": {
"type": "array",
"items": {
"type": "string"
},
"title": "Summary",
"maxItems": 60,
"description": "Summary lines, word for word."
},
"education": {
"type": "array",
"items": {
"type": "string"
},
"title": "Education",
"maxItems": 60,
"description": "Education lines, word for word."
},
"certifications": {
"type": "array",
"items": {
"type": "string"
},
"title": "Certifications",
"maxItems": 60,
"description": "One credential per item, word for word."
}
}
}
},
"title": "prepare_interview_plan_toolArguments",
"required": [
"resume_text"
],
"properties": {
"role": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Role",
"default": "",
"description": "Optional. One of project-manager, program-manager, technical-program-manager, product-manager, scrum-master, pmo, it-manager, business-analyst, delivery-manager; a title as written (for example Senior Program Manager) is also read. Empty when not sure."
},
"company": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Company",
"default": "",
"description": "Optional. The employer's name as written in the posting."
},
"industry": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Industry",
"default": "",
"description": "Optional. The employer's industry, one of healthcare-life-sciences, financial-services, software-saas, government-public-sector, consulting-services, retail-supply-chain, manufacturing-industrial, energy-utilities; a plain name such as healthcare or banking is also read. Adds questions written for that industry. Empty when not sure."
},
"job_posting": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Job Posting",
"default": "",
"description": "The full text of the job posting, as the person gave it. Optional; with it the result adds the requirements, the gaps and questions about them."
},
"resume_text": {
"type": "string",
"title": "Resume Text",
"description": "The resume as plain text, copied in full from what the person pasted or from the text of the file they attached. At least the summary and the experience section."
},
"resume_outline": {
"anyOf": [
{
"$ref": "#/$defs/ResumeOutline"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional structure of the resume: roles with title, company, dates and bullets; summary; skills; certifications; education. Every line must appear word for word in resume_text; lines that do not are left out and counted in the result. Without it the plain text is read."
},
"job_requirements": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Job Requirements",
"default": null,
"description": "Optional. The requirement lines of the job posting, each word for word from job_posting; lines that are not are left out and counted in the result. Without them the requirements are read from job_posting."
}
}
}| job_posting | any | The full text of the job posting, as the person gave it. Optional; with it the result adds the requirements, the gaps and questions about them. |
| resume_text* | string | The resume as plain text, copied in full from what the person pasted or from the text of the file they attached. At least the summary and the experience section. |
| interview_date | any | Optional. The interview date as YYYY-MM-DD. |
| resume_outline | any | Optional structure of the resume: roles with title, company, dates and bullets; summary; skills; certifications; education. Every line must appear word for word in resume_text; lines that do not are left out and counted in the result. Without it the plain text is read. |
| job_requirements | any | Optional. The requirement lines of the job posting, each word for word from job_posting; lines that are not are left out and counted in the result. Without them the requirements are read from job_posting. |
{
"type": "object",
"$defs": {
"OutlineRole": {
"type": "object",
"title": "OutlineRole",
"properties": {
"dates": {
"type": "string",
"title": "Dates",
"default": "",
"maxLength": 80,
"description": "Dates of the role, as written, for example Jan 2019 - Present."
},
"title": {
"type": "string",
"title": "Title",
"default": "",
"maxLength": 200,
"description": "Job title, as written in the resume."
},
"bullets": {
"type": "array",
"items": {
"type": "string"
},
"title": "Bullets",
"maxItems": 40,
"description": "The bullets of this role, each copied word for word."
},
"company": {
"type": "string",
"title": "Company",
"default": "",
"maxLength": 200,
"description": "Employer, as written in the resume."
}
}
},
"ResumeOutline": {
"type": "object",
"title": "ResumeOutline",
"properties": {
"roles": {
"type": "array",
"items": {
"$ref": "#/$defs/OutlineRole"
},
"title": "Roles",
"maxItems": 30,
"description": "Roles in resume order."
},
"skills": {
"type": "array",
"items": {
"type": "string"
},
"title": "Skills",
"maxItems": 60,
"description": "Skills or tools lines, word for word."
},
"summary": {
"type": "array",
"items": {
"type": "string"
},
"title": "Summary",
"maxItems": 60,
"description": "Summary lines, word for word."
},
"education": {
"type": "array",
"items": {
"type": "string"
},
"title": "Education",
"maxItems": 60,
"description": "Education lines, word for word."
},
"certifications": {
"type": "array",
"items": {
"type": "string"
},
"title": "Certifications",
"maxItems": 60,
"description": "One credential per item, word for word."
}
}
}
},
"title": "prepare_interview_questions_toolArguments",
"required": [
"resume_text"
],
"properties": {
"lang": {
"anyOf": [
{
"type": "string",
"maxLength": 35
},
{
"type": "null"
}
],
"title": "Lang",
"default": "",
"description": "The language the person writes in, as a code such as es, fr or ru; empty or en for English. The result names this language; findings are written in English."
},
"role": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Role",
"default": "",
"description": "Optional. One of project-manager, program-manager, technical-program-manager, product-manager, scrum-master, pmo, it-manager, business-analyst, delivery-manager; a title as written (for example Senior Program Manager) is also read. Empty when not sure."
},
"company": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Company",
"default": "",
"description": "Optional. The employer's name as written in the posting."
},
"industry": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Industry",
"default": "",
"description": "Optional. The employer's industry, one of healthcare-life-sciences, financial-services, software-saas, government-public-sector, consulting-services, retail-supply-chain, manufacturing-industrial, energy-utilities; a plain name such as healthcare or banking is also read. Adds questions written for that industry. Empty when not sure."
},
"job_posting": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Job Posting",
"default": "",
"description": "The full text of the job posting, as the person gave it. Optional; with it the result adds the requirements, the gaps and questions about them."
},
"resume_text": {
"type": "string",
"title": "Resume Text",
"description": "The resume as plain text, copied in full from what the person pasted or from the text of the file they attached. At least the summary and the experience section."
},
"interview_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Interview Date",
"default": "",
"description": "Optional. The interview date as YYYY-MM-DD."
},
"resume_outline": {
"anyOf": [
{
"$ref": "#/$defs/ResumeOutline"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional structure of the resume: roles with title, company, dates and bullets; summary; skills; certifications; education. Every line must appear word for word in resume_text; lines that do not are left out and counted in the result. Without it the plain text is read."
},
"job_requirements": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Job Requirements",
"default": null,
"description": "Optional. The requirement lines of the job posting, each word for word from job_posting; lines that are not are left out and counted in the result. Without them the requirements are read from job_posting."
}
}
}| string |
| Used when there is no question_id: measure, ownership, stakeholder, conflict, failure, prioritization or requirement_gap. |
| keep_answer_text | boolean | True only when the person asked to keep the text of the answer; it is kept encrypted with the account key. |
{
"type": "object",
"title": "save_practice_toolArguments",
"required": [
"answer"
],
"properties": {
"lang": {
"anyOf": [
{
"type": "string",
"maxLength": 35
},
{
"type": "null"
}
],
"title": "Lang",
"default": "",
"description": "The language the person writes in, as a code such as es, fr or ru; empty or en for English. The result names this language; findings are written in English."
},
"answer": {
"type": "string",
"title": "Answer",
"description": "The practice answer as the person would say it, in their own words."
},
"text_en": {
"type": "string",
"title": "Text En",
"default": "",
"description": "Only when the text is not in English: a literal English translation of it, word for word, with no fact added or left out and figures and names as written. The fixed rules read this translation, and the result says so."
},
"question_id": {
"type": "string",
"title": "Question Id",
"default": "",
"description": "The id of the question from prepare_interview_questions, for example line.L12.measure, req.R3.gap or beh.c-conflict. One of question_id and question_type is needed."
},
"question_text": {
"type": "string",
"title": "Question Text",
"default": "",
"description": "Optional. The question as asked; kept only together with the answer text."
},
"question_type": {
"type": "string",
"title": "Question Type",
"default": "",
"description": "Used when there is no question_id: measure, ownership, stakeholder, conflict, failure, prioritization or requirement_gap."
},
"keep_answer_text": {
"type": "boolean",
"title": "Keep Answer Text",
"default": false,
"description": "True only when the person asked to keep the text of the answer; it is kept encrypted with the account key."
}
}
}| any |
| The full text of the job posting, as the person gave it. Optional; with it the result adds the requirements, the gaps and questions about them. |
| resume_text* | string | The resume as plain text, copied in full from what the person pasted or from the text of the file they attached. At least the summary and the experience section. |
| resume_outline | any | Optional structure of the resume: roles with title, company, dates and bullets; summary; skills; certifications; education. Every line must appear word for word in resume_text; lines that do not are left out and counted in the result. Without it the plain text is read. |
| job_requirements | any | Optional. The requirement lines of the job posting, each word for word from job_posting; lines that are not are left out and counted in the result. Without them the requirements are read from job_posting. |
{
"type": "object",
"$defs": {
"OutlineRole": {
"type": "object",
"title": "OutlineRole",
"properties": {
"dates": {
"type": "string",
"title": "Dates",
"default": "",
"maxLength": 80,
"description": "Dates of the role, as written, for example Jan 2019 - Present."
},
"title": {
"type": "string",
"title": "Title",
"default": "",
"maxLength": 200,
"description": "Job title, as written in the resume."
},
"bullets": {
"type": "array",
"items": {
"type": "string"
},
"title": "Bullets",
"maxItems": 40,
"description": "The bullets of this role, each copied word for word."
},
"company": {
"type": "string",
"title": "Company",
"default": "",
"maxLength": 200,
"description": "Employer, as written in the resume."
}
}
},
"ResumeOutline": {
"type": "object",
"title": "ResumeOutline",
"properties": {
"roles": {
"type": "array",
"items": {
"$ref": "#/$defs/OutlineRole"
},
"title": "Roles",
"maxItems": 30,
"description": "Roles in resume order."
},
"skills": {
"type": "array",
"items": {
"type": "string"
},
"title": "Skills",
"maxItems": 60,
"description": "Skills or tools lines, word for word."
},
"summary": {
"type": "array",
"items": {
"type": "string"
},
"title": "Summary",
"maxItems": 60,
"description": "Summary lines, word for word."
},
"education": {
"type": "array",
"items": {
"type": "string"
},
"title": "Education",
"maxItems": 60,
"description": "Education lines, word for word."
},
"certifications": {
"type": "array",
"items": {
"type": "string"
},
"title": "Certifications",
"maxItems": 60,
"description": "One credential per item, word for word."
}
}
}
},
"title": "start_mock_interview_toolArguments",
"required": [
"resume_text"
],
"properties": {
"lang": {
"anyOf": [
{
"type": "string",
"maxLength": 35
},
{
"type": "null"
}
],
"title": "Lang",
"default": "",
"description": "The language the person writes in, as a code such as es, fr or ru; empty or en for English. The result names this language; findings are written in English."
},
"role": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Role",
"default": "",
"description": "Optional. One of project-manager, program-manager, technical-program-manager, product-manager, scrum-master, pmo, it-manager, business-analyst, delivery-manager; a title as written (for example Senior Program Manager) is also read. Empty when not sure."
},
"stage": {
"type": "string",
"title": "Stage",
"default": "hiring_manager",
"description": "The interview stage: screen, hiring_manager, panel or final."
},
"length": {
"type": "integer",
"title": "Length",
"default": 6,
"description": "The number of questions, 5 to 10; a number outside is held to the nearest end."
},
"company": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Company",
"default": "",
"description": "Optional. The employer's name as written in the posting."
},
"job_posting": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Job Posting",
"default": "",
"description": "The full text of the job posting, as the person gave it. Optional; with it the result adds the requirements, the gaps and questions about them."
},
"resume_text": {
"type": "string",
"title": "Resume Text",
"description": "The resume as plain text, copied in full from what the person pasted or from the text of the file they attached. At least the summary and the experience section."
},
"resume_outline": {
"anyOf": [
{
"$ref": "#/$defs/ResumeOutline"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional structure of the resume: roles with title, company, dates and bullets; summary; skills; certifications; education. Every line must appear word for word in resume_text; lines that do not are left out and counted in the result. Without it the plain text is read."
},
"job_requirements": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"title": "Job Requirements",
"default": null,
"description": "Optional. The requirement lines of the job posting, each word for word from job_posting; lines that are not are left out and counted in the result. Without them the requirements are read from job_posting."
}
}
}