Job Marketplace

Introduction

CSE frequently receives requests from employers asking CSE to bring jobs to the attention of CSE's qualified pool of students/grads who might be good candidates to work at their companies. In 2015, CSE Chair Chunming Qiao requested a means of formalizing and organizing job postings for CSE students/grads. Although UB already has a university-wide employment marketplace called UB Bullseye, Chunming sees value in offering a curated service by which CSE admin staff may upload job postings on behalf of employers. This provides an implicit endorsement of both company and CSE student/grad job candidate.

Unlike UB Bullseye, this system enables CSE to require employers to make donations to CSE in order to participate in this marketplace.

Specification

This minimal technical specification should be understood as a roadmap for developing the system. Better ideas and system improvements always welcome. To be consistent with other work being done in SEAS, and for efficient maintainability, we should build this tool with:

  • Bootstrap libraries. A good, contemporary set of libraries to guarantee consistent design.
  • PHP. A standard for developing interactive web tools.
  • Javascript. Also useful for adding web functionality.
  • MySQL. We have a well-established MySQL server called postel that typically serves as our local back-end data repository.

GUI

CSE has a collection of existing web forms by which we collect data and push it into databases (below). But these forms are looking dated. To be current, and to contribute to a consistent look and feel across SEAS departments, we should change the template of our CSE web forms to look more like the SEAS Office of Undergraduate Education forms (below). SEAS OUE builds its forms upon Boost libraries, which Twitter designed to guarantee a consistent look and feel. Functionally, the SEAS OUE forms are similar to our existing forms; they're built with PHP, some JavaScript or jQuery, and MySQL.

We can make the forms really slick by sanitizing user input as demonstrated in the 'creating multi-step forms' example (below).

We'll have separate GUIs for:

  1. Admin staff to input company info, employee info, and job postings.
  2. Students to view current job postings submitted by approved companies.

Data

We'll store the data on our faculty/staff MySQL server, postel.cse.buffalo.edu, in a database called 'jobs'.


mysql> use jobs;
Database changed
mysql> show tables;
+----------------+
| Tables_in_jobs |
+----------------+
| companies      |
| donations      |
| employees      |
| postings       |
+----------------+
4 rows in set (0.00 sec)

Operation

  1. Company submits job posting to CSE via email, phone, or letter.
  2. CSE admin uses web form to insert company description and company employees' contact info if they don't already exist. CSE admin inserts job posting title, description, begin datetime, end datetime.
  3. If sum of company's donations.amount field exceed some arbitrary numeric threshold over the last 12 months or if companies.donation_override=1, job posting automatically appears in student-facing web form. Else email chair and alert him that a company that has not donated to CSE and does not have its company donation_override set has a pending job posting request.

People

  1. Chunming Qiao, requestor.

References

  1. http://www.cse.buffalo.edu/jobs/admin/index.php
  2. https://www.buffalo.edu/career/BullsEye.html
  3. https://www.eng.buffalo.edu/undergrad/apps/
  4. http://www.thesoftwareguy.in/creating-responsive-multi-step-form-bootstr...
  5. http://www.w3schools.com/bootstrap/
  6. https://www.cse.buffalo.edu/forms/1/
  7. https://www.cse.buffalo.edu/forms/2/
  8. https://www.cse.buffalo.edu/forms/4/