Differences between revisions 12 and 26 (spanning 14 versions)
Revision 12 as of 2014-03-09 19:46:57
Size: 7890
Editor: GregBack
Comment:
Revision 26 as of 2015-05-27 12:28:13
Size: 5194
Comment: Clarify how to handle filled job postings.
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
The Python job board was run by single volunteers for many years. Since the job board activities have significantly increased in recent years, and the last Chris Withers, who ran the board in the years 2010-2013, left the project, the PSF would like to relaunch the project using a team of volunteers.

At the same time, we'd like to move the job board from the legacy site to the new relaunched http://www.python.org/ Django based site.
This page describes the PSF Python Job Board which is run by volunteers to provide the Python community with an important resource to find jobs where they can use Python.
Line 9: Line 7:
== Old job board process ==

''Please note that this description may not be completely correct. It just describes the process based on the how-to document. ''

Job submissions were processed using email, a ReST template and a page in a subversion repository.

 1. Job submitters created a job posting based on the template listed on the [[http://legacy.python.org/community/jobs/howto/|Job board how-to page]]
 2. Submissions were checked against a list of quality criteria
 3. Submissions which needed refinement were sent back with a notice of what to fix
 4. Good submissions were added to the job page in order of submission date (in most recent first order)

Page cleanup:

 * entries older than three months were regularly removed
 * filled positions were removed upon request by the job submitter

== New job board process ==

''Please note that this process is just a sketch. It may well change and get more refinements in coming weeks.''
== Job board process ==
Line 31: Line 11:
 1. Job submitters log in to the website (after having registered for an account)
 2. Submitters create a job posting record
 3. Submissions are checked against a list of quality criteria by the reviewers
 3. Submissions which needed refinement are flagged and an email is sent back to the job submitter asking for changes
 1. Job submitters [[https://www.python.org/accounts/login/?next=/jobs/create/|log in to the website]] (after having registered for an account)
 2. Submitters [[https://www.python.org/jobs/create/|create a job posting record]]
 3. Submissions are checked against a list of quality criteria by the reviewers using the [[https://www.python.org/jobs/review/|review panel]]; see the [[/Reviewers]] page for details on the review process
 4. Submissions which need refinement are rejected together with a note mentioning the reason for rejection (using the "review" button on the review panel).
Line 37: Line 17:
Questions: Job postings are automatically unlisted after 90 days. They can also be removed or archived manually using the Django database interface by setting the job listing status setting to ''removed''.
Line 39: Line 19:
 * How to inform the job submitters of problems with their submissions ?
 * Should we have 1 person or 2 person reviews ?
Remarks:
Line 42: Line 21:
Possible solutions for questions:  * Submissions which have problems could also be refined directly in the system by the submitters, provided they created it while being logged in. The review page doesn't show this status, though, so it's probably better to go with the rejection procedures for the time being.
Line 44: Line 23:
 * The submission could be like a blog post, that way, the submitter could edit the submission while it's not published and leaving the team members to comment on the submission (alerting the submitter of any comments) regarding problems with the submission.
 * The submitter could also tick a checkbox to delete his submission.

To be clarified:

 * Exact status workflow of job submission records
 * Classification of job submissions (there are multiple categories available)
 * Quality criteria
 * Team member assignments to the review process (e.g. by category)
 * Porting the existing job board submissions into the new site's database

What we need:

 * team members who can help refine the job board Django app (good Django skills are necessary)
 * team members who regularly log in and review postings
 * team members who can help interface to the Django site maintainers, e.g.review and process pull requests, issue tickets in case of problems with the site
 * team members who lead the groups and signal problems to the PSF board, should any arise

== Jobs app design ==

The jobs Django app is already available, but not yet complete.

To get it to a usable state, we'll have to work some more on the code and the templates. Here's what we need to do:

 * review the existing app
 * come up with user stories to define the workflows and UI
 * open tickets and implement the changes necessary to make those user stories work

Please run reviews of the existing app and post them on the review page:

 * [[/Jobs App Reviews]]

We collect user stories on this page:

 * [[/Jobs App User Stories]]

=== Job Model Reference ===

Notes on how various field in the database should be updated:

 * '''Region''': If not applicable, set to the same thing as "Country", until this is no longer a required field. ([[https://github.com/python/pythondotorg/issues/271|GitHub Issue]])
 * '''Job Start Date''': Date of the posting
 * '''Job End Date''': 3 months after "Job start date" (by default)
 * '''Status''': The first person to migrate it should mark it as "review". Someone else should double-check and mark as "approved". Ones submitted by external users should be "draft" if no one has looked at it yet.
 * Reviews by multiple persons would need to be coordinated, since the system does not provide this functionality. For the time being, it's better to have one person do the review.
Line 91: Line 27:
=== Roles === The job board team has decreased a lot due to the long project run time. We will launch with a small team of reviewers:
Line 93: Line 29:
We have so far identified these roles in the team:  * [[/Reviewers]] - team members who review job postings
Line 95: Line 31:
 * [[/Drafters]] - team members who help with getting existing job board listings and the mailing list backlog entered into the database
 * [[/Reviewers]] - team members who review job postings and help giving usability feedback to the developers
 * [[/Developers]] - team members with Django skills to help with improving the Django app
 The review process is also described on the above page.
Line 99: Line 33:
We will also need leaders of both groups and possibly an overall project lead to coordinate the work of the groups and provide an interface to the PSF board. Issues we find are posted to the [[https://github.com/python/pythondotorg/issues|python.org site's issue tracker]]
 and tagged with "job board". The issues are then either worked on by the PSF contractors assigned to the python.org website project, or volunteers who want to help.
Line 101: Line 36:
Once established, we should transfer the project into a regular PSF work group. The job board team itself will not focus on the development anymore for the time being.
Line 103: Line 38:
=== Mailing list === == Mailing list ==
Line 105: Line 40:
The project is run using a mailing list dedicated for the team: The volunteers use a mailing list to coordinate:
Line 109: Line 44:
The list gets all email sent to jobs@python.org. The old process used this email address for job submissions. The new process will use a web form based approach instead. The list gets all email sent to jobs@python.org. In the previous system, job postings were sent in via email. This is no longer necessary and new submissions should only be done via the [[https://www.python.org/jobs/create/|web interface]].

The jobs app will send notification about new postings to this list, so that reviewers get notified of new submissions.
Line 113: Line 50:
Here's the mailing list archive with our current job submission backlog: Here's the mailing list archive:
Line 117: Line 54:
The last processed job submission is dated 12-Feb-2014. == Relaunch Project ==
Line 119: Line 56:
=== Issue tracker === In the years before the relaunch, the jobs board was run by single volunteers. Since the load had increased a lo and the last volunteer, Chris Withers, had left the project, the PSF wanted to replace the jobs board with a team of volunteers using a database driven integrated jobs app.
Line 121: Line 58:
 * [[https://github.com/python/pythondotorg/issues|python.org site's issue tracker]] From 2014 to 2015, a team of volunteers worked to relaunch the job board using a jobs app on the new python.org website (which was launched in 2014).
Line 123: Line 60:
Please open tickets for any problems you find with the jobs app. The tickets should be labeled as "job board", if possible (github restricts using labels). If not possible, please prefix the ticket title with "JB:" or use "job board" in the title. We can then add labels after ticket creation. The relaunch project page is still available: [[/Relaunch Project]]
Line 127: Line 64:
=== New job board === === Production ===
Line 129: Line 66:
 * [[http://www.python.org/newjobs/|Job board temporary installation]] ''Note: The jobs app used to run under the temporary URL /newjobs/ during development. This has now been changed back to /jobs/.''
Line 131: Line 68:
 This is a temporary location of the new Python job board, run using Django and backed by a database.  * [[http://www.python.org/jobs/|Job board jobs listing]] on the production site.
Line 133: Line 70:
 Please note that the database used by this temporary installation is the production one, so any changes to the database contents should be done with care.  * [[http://www.python.org/jobs/review/|Job board review panel]]
Line 135: Line 72:
 * [[http://www.python.org/jobs/|New job board]]  This allows reviewing new job postings.
Line 137: Line 74:
 This will be the production location of the Python job board. === Staging ===
Line 139: Line 76:
 '''Note: At the moment this still redirects to the legacy single page job board.''' ''Note: The jobs app used to run under the temporary URL /newjobs/ during development. This has now been changed back to /jobs/.''
Line 141: Line 78:
=== Old job board === The staging system can be used to check new developments.
Line 143: Line 80:
 * [[http://www.python.org/community/jobs/|Job board listing ported from the legacy site]]  * [[https://staging.python.org/jobs/|Staging system implementation of the new job board]]
Line 145: Line 82:
 This is a single page which has to be manually maintained via the Django admin interface.  This runs a copy of the production database on the master branch of the python.org repository and is updated frequently.
Line 147: Line 84:
 * [[http://legacy.python.org/community/jobs/|Legacy job board site]]  * [[http://staging.python.org/jobs/review/|Staging system job board review panel]] on the staging site.
Line 149: Line 86:
 This page was manually maintained through the Subversion repository which runs the legacy website.

 * [[http://legacy.python.org/community/jobs/howto/|Job board how-to explaining the process that was used for the legacy site]]
Line 155: Line 89:
 * [[https://www.python.org/admin/|Django admin interface of the new site]]  * [[https://www.python.org/admin/|Django admin interface of the python.org site]]
Line 163: Line 97:
 * [[https://github.com/python/pythondotorg|Github repository of the new site]]  * [[https://github.com/python/pythondotorg|Github repository of the new site]] (includes the jobs app)

PSF Python Job Board

This page describes the PSF Python Job Board which is run by volunteers to provide the Python community with an important resource to find jobs where they can use Python.

Job board process

Job submissions are entered into a web form, the form creates a database record which is then used for review. After approval the Django site will then list the submissions automatically.

  1. Job submitters log in to the website (after having registered for an account)

  2. Submitters create a job posting record

  3. Submissions are checked against a list of quality criteria by the reviewers using the review panel; see the /Reviewers page for details on the review process

  4. Submissions which need refinement are rejected together with a note mentioning the reason for rejection (using the "review" button on the review panel).
  5. Good submissions are approved and then automatically listed on the job board page in order of submission date (in most recent first order)

Job postings are automatically unlisted after 90 days. They can also be removed or archived manually using the Django database interface by setting the job listing status setting to removed.

Remarks:

  • Submissions which have problems could also be refined directly in the system by the submitters, provided they created it while being logged in. The review page doesn't show this status, though, so it's probably better to go with the rejection procedures for the time being.
  • Reviews by multiple persons would need to be coordinated, since the system does not provide this functionality. For the time being, it's better to have one person do the review.

Project organization

The job board team has decreased a lot due to the long project run time. We will launch with a small team of reviewers:

  • /Reviewers - team members who review job postings The review process is also described on the above page.

Issues we find are posted to the python.org site's issue tracker

  • and tagged with "job board". The issues are then either worked on by the PSF contractors assigned to the python.org website project, or volunteers who want to help.

The job board team itself will not focus on the development anymore for the time being.

Mailing list

The volunteers use a mailing list to coordinate:

The list gets all email sent to jobs@python.org. In the previous system, job postings were sent in via email. This is no longer necessary and new submissions should only be done via the web interface.

The jobs app will send notification about new postings to this list, so that reviewers get notified of new submissions.

If you want to help in the job board team, please write to jobs@python.org.

Here's the mailing list archive:

Relaunch Project

In the years before the relaunch, the jobs board was run by single volunteers. Since the load had increased a lo and the last volunteer, Chris Withers, had left the project, the PSF wanted to replace the jobs board with a team of volunteers using a database driven integrated jobs app.

From 2014 to 2015, a team of volunteers worked to relaunch the job board using a jobs app on the new python.org website (which was launched in 2014).

The relaunch project page is still available: /Relaunch Project

Resources

Production

Note: The jobs app used to run under the temporary URL /newjobs/ during development. This has now been changed back to /jobs/.

Staging

Note: The jobs app used to run under the temporary URL /newjobs/ during development. This has now been changed back to /jobs/.

The staging system can be used to check new developments.

Web site administration

Web site code base

PSF Python Job Board (last edited 2015-05-27 12:28:13 by MarcAndreLemburg)

Unable to edit the page? See the FrontPage for instructions.