Note

Audience: Jury Manager

Step by step guide to configure and use a strass instance#

We here define actions to do, along with the moment they have to be completed with regards to the calendar you have for your recruitment.

Preflight: Your call is not published yet#

Start you instance#

See Life Cycle of a Production instance

You first have to define the url under with it will be served. It can be https://my-recrutment.pasteur.cloud as in Life Cycle of a Production instance.

Note

This documentation is tailored to your needs, and the url https : // strass - master . dev . pasteur . cloud is replace by yours.

For the following, we consider that the url under which the application is served is https://sincellte-workshop.pasteur.cloud/.

Once your instance started, create an account in this instance. The first account create is granted “superuser” and Jury Manager, this account can do everything so don’t wait to create your account.

Configuring your instance#

For the rest of the configuration we will use the instance served at https://sincellte-workshop.pasteur.cloud. If your instance is my-recrutment replace in the urls sincellte-workshop by my-recrutment-internal. Do not forget to remove the .dev when replacing.

The recruitment management interface is accessible at https://sincellte-workshop.pasteur.cloud/setup/. We will sometime append an html anchor to highlight the dedicated section in the view.

You will encounter note block regarding a moment such as “Call is published”, it means that all step before should be completed. You can also complete some futur step in advance.

Note

Starting recruitment will occur, and name have been chosen.

Change the name of your instance#

Same name in all lang (the easy way)

Link: https://sincellte-workshop-internal.pasteur.cloud/setup/#mail-settings

The name of your instance in shown in the upper left of the page. Clic on the pencil in the “Application configuration” pane, and define a name.

Per language name (the not-so-direct way)

Note

Use this way only if you want to have per lang name, if not use the easy way with in app configuration.

In the upper left angle, the app name is displayed, go into languages files and define the name you want. The files are src/strass/strass_app/locale/en/LC_MESSAGES/django.po and src/strass/strass_app/locale/fr/LC_MESSAGES/django.po. You cannot set an empty string.

Here is what is by default:

msgid "STRASS_APP Name"
msgstr "STRASS"

And set it to

msgid "STRASS_APP Name"
msgstr "My Recruitment"

or even

msgid "STRASS_APP Name"
msgstr "TeamName Recruitment"

Then add the changes and push

git add src/strass/strass_app/locale/en/LC_MESSAGES/django.po
git add src/strass/strass_app/locale/fr/LC_MESSAGES/django.po
git push

Choose your default email sender#

Link: https://sincellte-workshop-internal.pasteur.cloud/setup/#mail-settings

By default email are sent from strass@pasteur.fr, you should change it here to my-instance-no-reploy@pasteur.fr. The default email prefix can also be configured at the same location.

Choose the contact email#

Link: https://sincellte-workshop-internal.pasteur.cloud/setup/#mail-settings

User can contact you at /contact/, but only if you provided the email on which they can contact you. Note that the email is not rendered to the user.

Invite other jury manager#

Link: https://sincellte-workshop.pasteur.cloud/setup/users/

Note

The role of “Jury manager” is essential. This role allows to control all settings of your recruitment process, such as open/close application, and edit questions asked to candidate/reviewer/referee. It is good practice to not be the only one that have this role in case you are unavailable (holidays, sick leave, account issue, …).

Generate invitation to become a jury manager in the application (button “Invite user to be…” on the top right), and send it to the persons you want them to become jury manager.

Once a person have accepted to be a jury manager, you still have to validate that you want this person to actually be a jury manager by going to Link: https://sincellte-workshop.pasteur.cloud/setup/users/

Review allocation

Once validated, this person receive an email notification, so does all other jury managers because of the permissions that come with this role. No email notification is sent when downgrading status.

Provide the call#

The call have to be provided in all the available languages of the instance. To do so, go to the Recruitment management interface, and clic on the pencil.

In the homepage, the call is rendered, by clicking on the pencil, you can edit the call in the current language of the application. To edit the call in another language switch between language, the switch is located on the top right of the web site.

It is not possible to remove english nor french due to the unit test that check the soundness of the code base. It is possible to provide the call in other language, please contact the dev team to do so and/or read How to add a new language.

Define how candidates can apply to the call#

https://sincellte-workshop-internal.pasteur.cloud/setup/#candidate-settings

Define when candidate can start applying, until when they can, and until when they can edit their application. Define here if you want to ask for:

  • a CV (in pdf), or not.

  • a motivation letter (written in plain text/Markdown in the app), or not.

  • maximum number of profile a candidate can apply for. Set to 0 for no limitation.

  • min and max number of referee. To disable the referee module, set the maximum to 0.

  • opening and closing date for applying

Define the profiles#

Link: https://sincellte-workshop-internal.pasteur.cloud/setup/#candidate-profile

A profiles can be “Single cell” “Metagenomic”, “Web development”, … There can be one or many position behind a profil. You also can have a position that fit multiple profil, it depends of your needs. Add one by one the profiles. Accent and space are allowed in the name, markdown in the description.

Warning

Deleting a profile would result in un-associating all existing candidate to this profile without notifying them. To prevent mis-deletion, this possibility is not possible through the recruitment management interface. It is only possible in the admin interface https://sincellte-workshop-internal.pasteur.cloud/admin/strass_app/profile/, and only for superusers.

Using STRASS for a workshop#

If you use STRASS to recruit students for a workshop, the term Profile does not suite the need and you probably want to rename it to Workshop for example. Here is how to do it:

Define application status#

Link: https://sincellte-workshop-internal.pasteur.cloud/setup/#candidate-status

Application statuses will help you managing the application, and the different step of your recruitment. The first status is when the application have just been submitted. You have to define this status before opening the instance to candidate. Accent and space are allowed in the name, markdown in the description. When creating/editing a status, you can define if this status is the default one associated to every new application when they are submitted, thus choose it before candidate can apply.

Define candidate questions#

Link: https://sincellte-workshop.pasteur.cloud/setup/candidate/question/

Define what are the question you want the candidate to answer when zhe apply. Questions are asked in a dedicated step during application, after the Information step and before asking for referee (if enabled).

More help on the question system can be found here.

Define recommendation settings#

Link: https://sincellte-workshop-internal.pasteur.cloud/setup/#recommendation-settings

If referee module is enabled, candidate can ask for recommendation letter to referee. When submitting an application the app will send an invitation to provide a recommendation, so does when adding new referees. Define until when referee will be able to submit an recommandation, and how many referee a candidate can indicate.

More help on the question system can be found here.

Define recommendation questions#

Link: https://sincellte-workshop-internal.pasteur.cloud/setup/recommendation/question/

Define what are the question you want the referee to answer. A numerical scale answer can be used in overall score to give you an overview of the enthusiasm of referees regarding a candidate. Free text area allows referee to write in a more conventional way the recommendation letters. A mix of both is a good idea.

Your call is published and candidate can apply#

All previous step have to be completed before the call is published

Complete additional application status#

Link: https://sincellte-workshop-internal.pasteur.cloud/setup/#candidate-status

You can still add new status.

Complete additional profiles#

Link: https://sincellte-workshop-internal.pasteur.cloud/setup/#candidate-status

You can still add new profiles/positions. You should consider to notify candidates that new profiles have been added.

Inform candidates of new profiles or date changes#

Link: https://sincellte-workshop.pasteur.cloud/setup/mailing/Prepare/

_images/mass-mailing.png

You can bulk mail candidate (an other groups of users) by using mass mailing interface

Application period is closed#

Candidate cannot apply or edit their application.

Re-send invitation to provide recommendation#

Warning

Do not use the -internal url (like https://my-recrutment-internal.pasteur.cloud), but the public url (https://my-recrutment.pasteur.cloud). When building links, the app uses the current hostname, so always use an url your recipients can connect to.

You can see which recommendation are not provided yet with the links here before. You can send the invitation again to a referee when opening a recommendation.

_images/re-send-invitation-recommendation-one.png

You can re send the invitation to multiple referee by selecting their recommendation in the list, and using the action.

_images/re-send-invitation-recommendation-many.png

Recommendation period is closed#

Referee cannot add/edit their recommandation letters

Define review settings and privacy#

Link: https://sincellte-workshop.pasteur.cloud/setup/#review-settings

You can allow reviewers to see all candidate, or not. By default a reviewers can only see the candidate zhe will have to review, but you can allow more.

You can allow reviewer to see the overall score or not, or only when review stage is closed (cf Overall scoring system).

Define review stages#

Link: https://sincellte-workshop.pasteur.cloud/setup/#review_stages

If you plan to have multiple stage/kind of reviews (internal, external, scientific, human resources, soft skills, etc.), you may want to define stage. It will allow you to define per-stage questions. It will also allow you to define the number of reviews needed for each stage during the automatic review allocation.

A review stage allows you to define opening and closing date for editing a review. Without a stage, review are always editable by their reviewers.

Define reviewer groups#

Link: https://sincellte-workshop.pasteur.cloud/setup/#review-group

One group is automatically created per review stage, but you can add more if it helps.

Define review questions#

Link: https://sincellte-workshop.pasteur.cloud/setup/review/question/

Define what are the question you can the reviewer to answer. Numerical scale answer can be used in overall score to give you an overview of the evaluation of the candidates. Free text area are also allowed. A mix of both is a good idea, including numerical scale with a text area to justify the grade.

More help on the question system can be found here.

Invite reviewers#

Generate invitation to become a reviewer, send it to all person that could accept to do it. If you plan to have multiple subset of reviewers (based on the language they speak, the field of work, …) you can generate invitation that will add the reviewer in a specific group. You thus can generate multiple invitation to automatically set reviewers in groups.

Note that invitation must have an expiration date, we recommend to chose a date that is before the review edition period.

Review allocation

Once a person have accepted to be a reviewer, you still have to validate that you want this person to actually be a reviewer by going to Link: https://sincellte-workshop.pasteur.cloud/setup/users/

When a person become a reviewer (or a juror), this person receive an email notification. No email notification is sent when downgrading status.

Reviewer invitation period is almost done#

You have a good amount of reviewers, even if new can still arrive.

Reviewers can express their conflicts of interest#

Reviewers can indicate that they have conflict of interest when reviewing a candidate. They can also indicate that they don’t want to review a candidate. To do se the application have to be configured so they see the candidate list in https://sincellte-workshop.pasteur.cloud/setup/#review-settings .

Assign reviewers#

Link: https://sincellte-workshop.pasteur.cloud/setup/review/overview/

Reviewer assignation is done by solving an integer linear programming. Here is how the problem is formulated:
  • We consider a review stage

  • We can consider only a subset of candidates

  • We can consider only a subset of reviewers

  • Assigning a candidate to a reviewer is only possible if they have at least one profile in common (can be bypass).

  • Each candidate have the desired number of review (3 by default), if possible, less otherwise.

  • We tend to have the same amount of review for each reviewers.

Review allocation

You can assign manually some reviewers to some candidate.

Review allocation

The automatic assignation is done one review stage at a time.

Review period is open#

Reviewers can submit their review

see also Assigning reviewer to candidates

Assign reviewers, again#

Link: https://sincellte-workshop.pasteur.cloud/setup/review/overview/

You can still assign and re-assign reviewers. A reviewer can be automatically unassigned if zhe was not manually assigned and have not started yet to provide a review

Use case: new conflicts of interest

Some reviewers will express their conflict of interest after the assignation phase. By re-running the assignation, reviewers with conflict of interest with one candidate will be un-assigned, and other reviewers will be assigned.

Use case: new reviewers arrive

A reviewer, named Alice, is having to much review to do so you searched for more reviewers on a given profile. Once they accepted the invitation, re-run the auto assignation, and work will be re-distributed among all the reviewers. This redistribution will mechanically reduce the amount of review for Alice.

Review period is closes#

Reviewers cannot edit the review anymore, select the candidate, create your juries

Sort candidate between selected, waiting list, rejected, …#

Link: https://sincellte-workshop.pasteur.cloud/candidates/

Once reviews phase is completed, select which candidates will be interviewed.

Review allocation

You may need for the selection process to export candidates along with their reviews, this can be done in one pdf, or with an archive with one pdf per candidate. In a given file you will find the application, cv, motivation letter, candidate answers, recommendations, reviews.

You may also need a csv export with all information (billing, badges for the face to face interviews, statistics, …).

Note

Whatever your need is, you have to comply to GDPR. A guide focused on recruitment is available at https://www.cnil.fr/fr/le-guide-du-recrutement. Hare are some take away from this document (as of sept. 2024):

  • Candidat data should be kept up to three months after the end of the recruitment process in order to motivate decision made for this recruitment (p50).

  • If refused candidate accepts, their data can be kept up to two years (p50), and only for futur job position.

Define juror permissions#

Link: https://sincellte-workshop.pasteur.cloud/setup/#juror-settings

You can allow jurors to see all reviews, or not. By default a juror can only see the reviews (and thus candidate) zhe will see in an interview session.

Like for reviews, you can allow juror to see all recommendation or not.

Note

If you want people to be granted to see all candidates and their recommendations such as PI for which the position is opened for, you should define them as juror and allow juror to see all recommendations

Invite jurors#

Similarly to reviewers invitation, invite juror, and then validate them.

Create Juries#

Link: https://sincellte-workshop.pasteur.cloud/setup/#jury

Create jury, and add juror in it.

Jury constitution is done#

All Jury have been created, all jurors have been found.

Define the interview session stages#

Link: https://sincellte-workshop.pasteur.cloud/setup/#interview_session_stages

An interview session stage define a period during which a set of candidates can register for one of the interviews session. The set of candidate is based on statuses, and candidates groups. Note that a candidate can have only one interview per stage.

Creating an interview session stage

Real-life use case for stages: Basic usage

Create one stage called Interviews, define when the registration opens and closes, and define that only candidates that are from a status Selected for interview are accepted.

Real-life use case for stages: Successive interviews

Candidates apply for positions, some are selected for online interviews. After this first stage of interviews, the set is reduce to the most interesting candidates, and a second stage Face to face interviews is then planned to finally select which candidate will be selected.

Real-life use case for stages: Per profile interviews

Candidates apply for positions, but the call is for different positions with different profiles. If you create juries based on the profiles they can evaluate, you can create one stage per (group of) profile, and configure each stage to only accept registration of candidate from given candidate-groups.

Add interview session to a stage#

Link: https://sincellte-workshop.pasteur.cloud/jury/stageInterviewSession/1/

One the stage is created, you can open it and have an overview of the registration date, and how the subset of candidate that can self-register for a session is defined. You can easily add new interview session by clicking on the big plus sign.

_images/interview-session-stage.png

Define an interview sessions#

Link: https://sincellte-workshop.pasteur.cloud/jury/interviewSession/1/

From a stage when you clicked on a big plus sign, you see this interface. Define when the session is happening, at most how many candidate can be interviewed, and the juries. Candidate can see the juries name, but not the juror names. There can be multiple session in parallel. The application doesn’t prevent you from creating parallel session with the same jury as it can happen, so be careful about it.

_images/interview-session-add.png

Once created, the detailed view of an interview session allows you to see its information, but also when it is happening in the stage along with the other sessions.

_images/interview-session.png

Registration to interview session opens#

Candidate self-registration to interview session#

Hereafter is what a candidate will in the index page when registration for a session is open.

Invited to select an interview session

Hereafter is what a candidate will see when picking a slot in a session.

Choosing an interview session

You can set/unset candidate manually, they are then notified by email of such changes.

Optional: Guideline for jury to evaluate candidates#

The system used for reviewers to write their review can also be used for jury to summarize the interview. To do so:
  • create a review stage name “Jury evaluation”, which will be open only around the interview dates.

  • create questions for the stage “Jury evaluation” such as, english level (1-5), …

  • define which jurors will provide the interview report, let us call them secretary-jurors, set them a reviewers.

  • assign each candidate to one secretary-juror.

Interview begins#

nothing to configure at that moment

Recruitment is done#

Export application settings#

Link: https://sincellte-workshop.pasteur.cloud/setup/#io-config

Export your recruitment settings. It includes questions to candidates reviewers and referee, profiles, candidates status, language override … It can contains all information that are not related to individuals.

Instance ready to be shutdown#

See Life Cycle of a Production instance.