Create a Project

A project is a grouping of problems and candidates

A project is a grouping of problems and candidates. It can be used to contain an interview, a coding competition or anything you want. Let's create a project with some problems and candidates.

Create the project

First, create the wrapping project.

curl --location 'https://94s1zv81nb.execute-api.us-west-2.amazonaws.com//api/projects' \ --header 'Content-Type: application/json' \ --data '{ "name" : "My first project", "description": "Showcasing how to create projects from the API", "state": "open", "starttime": "Apr 17, 2022 6:00 pm", "endtime": "Apr 17, 2022 8:00 pm" }'

This will give you the project ID. You will use this to make changes to the project in the coming operations.

{ "id": 225 }

Add a problem

Now that we have a project, let's add a problem that the candidates will solve.

curl --location 'https://94s1zv81nb.execute-api.us-west-2.amazonaws.com//api/projects/225/problems' \ --header 'Content-Type: application/json' \ --data '{ "problemid" : 109 }'

Add a candidate

curl --location 'https://94s1zv81nb.execute-api.us-west-2.amazonaws.com//api/projects/225/candidates' \
--header 'Content-Type: application/json' \
--data-raw '[
    {
        "first_name": "Alan",
        "last_name": "Gonzalez",
        "email1": "alan@devmatch.xyz",
        "source": "DevMatch",
        "notes": "Tier 1",
        "stage_id": 1
    }
]'

This will return the following:

[ { "first_name": "Alan", "last_name": "Gonzalez", "email1": "alan@devmatch.xyz", "source": "DevMatch", "notes": "Tier 1", "stage_id": 1, "candidate_id": 1305 } ]

The important field here is the candidate_id. This is how we are going to refer to this candidate in the future.

Send invitations

curl --location \
  --request POST 'https://94s1zv81nb.execute-api.us-west-2.amazonaws.com//api/projects/225/candidates/1305/invite' \


Once this call is made, the candidate will get an email like this:

That's it! The user is now invited to take the assessment!