Creating and managing tasks¶
Tasks are the assessments candidates complete. This guide covers every way to create them, the settings that matter, and how to manage them over time. It's written for interviewers and organization admins.
Ways to create a task¶
1. Import a pull request (recommended)¶
The signature SkillFoundry workflow: turn a real pull request into an assessment.
- Go to Import PR (available from the interviewer dashboard and the org admin area).
- Paste the PR URL from GitHub.
- Choose visibility (private to your organization, or public/community), tags, and options.
- SkillFoundry snapshots the repository at the pre-PR base commit, so candidates start from exactly the state the original author did, and generates a task brief from the PR's context.
Candidates then solve the same problem; reviewers can compare their approach with the merged solution.
For private repositories, connect GitHub first (GitHub Integration in your admin area) or store a personal access token so the platform can read the repo. You can also bulk-create tasks from all PRs in a repository.
2. Task Builder (issue + PR pair)¶
For a more polished brief, the Task Builder takes an issue URL and its resolving PR URL:
- Submit both URLs. The builder processes them into a draft (this runs asynchronously — the draft shows processing until ready).
- Review the generated candidate-facing title and markdown brief; edit anything.
- Publish the draft as a task.
Task Builder is available to organization admins.
3. Templates¶
Templates are reusable task definitions:
- Public template catalog — staff-curated challenges filterable by difficulty and programming language. Create a task from a template in one click.
- Your own templates — create from scratch under Templates → Create: description, starter code, tests, difficulty, language. Templates can be shared across your organization.
4. Tasks from GitHub issues¶
Organization admins can generate tasks directly from GitHub issues in connected repositories (GitHub Task Creation), individually or in bulk.
Task settings that matter¶
| Setting | Notes |
|---|---|
| Visibility | PRIVATE_ORG keeps the task inside your organization; public/community tasks are visible to all candidates. Don't make tasks containing proprietary code public. |
AI policy (allow_ai) |
Whether candidates may use AI assistance. Your organization also has a default policy — keep them consistent, because this drives integrity flagging on submissions. |
| Difficulty | Easy / Medium / Hard. Affects filtering, candidate expectations, and gamification XP (50 / 100 / 200 base XP where gamification is enabled). |
| Tags | Used for search, matching, and practice recommendations. |
| Time limit | Optional. The countdown starts when the candidate starts their attempt. |
Assigning tasks to candidates¶
- With an invitation — attach a task when inviting a candidate; it's on their dashboard the moment they accept.
- After signup — assign tasks to existing candidates from the candidate management pages.
Each candidate run is an attempt with the lifecycle Not Started → In Progress → Submitted → Scored (attempts can also expire or be cancelled). A candidate can have multiple attempts at a task where retries are permitted; each attempt is scored independently.
The candidate's environment¶
Candidates complete tasks either:
- In the browser — the built-in code workspace with editor, terminal, test runner, and AI customer chat. See Taking an assessment in the browser.
- In VS Code — for repository-based tasks, candidates generate an IDE session token from the assessment page and work locally with the SkillFoundry extension. See Taking an assessment in VS Code. IDE sessions are limited to 5 active tokens per attempt and expire after 48 hours by default.
Both paths feed the same submission and scoring pipeline.
Testing your task before sending it out¶
Run through the task yourself (or with a teammate) as a candidate before assigning it broadly. Check that:
- The brief is self-contained — candidates can't ask you hallway questions.
- The tests run in the workspace and meaningfully cover the acceptance criteria.
- The time limit is realistic (pilot-run it; add buffer for reading time).
- The AI policy matches what your invitation email tells candidates.
Managing tasks over time¶
- The task dashboard shows status filters and per-task submission lists.
- Editing a task after candidates have started may create inconsistent experiences — prefer creating a new version for new candidates.
- Public comments/Q&A on tasks let candidates ask questions; responses are visible to other candidates on that task, which is a good way to fix ambiguity once instead of per-candidate.
Plan limits¶
Active tasks count against your subscription plan's task limit. If task creation fails with an upgrade prompt, check Billing → Limits. See Billing and subscriptions.