Interview evaluation form for hiring teams

Updated 2026-10-30

Three interviewers, three different memories of one candidate. By the debrief, nobody can say why they liked the second one. An interview evaluation form puts each person's scores and reasons in writing, right after the call.

Use this when

  • More than one person interviews, and you want scores you can compare.
  • You hire often enough that a shared scorecard saves arguments.
  • You want reasons written down before the debrief starts.

Skip it when

You are chatting informally with one candidate. If you only need dates, start with an interview availability form instead.

What is asked, and why

Candidate, role, stage, date and interviewer, so scores group correctly. Ratings for skills, experience, communication, problem solving and team fit, in the same words each time. Strengths and concerns, which carry the reasons behind the numbers. A verdict from strong yes to strong no. Questions for the next round, so nothing gets lost between interviewers.

What an interviewer's AI would ask

"Which candidate and which role?" Then "How would you rate their problem solving, from 1 to 5?" Then "What concerns do you have?" It lists everything and waits for a yes before it sends. See agent-fillable forms.

A tip

Fill it in before you talk to the other interviewers, so nobody's view shapes yours. I would also rate against the role only. Afterwards, ask the panel if the debrief helped, using a meeting feedback template. More in forms for HR and recruiting. This also works as an interview scorecard template.

Questions

Can several interviewers use the same form?

Yes. Each interviewer submits their own response. Sort the CSV by candidate_name to see every score for one person side by side.

How do I keep the notes fair?

Rate against the role, not the person. Leave out age, health, family plans and other protected topics. Ask for an example behind every strong yes or strong no.

Does it replace my hiring software?

No. It collects scores and notes, and you export them as CSV or JSON. Keep offers and records in the system you already use for hiring.

Try the form

Live demo ยท nothing is saved

Interview scorecard

Fill this in right after the interview, before you talk to the other interviewers. Rate against the role only.

Which stage was this?
Skills for the role

1 is well below what the role needs, 5 is well above.

Relevant experience
Communication
Problem solving
Working style fit with the team
Your recommendation (required)

Or paste the JSON

Give this to your AI. It needs the AI Form API MCP server or an API key. It makes the form and sends you the link.

text
Create this form with the AI Form API create_form tool (or POST https://aiformapi.com/v1/forms with my API key). Then reply with the public_url.

{
  "title": "Interview scorecard",
  "description": "Fill this in right after the interview, before you talk to the other interviewers. Rate against the role only.",
  "fields": [
    {
      "id": "candidate_name",
      "label": "Candidate's name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "role_applied",
      "label": "Role they applied for",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "interviewer_name",
      "label": "Your name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "interview_date",
      "label": "Date of the interview",
      "type": "date",
      "required": true
    },
    {
      "id": "interview_stage",
      "label": "Which stage was this?",
      "type": "single_choice",
      "options": [
        "Phone screen",
        "First interview",
        "Second interview",
        "Final interview",
        "Practical task"
      ]
    },
    {
      "id": "skills_score",
      "label": "Skills for the role",
      "type": "rating",
      "help": "1 is well below what the role needs, 5 is well above.",
      "min": 1,
      "max": 5
    },
    {
      "id": "experience_score",
      "label": "Relevant experience",
      "type": "rating",
      "min": 1,
      "max": 5
    },
    {
      "id": "communication_score",
      "label": "Communication",
      "type": "rating",
      "min": 1,
      "max": 5
    },
    {
      "id": "problem_solving_score",
      "label": "Problem solving",
      "type": "rating",
      "min": 1,
      "max": 5
    },
    {
      "id": "team_fit_score",
      "label": "Working style fit with the team",
      "type": "rating",
      "min": 1,
      "max": 5
    },
    {
      "id": "strengths_seen",
      "label": "Strengths you saw, with an example",
      "type": "long_text",
      "max_length": 2000
    },
    {
      "id": "concerns_gaps",
      "label": "Concerns or gaps, with an example",
      "type": "long_text",
      "max_length": 2000
    },
    {
      "id": "verdict",
      "label": "Your recommendation",
      "type": "single_choice",
      "required": true,
      "options": [
        "Strong yes",
        "Yes",
        "Unsure",
        "No",
        "Strong no"
      ]
    },
    {
      "id": "next_round_questions",
      "label": "Questions to ask in the next round",
      "type": "long_text",
      "max_length": 1000
    }
  ]
}

Or call the API

bash
curl -X POST https://aiformapi.com/v1/forms \
  -H "Authorization: Bearer $AIFORMAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"title":"Interview scorecard","description":"Fill this in right after the interview, before you talk to the other interviewers. Rate against the role only.","fields":[{"id":"candidate_name","label":"Candidate'\''s name","type":"short_text","required":true,"max_length":150},{"id":"role_applied","label":"Role they applied for","type":"short_text","required":true,"max_length":150},{"id":"interviewer_name","label":"Your name","type":"short_text","required":true,"max_length":150},{"id":"interview_date","label":"Date of the interview","type":"date","required":true},{"id":"interview_stage","label":"Which stage was this?","type":"single_choice","options":["Phone screen","First interview","Second interview","Final interview","Practical task"]},{"id":"skills_score","label":"Skills for the role","type":"rating","help":"1 is well below what the role needs, 5 is well above.","min":1,"max":5},{"id":"experience_score","label":"Relevant experience","type":"rating","min":1,"max":5},{"id":"communication_score","label":"Communication","type":"rating","min":1,"max":5},{"id":"problem_solving_score","label":"Problem solving","type":"rating","min":1,"max":5},{"id":"team_fit_score","label":"Working style fit with the team","type":"rating","min":1,"max":5},{"id":"strengths_seen","label":"Strengths you saw, with an example","type":"long_text","max_length":2000},{"id":"concerns_gaps","label":"Concerns or gaps, with an example","type":"long_text","max_length":2000},{"id":"verdict","label":"Your recommendation","type":"single_choice","required":true,"options":["Strong yes","Yes","Unsure","No","Strong no"]},{"id":"next_round_questions","label":"Questions to ask in the next round","type":"long_text","max_length":1000}]}'

JSON definition

json
{
  "title": "Interview scorecard",
  "description": "Fill this in right after the interview, before you talk to the other interviewers. Rate against the role only.",
  "fields": [
    {
      "id": "candidate_name",
      "label": "Candidate's name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "role_applied",
      "label": "Role they applied for",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "interviewer_name",
      "label": "Your name",
      "type": "short_text",
      "required": true,
      "max_length": 150
    },
    {
      "id": "interview_date",
      "label": "Date of the interview",
      "type": "date",
      "required": true
    },
    {
      "id": "interview_stage",
      "label": "Which stage was this?",
      "type": "single_choice",
      "options": [
        "Phone screen",
        "First interview",
        "Second interview",
        "Final interview",
        "Practical task"
      ]
    },
    {
      "id": "skills_score",
      "label": "Skills for the role",
      "type": "rating",
      "help": "1 is well below what the role needs, 5 is well above.",
      "min": 1,
      "max": 5
    },
    {
      "id": "experience_score",
      "label": "Relevant experience",
      "type": "rating",
      "min": 1,
      "max": 5
    },
    {
      "id": "communication_score",
      "label": "Communication",
      "type": "rating",
      "min": 1,
      "max": 5
    },
    {
      "id": "problem_solving_score",
      "label": "Problem solving",
      "type": "rating",
      "min": 1,
      "max": 5
    },
    {
      "id": "team_fit_score",
      "label": "Working style fit with the team",
      "type": "rating",
      "min": 1,
      "max": 5
    },
    {
      "id": "strengths_seen",
      "label": "Strengths you saw, with an example",
      "type": "long_text",
      "max_length": 2000
    },
    {
      "id": "concerns_gaps",
      "label": "Concerns or gaps, with an example",
      "type": "long_text",
      "max_length": 2000
    },
    {
      "id": "verdict",
      "label": "Your recommendation",
      "type": "single_choice",
      "required": true,
      "options": [
        "Strong yes",
        "Yes",
        "Unsure",
        "No",
        "Strong no"
      ]
    },
    {
      "id": "next_round_questions",
      "label": "Questions to ask in the next round",
      "type": "long_text",
      "max_length": 1000
    }
  ]
}