List deep research
https://api.vamotalent.ai/v2/deep-research/jobsThe account’s deep-research jobs, newest first, each with its subjects and their status. Filter by subject, status and ref (a GitHub username or an owner/name repository one of the job’s subjects carries), and page with limit and cursor. A read only, and free.
Query parameters
subjectstringOnly jobs on this subject.
developersreposrankstatusstringOnly jobs in this status. `running` lists the jobs still in progress.
runningsucceededpartialfailedrefstringOnly jobs that researched this GitHub username or `owner/name` repository. Any case matches.
min 1 chars, max 140 charslimitinteger default: 20How many jobs to return, 20 by default and 50 at most.
min 1, max 50cursorstringThe `nextCursor` of the page before, to read the next page. Omit it for the first page.
max 16 chars
Responses
A page of jobs
jobsarray of object requiredThe account’s deep-research jobs that match, newest first.
max 50 itemsidstring requiredThe job id. Poll it for progress.
namestring | null requiredA short label generated from the developers the job was started with, for showing the job in a list. Null on jobs created before naming existed: fall back to the created time.
subjectstring requiredWhat kind of thing this job researches.
developersreposrankstatusstring requiredWhere the job stands overall. Individual subjects settle independently; read `items` for the detail.
runningsucceededpartialfailedcheckBackSecondsintegerWhile the job is running: how many seconds to wait before reading it again. Absent once the job has finished.
createdAtstring requiredWhen the job was submitted, as an ISO 8601 instant.
finishedAtstring | null requiredWhen the job reached a terminal state, as an ISO 8601 instant. Null while running.
elapsedMsinteger requiredTime so far while running, and total time once finished, in milliseconds. Computed server-side, so it does not depend on your clock.
min 0requestedCountinteger requiredHow many developers you asked for. Not all necessarily land a report: see `deliveredCount`.
min 0deliveredCountinteger requiredHow many developers actually landed a report. A developer whose research failed is not counted here.
min 0itemsarray of DeepResearchItem requiredPer-developer state, including the reason for each one that did not land.
loginstring requiredThe subject reference this item researches: a GitHub handle for the `developers` subject, an `owner/name` for `repos`. The field name predates the second subject; `subjectRef` is the same value under its honest name.
subjectRefstring requiredThe subject reference, same value as `login`: a GitHub handle for `developers`, an `owner/name` for `repos`.
statusstring requiredWhere this one subject stands. Items settle independently: partial success across a job is normal.
pendingrunningdonefailedfailCodestring | null requiredMachine-readable failure reason. Null while the item can still succeed or has succeeded. Branch on this, not on `failMessage`.
not_foundrate_limitedprovider_errortimeoutabandonedengine_errorfailMessagestring | null requiredThe failure explained in words you can show a user, including what to do about it. Null while the item can still succeed.
sourcestring | null requiredWhether the delivered answer was researched fresh or served from a recent previous run. The two are equivalent in content, but a reused answer should not be presented as fresh. Null until an answer lands.
freshcachereportPathstring | null requiredThe API path to read this subject’s report. Null until one exists.
startedAtstring | null requiredWhen this item started, as an ISO 8601 instant. Null while queued.
finishedAtstring | null requiredWhen this item settled, as an ISO 8601 instant. Null until it does.
previewobject | null requiredA one-glance preview of a finished developer report, for showing it in a list. Present only on GET /v1/deep-research/jobs, and only for a `developers` item that is done; null everywhere else.
namestring | null requiredThe developer’s display name. Null when they set none.
avatarUrlstring | null requiredGitHub avatar image URL.
summarystring | null requiredOne sentence about the developer: the first sentence of their LinkedIn headline or GitHub bio. Null when neither exists.
tagsarray of string requiredPlain labels to search and filter a report list on: top languages and city.
locationstring | null requiredThe city they work from. Null when unknown.
crackedboolean requiredWhether their devRank tier counts as cracked (Elite and above).
highlightsarray of string requiredThe report's top signals, as signal names best first (at most three). No percentiles. Empty for a report whose highlights are not stored yet; they fill in on later reads.
signalsarray of string requiredThe signals worth a glance, ready to show: what they mostly build, signature technologies, standing, stars, followers.
fitDeepResearchFit requiredA `rank` job only: this developer’s fit to the question, once they were scored. Null on every other subject, while they wait, and for a developer who could not be scored (see `failCode`).
scoreinteger requiredHow well this developer answers the question, 0 to 100. Absolute, not relative to the list: 80 means the same on every list, so a list of similar people can score close together.
min 0, max 100tierstring required`strong` at 70 and above, `adjacent` from 40 to 69, `off` below 40. Derived from the score.
strongadjacentoffreasonstring requiredOne line on why: a fact Vamo wrote from their public work (a repo and its counts), which the model picked as the best evidence. Never written by a model.
rankinteger requiredTheir place in the ranking, 1 first. Equal scores share a place (1, 2, 2, 4).
requestedBystring | null requiredThe teammate who started the job, by display name. Present only on GET /v1/deep-research/jobs; null for a job started by an API key or by Vamo, and on every other endpoint.
rankingDeepResearchRanking requiredA `rank` job only, once it has finished with at least one developer scored (`succeeded` or `partial`): the question and the scored developers, best first. Null on every other subject, while the job runs, and when nobody could be scored.
questionstring requiredThe question the developers were scored against.
modelstring requiredThe model that scored them.
promptVersionstring requiredThe version of Vamo’s scoring prompt. Scores from different versions are not compared.
peoplearray of DeepResearchRankedPerson requiredEvery developer who was scored, best first: score, then the depth of their work, then the order you sent them in. A developer who could not be scored is not here; their item says why.
loginstring requiredTheir GitHub username, as you sent it.
idstring | null requiredTheir Vamo developer id, the one every other developer endpoint takes (enrich, the contribution garden, deep research). Resolved from the login when they were scored. Null on rankings made before ids were kept.
namestring | null requiredTheir display name. Null when they set none.
titlestring | null requiredTheir current title. Null when unknown.
companystring | null requiredWhere they work now. Null when unknown.
locationstring | null requiredWhere they are. Null when unknown.
avatarUrlstring | null requiredGitHub avatar image URL.
githubUrlstring requiredTheir GitHub profile.
linkedinUrlstring | null requiredTheir LinkedIn profile. Null when unknown.
fitobject requiredscoreinteger requiredHow well this developer answers the question, 0 to 100. Absolute, not relative to the list: 80 means the same on every list, so a list of similar people can score close together.
min 0, max 100tierstring required`strong` at 70 and above, `adjacent` from 40 to 69, `off` below 40. Derived from the score.
strongadjacentoffreasonstring requiredOne line on why: a fact Vamo wrote from their public work (a repo and its counts), which the model picked as the best evidence. Never written by a model.
rankinteger requiredTheir place in the ranking, 1 first. Equal scores share a place (1, 2, 2, 4).
creditsobject | null requiredA `rank` job only: what it was charged, on the model tokens it actually used. Null on other subjects, which are billed per delivered subject.
chargedinteger | null requiredCredits this job was charged, once settled. Null until then.
min 0
nextCursorstring | null requiredPass as `cursor` to read the next page. Null on the last page.