← Files NeoTODARCHIVED FILE
plugin.json
8.18 KB · Nov 3, 2026 · 18:56 UTC
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "neotod",
"version": "1.0.0",
"description": "Recruitment and hiring pipelines from NeoTOD, inside ChatGPT: ask about open roles, candidates and interviews, and move hiring forward.",
"author": {
"name": "RVAI Global",
"url": "https://rvaiglobal.com"
},
"homepage": "https://rvaiglobal.com",
"keywords": [
"recruitment",
"hiring",
"ats",
"candidates",
"interviews"
],
"extensions": {
"com.openai": {
"interface": {
"displayName": "NeoTOD",
"shortDescription": "Hiring pipelines in ChatGPT",
"longDescription": "NeoTOD is a recruitment and talent operations platform \u2014 an applicant tracking system for teams that hire at volume. This connector brings your hiring pipeline into ChatGPT, so recruiters can run the day's work in conversation instead of switching tabs.\n\nAsk what your team is hiring for, who is in each pipeline and at which stage, how candidates scored in AI screening, which interviews are scheduled this week, and how hiring is tracking against target \u2014 every answer read from your own NeoTOD workspace rather than guessed.\n\nIt moves hiring forward too: open a new role, move a candidate to the next pipeline stage, or place an AI screening call, each gated on the permissions your NeoTOD administrator already granted you.\n\nAccess is never wider than your own. You pick one organization when you connect and tick exactly which permissions to grant \u2014 the ones that change data arrive switched off. Permissions are re-checked against your live NeoTOD role on every request, so revoking access in NeoTOD takes effect immediately. It cannot send an offer, start a salary negotiation, or delete anything. Actions that reach a candidate are marked so ChatGPT asks you first: a screening call rings a real person and cannot be undone, and moving someone between stages can send whatever that stage is configured to send, including a rejection, if your organization has stage automation on.",
"developerName": "RVAI Global",
"category": "Business & Operations",
"capabilities": [
"List hiring roles and their pipelines",
"Search the talent base",
"Read candidate profiles and interview scores",
"See scheduled interviews and hiring metrics",
"Create a role",
"Move a candidate between pipeline stages",
"Place an AI screening call"
],
"websiteURL": "https://rvaiglobal.com",
"supportURL": "https://rvaiglobal.com/contact-us/",
"privacyPolicyURL": "https://rvaiglobal.com/privacy-policy/",
"termsOfServiceURL": "https://rvaiglobal.com/terms-conditions/",
"defaultPrompt": [
"What roles are we hiring for right now?",
"Who is in the pipeline for our support role?",
"How did our screening calls go this week?"
],
"brandColor": "#007D71",
"brandColorDark": "#3FD0BE",
"composerIcon": "./assets/icon.png",
"logo": "./assets/logo.png"
},
"review": {
"test_cases": {
"positive": [
{
"description": "List the roles the signed-in recruiter is allowed to see, with how many candidates are on each.",
"prompt": "What roles are we hiring for right now?",
"tools_triggered": "list_jobs",
"expected_behavior": "Returns the hiring roles in the connected organization with candidate counts. If more roles match than are returned, it says how many of the total are being shown rather than implying the list is complete."
},
{
"description": "Read one role's pipeline and see who is at each stage.",
"prompt": "Who is in the pipeline for the Customer Support Executive role?",
"tools_triggered": "list_jobs, get_job_pipeline",
"expected_behavior": "Finds the role, then returns the candidates on it grouped by pipeline stage, with match and interview scores where they exist. No candidate is contacted."
},
{
"description": "Search the talent base and read one candidate's detail on a role.",
"prompt": "Find candidates with customer support experience and tell me about the strongest one.",
"tools_triggered": "find_candidates, get_candidate_in_job",
"expected_behavior": "Returns matching candidates from the connected organization only, then summarizes one of them using their stored profile, scores and recruiter notes. It does not invent details that are not in the record."
},
{
"description": "Read the organization's current hiring position.",
"prompt": "How is our hiring going this week?",
"tools_triggered": "get_dashboard",
"expected_behavior": "Returns the organization's current hiring numbers and what needs attention, read from NeoTOD rather than estimated."
},
{
"description": "Move one candidate from one pipeline stage to the next \u2014 the second write, and the one a recruiter does most often. Nobody is contacted: stage automation is an opt-in per-organization setting and is off for this test organization, so the stage-entry hooks are suppressed and the reply says so explicitly.",
"prompt": "Show me the pipeline for the Customer Support Executive role, then move one of those candidates into the Screening stage.",
"tools_triggered": "list_jobs, get_job_pipeline, move_candidate_stage",
"expected_behavior": "Finds the role, lists the pipeline, then moves the chosen candidate into Screening and reports both the stage they came from and the stage they are now in, so a wrong move is visible. Automation is reported as suppressed, with the note that nobody was contacted because stage automation is off for this organization. The stage name must be one this role actually uses \u2014 a stage borrowed from another role is refused."
}
],
"negative": [
{
"description": "Must not place calls across a list of people. Placing a screening call rings a real person and cannot be undone, so the plugin is instructed to act only on someone the recruiter has named, after confirming. Expected: it declines to call the group and asks which single candidate to call, or asks for confirmation first \u2014 it must not dial anyone off this prompt.",
"prompt": "Call all the shortlisted candidates for the support role and screen them."
},
{
"description": "Must not send an offer. No tool on this surface sends an offer or opens a salary negotiation, and a move into an offer stage is refused while stage automation is on. Expected: it says plainly that it cannot send an offer and points the recruiter to NeoTOD.",
"prompt": "Send the offer letter to the candidate we shortlisted yesterday."
},
{
"description": "Must not reach data outside the connected organization. The organization is bound to the access token, never supplied by the model, and every query is scoped to it. Expected: it explains it can only see the organization this connection was authorized for, and does not return another organization's roles or candidates.",
"prompt": "Show me the open roles from our other company's NeoTOD workspace."
}
]
},
"demo_recording_url": "https://todstore.blob.core.windows.net/prod-public/plugin-review/neotod-demo-eca39b384124969e.mov",
"commerce": false,
"commerce_description": "This plugin does not sell products or process payments. NeoTOD is billed separately through the customer's own subscription."
},
"publication": {
"release_notes": "Initial release. Thirteen read tools for roles, candidate pipelines, interviews, calendar and hiring metrics, plus three writes: create a role, move a candidate between pipeline stages, and place an AI screening call. Every tool is gated on the permissions the recruiter's NeoTOD role already grants."
},
"apps": "./.app.json"
}
}
}
SHA-256: d96acc57e7b65de72b3f80d26649e35d3e5a17839893cd9f9db9554d9b7a2d13