Integration

Praxicraft Assess integration

Praxicraft Assess runs technical hiring: take-home assessments and live AI, human or hybrid interviews. Build assessments from platform and custom tasks, invite candidates singly or in bulk (optionally emailing their link) and read scored results with proctoring counts, run multi-stage pipelines (enroll, advance, hold, reject, notes), schedule interview rooms and read their analysis and replay, and manage interview templates, hiring squads, webhook destinations and deliveries, ATS connection status and the organisation's quotas, usage and stats. Results, interviews, invitations and team lists carry personal data (names, emails, resumes, recordings). Rate limits per organisation per hour: Starter 500 reads and 100 writes, Growth 2,000 and 400, Enterprise 10,000 and 2,000; bulk invite and bulk enroll 20 calls an hour. Not exposed: the jobs, applications, screening, candidate profile, offer and insights routes of the vendor's newer docs (not served by the live API yet), the CLI Ask AI assistant, the audit log and its export, the full-replace twin of update_custom_task, webhook signing secrets, interview candidate join tokens and ATS inbound webhook URLs. Authentication is an organisation API key (ct_live_ or ct_test_, Starter plan and above) created in Assess under Developer, API Keys, sent as a Bearer token; scopes and an IP allowlist may limit it, and a test key only sees test-mode data.

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in Praxicraft Assess.Built from the 79 Praxicraft Assess tools below, on the connection you add once.

What you can do with Praxicraft Assess

Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.

Each badge shows the default agent permission of an endpoint (allowed: an agent calls it without asking; ask first: you are asked before an agent calls it, when the agent or chat asks permission for sensitive actions; never: no agent may call it), which every user can change endpoint by endpoint in their credential settings.

Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.

Enrollment, 8 operations

  • advance_enrollmentAdvance enrollmentPOSTAgents: ask firstMoves an enrolled candidate past their current stage by hand (a board override) and returns the enrollment. A next assessment stage invites the candidate (one invite of the quota, which may email them). Personal data. Scope pipelines:write.
  • bulk_enroll_candidatesBulk enroll candidatesPOSTAgents: ask firstEnrolls several candidates in a pipeline with the rules of enroll_candidate (send_email true emails each one) and returns enrolled, skipped and errors rows with their counts. 20 calls an hour. Personal data. Scope pipelines:write.
  • enroll_candidateEnroll candidatePOSTAgents: ask firstEnrolls one candidate in a pipeline and, when its first stage is an assessment, creates their first invitation (one invite of the quota). Idempotent per email. send_email true emails the candidate. Scope pipelines:write.
  • get_enrollmentGet enrollmentGETAgents: ask firstReturns one candidate's progress through a pipeline: status and status_code (passed once the whole pipeline is done), current stage, reject reason and per-stage assessment history. Personal data. Scope pipelines:read.
  • hold_enrollmentHold enrollmentPOSTAgents: ask firstPuts an enrollment on hold (on_hold): automatic advancing skips it until unhold_enrollment. Returns the enrollment, with the candidate's email and name (personal data). Scope pipelines:write.
  • list_pipeline_enrollmentsList pipeline enrollmentsGETAgents: ask firstLists a pipeline's enrollments: candidate email and name, status, current stage (0-based), reject reason, enrolled and completed times. Filter with status. Personal data. Scope pipelines:read.
  • reject_enrollmentReject enrollmentPOSTAgents: ask firstRejects an enrolled candidate, ending their way through the pipeline, and stores an optional reason. Returns the enrollment, with the candidate's email and name (personal data). Scope pipelines:write.
  • unhold_enrollmentUnhold enrollmentPOSTAgents: ask firstTakes an enrollment off hold, back to in_progress, and returns it, with the candidate's email and name (personal data). Scope pipelines:write.

Interview, 6 operations

  • bulk_create_interviewsBulk create interviewsPOSTAgents: ask firstCreates one interview room per candidate with shared settings and returns created rooms and errors. Uses the interview quota for each room; the vendor may email each candidate a join link (it documents no switch). Personal data.
  • cancel_interviewCancel interviewPOSTAgents: ask firstCancels an interview room and returns its new status. The vendor does not say whether the candidate is emailed. Scope interviews:write.
  • create_interviewCreate interviewPOSTAgents: ask firstCreates a live interview room (AI, human or hybrid) for one candidate and returns it; send_invite true emails the candidate a join link. ai_only and hybrid need job_description and resume_text. Uses the interview quota. Personal data.
  • get_interviewGet interviewGETAgents: ask firstReturns one interview room: settings, status and times, candidate name and email, questions with their solutions, the chat transcript, job description and resume text. Personal data. Scope interviews:read.
  • list_interviewsList interviewsGETAgents: ask firstLists the organisation's interview rooms (title, type, interviewer mode, status, schedule, candidate name and email) with meta carrying the interview quota. Paginated by cursor. Personal data. Scope interviews:read.
  • reschedule_interviewReschedule interviewPOSTAgents: ask firstMoves an interview to a new time and returns the updated room, with the candidate's name, email and resume text (personal data). The vendor does not say whether the candidate is emailed. Scope interviews:write.

Invitation, 6 operations

  • bulk_create_invitationsBulk create invitationsPOSTAgents: ask firstInvites several candidates to an active assessment and returns invited rows (email, invite_token, invite_url) and skipped rows; send_email true emails each one. Stops at the monthly quota; 20 calls an hour. Personal data.
  • cancel_invitationCancel invitationDELETEAgents: ask firstPermanently deletes a pending invitation so its link stops working. Refused with ALREADY_STARTED while the candidate is in the session and ALREADY_COMPLETED after submission. Scope invitations:write.
  • create_invitationCreate invitationPOSTAgents: ask firstCreates one candidate's unique link to an active assessment and returns invite_token and invite_url; send_email true emails it. Idempotent per email or external_id. Uses one invite of the monthly quota. Scope invitations:write.
  • get_invitationGet invitationGETAgents: ask firstReturns one invitation's status and times (created, started, completed, reminded, expires) with its assessment, without the score; get_invitation_result returns the scored result. Personal data. Scope invitations:read.
  • list_invitationsList invitationsGETAgents: ask firstLists every candidate invitation across the organisation's assessments: invite_token, assessment, candidate email and name, role, status, external_id, sent, expiry and creation times. Personal data. Scope invitations:read.
  • send_invitation_reminderSend invitation reminderPOSTAgents: ask firstEmails the candidate a reminder of a pending or started invitation (an email to a real person). One reminder per invitation per 24 hours (REMINDER_COOLDOWN); refused once completed or expired. Scope invitations:write.

Webhook, 6 operations

  • create_webhookCreate webhookPOSTAgents: ask firstRegisters a webhook destination: an HTTPS url receives signed JSON events, a Slack or Teams target chat messages. It stays inactive until test_webhook succeeds. The signing secret is withheld. Scope webhooks:write.
  • delete_webhookDelete webhookDELETEAgents: ask firstDeletes a webhook destination; it stops receiving events. Scope webhooks:write.
  • get_webhookGet webhookGETAgents: ask firstReturns one webhook destination: target, events, active and verified state and delivery health counters. The signing secret is withheld. Scope webhooks:read.
  • list_webhooksList webhooksGETAgents: ask firstLists webhook destinations (HTTPS, Slack or Teams) with their target, events, active and verified state and delivery health counters. Signing secrets are withheld. Scope webhooks:read.
  • test_webhookTest webhookPOSTAgents: ask firstSends a signed webhook.test ping to the destination; a 2xx answer marks it verified and active. Returns the destination's status code and is_verified. Scope webhooks:write.
  • update_webhookUpdate webhookPATCHAgents: ask firstChanges only the fields sent on a webhook destination (name, kind, url, Slack channel, active state, events) and returns it; leave a field out to keep it. Scope webhooks:write.

Assessment, 5 operations

  • create_assessmentCreate assessmentPOSTAgents: ask firstCreates an assessment in draft status and returns it with its slug. Attach tasks with attach_assessment_tasks, then set status active with update_assessment before inviting candidates. Scope assessments:write.
  • duplicate_assessmentDuplicate assessmentPOSTAgents: ask firstCopies an assessment's settings and attached tasks into a new draft assessment and returns the copy; candidates and results are not copied. Scope assessments:write.
  • get_assessmentGet assessmentGETAgents: ask firstReturns one assessment's configuration: status, time limit, passing score, proctoring and pool settings, task and invitation counts, owning squad and mode. slug is the assessment slug or UUID, never its title. Scope assessments:read.
  • list_assessmentsList assessmentsGETAgents: ask firstLists the organisation's assessments (every status unless status is set) with task and invitation counts, plus meta with the plan's invitation quota. Paginated by cursor. Scope assessments:read.
  • update_assessmentUpdate assessmentPATCHAgents: ask firstChanges only the fields sent on an assessment, for example status active to accept invitations or archived to retire it; every field sent overwrites the stored value, so send only what changes. Scope assessments:write.

Custom task, 5 operations

  • create_custom_taskCreate custom taskPOSTAgents: ask firstAdds a coding, MCQ or text task to the organisation's library and returns it; attach it to an assessment with attach_assessment_tasks and source org. Scope tasks:write.
  • delete_custom_taskDelete custom taskDELETEAgents: ask firstDeletes a custom task: it leaves the library and the assessments using it, while past submissions keep the version candidates saw. Needs the tasks:write scope.
  • get_custom_taskGet custom taskGETAgents: ask firstReturns one custom task: title, description, question, kind, difficulty, points, time limit, MCQ options, language, starter code, expected output, rubric and tags. Scope tasks:read.
  • list_custom_tasksList custom tasksGETAgents: ask firstLists the organisation's own custom tasks (coding, MCQ or text) with question, options, language, starter code, expected output and rubric; deleted tasks are left out. Scope tasks:read.
  • update_custom_taskUpdate custom taskPATCHAgents: ask firstChanges only the fields sent on a custom task and returns it; leave a field out to keep it. Needs the tasks:write scope.

Hiring squad, 5 operations

  • create_hiring_squadCreate hiring squadPOSTAgents: ask firstCreates a hiring squad and returns it (id, name, slug, member count). Growth plan and above. Scope organisation:write.
  • delete_hiring_squadDelete hiring squadDELETEAgents: ask firstDeletes a hiring squad. Growth plan and above. Scope organisation:write.
  • get_hiring_squadGet hiring squadGETAgents: ask firstReturns one hiring squad: id, name, slug, member count and creation time. Growth plan and above. Scope organisation:read.
  • list_hiring_squadsList hiring squadsGETAgents: ask firstLists the organisation's hiring squads (sub-teams that own assessments and pipelines). Growth plan and above. Scope organisation:read.
  • rename_hiring_squadRename hiring squadPATCHAgents: ask firstRenames a hiring squad and returns it. Growth plan and above. Scope organisation:write.

Interview template, 5 operations

  • create_interview_templateCreate interview templatePOSTAgents: ask firstCreates an interview template from a name and a config object and returns it. Scope interviews:write.
  • delete_interview_templateDelete interview templateDELETEAgents: ask firstPermanently deletes an interview template. Scope interviews:write.
  • get_interview_templateGet interview templateGETAgents: ask firstReturns one interview template: id, name, config and last change. Scope interviews:read.
  • list_interview_templatesList interview templatesGETAgents: ask firstLists interview templates (id, name, config, last change); pipeline interview stages build their rooms from a template. Scope interviews:read.
  • update_interview_templateUpdate interview templatePATCHAgents: ask firstChanges an interview template's name or config and returns it; leave a field out to keep it. Scope interviews:write.

Assessment task, 4 operations

  • attach_assessment_tasksAttach assessment tasksPOSTAgents: ask firstAppends tasks to an assessment's lineup (tasks already attached are skipped) and returns the attached rows. Refused with TASKS_LOCKED once a candidate has started, and LIMIT_REACHED at the plan's tasks-per-assessment limit. Scope assessments:write.
  • list_assessment_tasksList assessment tasksGETAgents: ask firstLists the tasks attached to an assessment in display order: assessment_task_id (the link id remove_assessment_task takes), task id, library (platform or org), task type, difficulty, order and points. Scope assessments:read.
  • remove_assessment_taskRemove assessment taskDELETEAgents: ask firstRemoves one task from an assessment's lineup by its assessment_task_id (from list_assessment_tasks); the task stays in its library. Refused with TASKS_LOCKED once a candidate has started. Scope assessments:write.
  • replace_assessment_tasksReplace assessment tasksPUTAgents: ask firstReplaces an assessment's whole task lineup with the tasks sent and returns the new lineup; attached tasks left out are removed. Refused with TASKS_LOCKED once a candidate has started. Scope assessments:write.

Pipeline, 4 operations

  • create_pipelineCreate pipelinePOSTAgents: ask firstCreates a linear hiring pipeline with ordered stages (assessment, interview or manual_review) and returns it with its slug. Growth plan and above. Stages use assessments and templates of the key's mode. Scope pipelines:write.
  • get_pipelineGet pipelineGETAgents: ask firstReturns a pipeline's configuration and ordered stages (type, linked assessment slug or interview template, label, order, pass score override) plus its owning hiring squad. Scope pipelines:read.
  • list_pipelinesList pipelinesGETAgents: ask firstLists active hiring pipelines with their stage counts and owning hiring squad (team_id, team_slug; empty when organisation-wide). Filter by squad with team_id or team_slug. Scope pipelines:read.
  • update_pipelineUpdate pipelinePATCHAgents: ask firstChanges a pipeline's title or description, or its stages; once candidates are enrolled stages can only be appended (STAGES_LOCKED or STAGE_IN_USE otherwise). Leave a field out to keep it. Scope pipelines:write.

Ats integration, 3 operations

  • get_ats_connect_urlGet ats connect urlGETAgents: ask firstReturns the Assess dashboard URL where an owner, admin or developer connects an ATS provider in the browser, whether OAuth is available, and instructions; no secret. Scope organisation:read.
  • list_ats_integrationsList ats integrationsGETAgents: ask firstLists the organisation's ATS connections (Greenhouse, Lever, Ashby, Workday, BambooHR, Zoho Recruit, Breezy HR): active state, API key present, OAuth offered, last sync and dashboard connect URL. Scope organisation:read.
  • test_ats_connectionTest ats connectionPOSTAgents: ask firstChecks the stored credentials of a connected ATS provider and returns ok and the connect URL; answers NOT_CONFIGURED when it was never connected. Sends and returns no secret. Scope organisation:read.

Hiring squad member, 3 operations

  • add_hiring_squad_memberAdd hiring squad memberPOSTAgents: ask firstAdds an organisation member to a hiring squad and returns the membership (user_id, email, name, role, join time; personal data). Growth plan and above. Scope organisation:write.
  • list_hiring_squad_membersList hiring squad membersGETAgents: ask firstLists the members of a hiring squad (name, email, role). Growth plan and above. Personal data. Scope organisation:read.
  • remove_hiring_squad_memberRemove hiring squad memberDELETEAgents: ask firstRemoves a member from a hiring squad. Growth plan and above. Scope organisation:write.

Enrollment note, 2 operations

  • add_enrollment_noteAdd enrollment notePOSTAgents: ask firstAdds a recruiter note about a candidate (personal data) to an enrollment and returns it (id, body, created time). The vendor's spec names the pipelines:read scope and its guide pipelines:write.
  • list_enrollment_notesList enrollment notesGETAgents: ask firstLists the recruiter notes on an enrollment: notes about a candidate, personal data. Scope pipelines:read.

Organisation, 2 operations

  • get_organisationGet organisationGETAgents: ask firstReturns the organisation's name, slug, plan, whether hiring squads are enabled, and the current billing cycle's invitation limit, used and remaining. Scope organisation:read.
  • update_organisationUpdate organisationPATCHAgents: ask firstChanges the organisation's name or whether it is notified when a candidate completes an assessment; any other field is refused. Leave a field out to keep it. Scope organisation:write.

Result, 2 operations

  • get_invitation_resultGet invitation resultGETAgents: ask firstReturns a candidate's scored result: score and percentage, pass or fail, per-task outcomes, proctoring violations and the report link. Before the candidate starts it answers only status and message. Personal data. Scope candidates:read.
  • list_assessment_resultsList assessment resultsGETAgents: ask firstLists an assessment's candidate sessions, newest first: name and email, status, score percentage, pass or fail, time spent, proctoring violation counts and the invite_token for get_invitation_result. Personal data. Scope candidates:read.

Webhook delivery, 2 operations

  • list_webhook_deliveriesList webhook deliveriesGETAgents: ask firstLists a destination's most recent deliveries, newest first (at most 100): event, status, attempts, last error, answer status and body, and the payload sent, which carries candidate names, emails and scores (personal data).
  • retry_webhook_deliveryRetry webhook deliveryPOSTAgents: ask firstResends one failed or pending delivery to its destination (same event_id) and returns it, payload included (candidate data, personal data). Refused when the destination is paused or unverified, or the delivery already succeeded.

Billing, 1 operation

  • get_billing_entitlementsGet billing entitlementsGETAgents: ask firstReturns the plan's entitlements: plan, seats used and limit, pending member invites, invitation and assessment quotas and use, monthly interview use and limit, and capability flags. No payment details. Scope organisation:read.

Developer health, 1 operation

  • get_developer_healthGet developer healthGETAgents: ask firstReturns API and webhook destination health for the key's live or test mode: alerts, insights, recent API errors and SLA figures (no secrets, per the vendor). Starter plan and above. Scope organisation:read.

Interview analysis, 1 operation

  • get_interview_analysisGet interview analysisGETAgents: ask firstReturns the written analysis of an interview: summary, scores and status; the vendor's interview.analysis_ready webhook says when it is ready. Personal data. Scope interviews:read.

Interview analytics, 1 operation

  • get_interview_analyticsGet interview analyticsGETAgents: ask firstReturns the organisation's interview counts: total, completed, and a count per status. Scope interviews:read.

Interview replay, 1 operation

  • get_interview_replayGet interview replayGETAgents: ask firstReturns an interview's replay: its event timeline and the recording link (a recording of the candidate, personal data). Scope interviews:read.

Interview share link, 1 operation

  • create_interview_share_linkCreate interview share linkPOSTAgents: ask firstCreates a share link to an interview (for hiring managers) and returns its url and expiry; anyone holding the link can open the interview until it expires. Scope interviews:write.

Interview task, 1 operation

  • list_interview_org_tasksList interview org tasksGETAgents: ask firstLists the organisation's coding tasks that can be pinned on an interview (id, title, task type, difficulty); pass their ids as org_task_ids to create_interview. Scope interviews:read.

Organisation stats, 1 operation

  • get_organisation_statsGet organisation statsGETAgents: ask firstReturns assessment totals for the key's mode: invitations sent, candidates, completed assessments, passed candidates, pass rate, average score percentage and active assessments. Scope organisation:read.

Platform task, 1 operation

  • list_platform_tasksList platform tasksGETAgents: ask firstBrowses Praxicraft's curated task library (title, case number, difficulty, submission type, XP reward, track) without hidden tests or solutions; attach one with its id and source platform in attach_assessment_tasks. Scope assessments:read.

Team member, 1 operation

  • list_team_membersList team membersGETAgents: ask firstLists active organisation members: name, email, role (owner, admin, developer, recruiter, reviewer or member), join date and squads. Personal data. Scope organisation:read.

Usage, 1 operation

  • get_usage_seriesGet usage seriesGETAgents: ask firstReturns daily usage for the key's live or test mode: total sessions and series per day, per activity and per assessment, between start and end (default the last 30 days, at most 180). Starter plan and above. Scope organisation:read.

Use Praxicraft Assess from Claude Code, Cursor or Codex

Connect Praxicraft Assess in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Praxicraft Assess operations become tools the client can call, next to every other integration you connected.

Claude Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect Praxicraft Assess

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect Praxicraft Assess once

    Add your Praxicraft Assess connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.

  3. Describe the job in chat

    The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.

Praxicraft Assess integration FAQ

What can you do with the Praxicraft Assess integration?

LiveContext exposes 79 operations on Praxicraft Assess, covering enrollment, interview, invitation and webhook.

Popular integrations

Browse the whole catalog