U.S. patent application number 15/895975 was filed with the patent office on 2018-08-16 for system and interfaces for managing temporary workers.
This patent application is currently assigned to Scout Exchange LLC. The applicant listed for this patent is Scout Exchange LLC. Invention is credited to Sean Bisceglia, John Chuang, Ken Lazarus, Mouli Ramani.
Application Number | 20180232684 15/895975 |
Document ID | / |
Family ID | 61283375 |
Filed Date | 2018-08-16 |
United States Patent
Application |
20180232684 |
Kind Code |
A1 |
Chuang; John ; et
al. |
August 16, 2018 |
SYSTEM AND INTERFACES FOR MANAGING TEMPORARY WORKERS
Abstract
Described herein are embodiments of a system that permits
various entities (e.g., hiring, staffing, and client computer
systems and/or devices) involved in the placement of a candidate to
a job to interact systematically to carry out functions that
conventional systems are unable to perform. These functions may,
for example, include synchronizing systems of different entities
involved in placing a worker, effectively tracking a temporary
workers during a placement and/or hiring process, and post
placement activities. To this end, systems and method are provided
that permit a handshake process between disparate systems to
complete a candidate placement process, timesheet approval and
processing, consolidated invoicing, customized analytics and
reporting, supplier onboarding of temporary workers, and
post-hiring tracking, among other novel tools, interfaces and
functionality.
Inventors: |
Chuang; John; (Brookline,
MA) ; Lazarus; Ken; (Boston, MA) ; Bisceglia;
Sean; (Boston, MA) ; Ramani; Mouli; (Boston,
MA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Scout Exchange LLC |
Boston |
MA |
US |
|
|
Assignee: |
Scout Exchange LLC
Boston
MA
|
Family ID: |
61283375 |
Appl. No.: |
15/895975 |
Filed: |
February 13, 2018 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
62458528 |
Feb 13, 2017 |
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
G06Q 40/12 20131203;
G06F 8/38 20130101; G06Q 20/102 20130101; G06Q 10/063114 20130101;
G06Q 10/1091 20130101; G06Q 10/1053 20130101; G06F 3/04842
20130101; G06Q 10/063112 20130101; G06Q 10/06311 20130101 |
International
Class: |
G06Q 10/06 20060101
G06Q010/06; G06Q 10/10 20060101 G06Q010/10 |
Claims
1. A distributed computer system comprising: a network interface; a
database; and an exchange component coupled to an employer computer
system and a staffing firm computer system via the network
interface, the exchange system configured to: store, in the
database, a plurality of job requisition records, each of the
plurality of job requisition records associated with one of a
plurality of job requisitions; synchronize the plurality of job
requisition records with a dataset of one or more job requisitions
stored by the employer computer system, the synchronizing
comprising: identifying, in the dataset of the one or more job
requisition stored by the employer computer system, a new job
requisition that is not among the plurality of job requisitions;
and generating a new job requisition record in the database,
wherein the new job requisition record is associated with the new
job requisition; provide access to the new job requisition record
to the staffing firm computer system; maintain a pool of temporary
worker records in the database, each of the temporary worker
records associated with one of a plurality of temporary workers
available as candidates; and match a temporary worker of the
plurality of temporary workers to the new job requisition.
2. The system according to claim 1, wherein the exchange component
is coupled to an application tracking system (ATS) used by the
employer computer system.
3. The system of claim 1, wherein the exchange component is further
configured to: in response to matching the temporary worker to the
new job requisition, transmit information about the temporary
worker to the employer computer system from a respective one of the
plurality of temporary worker records associated with the temporary
worker.
4. The system of claim 1, wherein the exchange component is further
configured to receive, via the network interface, an indication
that the temporary worker has been hired from the employer computer
system.
5. The system of claim 4, wherein the exchange component is further
configured to: in response to receiving the indication that the
temporary worker has been hired from the employer computer system:
transmit, via the network interface, an indication to the staffing
computer system indicating that the temporary worker has been
hired; receive, via the network interface, an indication of
acceptance from the staffing computer system; transmit, via the
network interface, an indication of the acceptance from the
staffing computer system to the employer computer system; receive,
via the network interface, an indication of completion of a hiring
process from the employer computer system; and store, in the
database, information specifying placement of the temporary worker
to the job requisition.
6. The system of claim 1, wherein providing access to the new job
requisition record to the staffing computer system comprises
generating a user interface allowing a user of the staffing
computer system to submit a candidate for the new job
requisition.
7. The system of claim 6, wherein the exchange component is further
configured to: receive, via the user interface, a submission of the
temporary worker for the new job requisition; and match the
temporary worker to the new job requisition in response receiving
to the submission.
8. The system of claim 1, wherein the exchange component is further
configured to maintain, in the database, a candidate status in a
temporary worker record associated with the temporary worker when
the temporary worker is matched to the new job requisition
record.
9. The system of claim 8, wherein the exchange component is further
configured to: receive an indication of an update to the candidate
status from the employer computer system; and update the candidate
status for the temporary worker in the database in response to
receiving the indication of the update to the candidate status.
10. The system of claim 9, wherein the exchange component is
further configured to receive the indication of the update to the
candidate status from the employer computer system in response to a
change in a candidate status in an applicant tracking system (ATS)
used by the employer computer system.
11. The system of claim 1, wherein the exchange component is
further configured to: determine one or more staffing firms to
recommend the new job requisition to, wherein the one or more
staffing firms include a staffing firm associated with the staffing
firm computer system; and transmit an indication of the new job
requisition to the staffing firm computer system in response to
determining the one or more staffing firms.
12. The system of claim 11, wherein the exchange component is
further configured to; generate a user interface allowing a user to
select the one or more staffing firms to recommend the new job
requisition to; receive a user selection of the one or more
staffing firms via the user interface; and determine the one or
more staffing firms based on the received user selection.
13. A computer implemented method for integrating an employer
computer system and a staffing firm computer system, the method
comprising: storing, in a database, a plurality of job requisition
records, each of the plurality of job requisition records
associated with one of a plurality of job requisitions;
synchronizing the plurality of job requisition records with a
dataset of one or more job requisitions stored by the employer
computer system, the synchronizing comprising: identifying, in the
dataset of the one or more job requisition stored by the employer
computer system, a new job requisition that is not among the
plurality of job requisitions; and generating a new job requisition
record in the database, wherein the new job requisition is
associated with the new job requisition; providing access to the
new job requisition record to the staffing firm computer system;
maintaining a pool of temporary worker records in the database,
each of the temporary worker records associated with one of a
plurality of temporary workers available as candidates; and
matching a temporary worker of the plurality of temporary workers
to the new job requisition.
14. The method of claim 13, further comprising: receiving, via a
network interface, an indication that the temporary worker has been
hired from the employer computer system.
15. The method of claim 14, further comprising: in response to
receiving the indication that the temporary worker has been hired
from the employer computer system: transmitting, via the network
interface, an indication to the staffing computer system indicating
that the temporary worker has been hired; receiving, via the
network interface, an indication of acceptance from the staffing
computer system; transmitting, via the network interface, an
indication of the acceptance from the staffing computer system to
the employer computer system; receiving, via the network interface,
an indication of completion of a hiring process from the employer
computer system; and storing, in the database, information
specifying placement of the temporary worker to the job
requisition.
16. The method of claim 13, wherein providing access to the new job
requisition record to the staffing computer system comprises
generating a user interface allowing a user of the staffing
computer system to submit a candidate for the new job
requisition.
17. The method of claim 16, further comprising: receiving, via the
user interface, a submission of the temporary worker to the new job
requisition; and matching the temporary worker from the pool of the
plurality of temporary workers in response receiving to the
submission.
18. The method of claim 13, further comprising: determining one or
more staffing firms to recommend the new job requisition to,
wherein the one or more staffing firms include a staffing firm
associated with the staffing firm computer system; and transmitting
an indication of the new job requisition to the staffing firm
computer system in response to determining the one or more staffing
firms.
19. The method of claim 18, further comprising: generating a user
interface allowing a user to select the one or more staffing firms
to recommend the new job requisition to; receiving a user selection
of the one or more staffing firms; and determining the one or more
staffing firms based on the received user selection.
20. A non-volatile computer-readable medium encoded with
instructions for execution on a computer system, the instructions
when executed, perform a method comprising: storing, in a database,
a plurality of job requisition records, each of the plurality of
job requisition records associated with one of a plurality of job
requisitions; synchronizing the plurality of job requisition
records with a dataset of one or more job requisitions stored by
the employer computer system, the synchronizing comprising:
identifying, in the dataset of the one or more job requisition
stored by the employer computer system, a new job requisition that
is not among the plurality of job requisitions; and generating a
new job requisition record in the database, wherein the new job
requisition is associated with the new job requisition; providing
access to the new job requisition record to the staffing firm
computer system; maintaining a pool of temporary worker records in
the database, each of the temporary worker records associated with
one of a plurality of temporary workers available as candidates;
and matching a temporary worker of the plurality of temporary
workers to the new job requisition.
Description
RELATED APPLICATIONS
[0001] This Application is a Non-Provisional of Provisional (35 USC
119(e)) of U.S. Application Ser. No. 62/458,528, filed Feb. 13,
2017, entitled "SYSTEM AND INTERFACES FOR MANAGING TEMPORARY
WORKERS".
NOTICE OF MATERIAL SUBJECT TO COPYRIGHT PROTECTION
[0002] Portions of the material in this patent document are subject
to copyright protection under the copyright laws of the United
States and of other countries. The owner of the copyright rights
has no objection to the facsimile reproduction by anyone of the
patent document or the patent disclosure, as it appears in the
United States Patent and Trademark Office publicly available file
or records, but otherwise reserves all copyright rights whatsoever.
The copyright owner does not hereby waive any of its rights to have
this patent document maintained in secrecy, including without
limitation its rights pursuant to 37 C.F.R. .sctn. 1.14.
BACKGROUND OF INVENTION
[0003] Hiring companies and staffing companies may utilize computer
systems to manage candidates and applicants for open jobs. For
example, a hiring company may utilize an applicant tracking system
(ATS) to handle various recruitment activities. The staffing
company may use a separate staffing platform (e.g., a separate ATS)
to manage candidates and recruitment activities. Further, after
placement of a candidate, a hiring company and staffing firm may
carry out other interactions as part of placing a candidate to a
job. For example, the hiring company may pay a staffing firm a
percentage of a worker's salary after the worker begins employment
with the hiring company.
SUMMARY
[0004] Systems and software exist that are used to manage hiring,
reviews, payroll and performance of workers. Also, there exist
systems for recruiting and tracking applicants by hiring
professionals such as recruiters. However, according to one aspect,
it is appreciated that existing capabilities for managing and
tracking workers across multiple different entities are not
sufficient, as the managing and tracking may involve coordination
between the multiple different computer and software systems.
Different parties associated with hiring a candidate for an open
job may each use a separate computer system(s) and separate
software application(s). The various computer systems and software
applications are unable to interact with each other. Given the
large volume of job requisition, candidate, and worker records that
are to be stored, updated, and tracked, the inability of the
different computer systems and software applications to interact
leaves these computer systems and software applications unable to
carry out several functions associated with hiring activities.
[0005] The inventors have recognized a need for a system and
associated interfaces that permit various entities (e.g., hiring,
staffing, and client computer systems and/or devices) involved in
the placement of a candidate to interact systematically to carry
out functions that conventional systems are unable to carry out.
For instance, it is appreciated that there may be various functions
for effectively coordinating between multiple computer systems for
placement of temporary workers among a number of employers and
sites. These functions may, for example, include synchronizing
systems of different entities involved in placing a worker,
effectively tracking a temporary workers during a placement and/or
hiring process, tracking payment of temporary workers, and tracking
performance of temporary workers after placement, distributing
payments to parties involved in placement of a worker. To this end,
systems and method are provided that permit a handshake process
between systems, timesheet approval and processing, consolidated
invoicing for temporary workers, customized analytics and
reporting, supplier onboarding of temporary workers, and
post-hiring tracking, among other novel tools, interfaces and
functionality.
[0006] According to some embodiments, systems involve components
that integrate functions performed by computer systems and/or
software applications used by employers, staffing firms, and
various service delivery consultants. Certain components integrate
and consolidate workflows between such entities to perform
placements of workers to a client, complete onboarding
requirements, process timesheets, perform invoicing and reporting
functions, among other functions and operations. According to
various aspects, workflows are optimized and the number of steps
are reduced. Further, reporting and tracking capabilities for
temporary workers may be facilitated by a system that spans the
employer, staffing and placement firm computer systems.
[0007] According to another aspect, a marketplace for temporary
workers and open positions may be created that has greater
capabilities than current systems. For instance, a system may be
provided that collects multiple contingent jobs from one or more
employers, and tracks applicants from multiple staffing firms that
otherwise would reside in disparate computer systems and
applications. The system may include employer interfaces used to
allow employers to view available talent from various staffing
firms and to pull placements for temporary positions available at
the employer site. The employer may be provided a number of tools
that permit the employer to view timesheets and approve them,
generate and review reports, review invoices, track payments to
staffing firms, among other functions. Some aspects may be
facilitated by a talent platform exchange system that facilitates
communication between computer systems used by employers,
recruiters and staffing agencies.
[0008] According to one aspect of the present invention, a
distributed computer system is provided comprising an exchange
component, functionally coupled to a plurality of staffing computer
systems and a client-based management system, the exchange
component configured to maintain a plurality of temporary worker
records, each of which is associated with a temporary worker from a
pool of temporary workers available to be placed, an interface to
the client-based management system, the interface configured to
accept a job requisition record indicating a requisition for a
temporary worker for an identified client, responsive to receipt of
the job requisition record, submitting an indication of the job
requisition record to the plurality of staffing computer systems,
receive a plurality of candidate records from the plurality of
staffing computer systems, identify the plurality of candidate
records to the client-based management system to be displayed to a
user, determining a placement of a selected candidate based on an
indication received from the user; and responsive to the
indication, perform, by the exchange component, an onboarding of
the selected candidate within the client-based management
system.
[0009] According to one embodiment, the system further comprises a
component adapted to, after the selected candidate is placed, store
timesheet data associated with the placed candidate. According to
another embodiment, the system further comprises a client interface
component adapted to permit the user to review the stored timesheet
data associated with the placed candidate. According to another
embodiment, the exchange component stores the timesheet data
associated with the placed candidate.
[0010] According to another embodiment, the interface to the
client-based management system is a programmatic interface
implemented in an employee management system. According to another
embodiment, the exchange component further comprises a component
adapted to generate an invoice to the client based on the stored
timesheet data. According to another embodiment, the exchange
component includes a payment component adapted to automatically pay
a staffing firm associated with the placed candidate responsive to
a receipt of payment from the client.
[0011] According to another embodiment, the exchange component is
further configured to perform a search function among the pool of
temporary workers for a match between the job requisition record
and at least one of the plurality of temporary worker records.
According to another embodiment, the exchange component is adapted
to create a job requisition record at the plurality of staffing
computer systems through a programmatic interface. According to
another embodiment, the created job requisition record is active to
a selected number of the plurality of staffing computer systems for
a predetermined period of time.
[0012] According to another embodiment, the system further
comprises an interface that permits a user to view the plurality of
temporary worker records, each of which is associated with a
temporary worker from a pool of temporary workers available to be
placed. According to another embodiment, the system further
comprises an indication of a recruiter associated with at least one
of the temporary worker records, the indication of the recruiter
including at least one performance parameter of the associated
recruiter.
[0013] According to another embodiment, the component adapted to
generate an invoice to the client based on the stored timesheet
data further comprises a component to permit the client to retrieve
timesheet data responsive to a selection of a control input.
According to another embodiment, the control input includes a link
within a representation of the invoice. According to another
embodiment, the system further comprises an interface that permits
a user to view a temporary worker placement interface, the
placement interface including parameters associated with a
temporary position and an indication of an assigned temporary
worker.
[0014] According to another aspect of the present invention, a
non-volatile computer-readable medium encoded with instructions for
execution on a computer system is provided, the instructions when
executed, provide a system comprising an exchange component,
functionally coupled to a plurality of staffing computer systems
and a client-based management system, the exchange component
configured to maintain a plurality of temporary worker records,
each of which is associated with a temporary worker from a pool of
temporary workers available to be placed, an interface to the
client-based management system, the interface configured to accept
a job requisition record indicating a requisition for a temporary
worker for an identified client, responsive to receipt of the job
requisition record, submitting an indication of the job requisition
record to the plurality of staffing computer systems, receive a
plurality of candidate records from the plurality of staffing
computer systems, identify the plurality of candidate records to
the client-based management system to be displayed to a user,
determining a placement of a selected candidate based on an
indication received from the user; and responsive to the
indication, perform, by the exchange component, an onboarding of
the selected candidate within the client-based management
system.
[0015] According to one embodiment, the system further comprises a
component adapted to, after the selected candidate is placed, store
timesheet data associated with the placed candidate. According to
another embodiment, the system further comprises a client interface
component adapted to permit the user to review the stored timesheet
data associated with the placed candidate. According to another
embodiment, the exchange component stores the timesheet data
associated with the placed candidate.
[0016] According to another embodiment, the interface to the
client-based management system is a programmatic interface
implemented in an employee management system. According to another
embodiment, the exchange component further comprises a component
adapted to generate an invoice to the client based on the stored
timesheet data. According to another embodiment, the exchange
component includes a payment component adapted to automatically pay
a staffing firm associated with the placed candidate responsive to
a receipt of payment from the client.
[0017] According to another embodiment, the exchange component is
further configured to perform a search function among the pool of
temporary workers for a match between the job requisition record
and at least one of the plurality of temporary worker records.
According to another embodiment, the exchange component is adapted
to create a job requisition record at the plurality of staffing
computer systems through a programmatic interface. According to
another embodiment, the created job requisition record is active to
a selected number of the plurality of staffing computer systems for
a predetermined period of time.
[0018] According to another embodiment, the system further
comprises an interface that permits a user to view the plurality of
temporary worker records, each of which is associated with a
temporary worker from a pool of temporary workers available to be
placed. According to another embodiment, the system further
comprises an indication of a recruiter associated with at least one
of the temporary worker records, the indication of the recruiter
including at least one performance parameter of the associated
recruiter.
[0019] According to another embodiment, the component adapted to
generate an invoice to the client based on the stored timesheet
data further comprises a component to permit the client to retrieve
timesheet data responsive to a selection of a control input.
According to another embodiment, the control input includes a link
within a representation of the invoice. According to another
embodiment, the system further comprises an interface that permits
a user to view a temporary worker placement interface, the
placement interface including parameters associated with a
temporary position and an indication of an assigned temporary
worker.
[0020] According to one aspect of the present invention, a
distributed computer system is provided. The system comprises a
network interface, a database, and an exchange component couple to
an employer computer system and a staffing firm computer system via
the network interface, the exchange system configured to: store, in
the database, a plurality of job requisition records, each of the
plurality of job requisition records associated with one of a
plurality of job requisitions, synchronize the plurality of job
requisition records with a dataset of one or more job requisitions
stored by the employer computer system, the synchronizing
comprising: identifying, in the dataset of the one or more job
requisition stored by the employer computer system, a new job
requisition that is not among the plurality of job requisitions,
and generating a new job requisition record in the database,
wherein the new job requisition record is associated with the new
job requisition, provide access to the new job requisition record
to the staffing firm computer system, maintain a pool of temporary
worker records in the database, each of the temporary worker
records associated with one of a plurality of temporary workers
available as candidates, and match a temporary worker of the
plurality of temporary workers to the new job requisition.
[0021] According to one embodiment, the exchange component is
coupled to an application tracking system (ATS) used by the
employer computer system. According to another embodiment, the
exchange component is further configured to: in response to
matching the temporary worker to the new job requisition, transmit
information about the temporary worker to the employer computer
system from a respective one of the plurality of temporary worker
records associated with the temporary worker.
[0022] According to another embodiment, the exchange component is
further configured to receive, via the network interface, an
indication that the temporary worker has been hired from the
employer computer system. According to one embodiment, the exchange
component is further configured to: in response to receiving the
indication that the temporary worker has been hired from the
employer computer system: transmit, via the network interface, an
indication to the staffing computer system indicating that the
temporary worker has been hired, receive, via the network
interface, an indication of acceptance from the staffing computer
system, transmit, via the network interface, an indication of the
acceptance from the staffing computer system to the employer
computer system, receive, via the network interface, an indication
of completion of a hiring process from the employer computer
system, and store, in the database, information specifying
placement of the temporary worker to the job requisition.
[0023] According to another embodiment, providing access to the new
job requisition record to the staffing computer system comprises
generating a user interface allowing a user of the staffing
computer system to submit a candidate for the new job requisition.
According to one embodiment, the exchange component is further
configured to: receive, via the user interface, a submission of the
temporary worker for the new job requisition, and match the
temporary worker to the new job requisition in response receiving
to the submission. According to one embodiment, the exchange
component is further configured to receive the indication of the
update to the candidate status from the employer computer system in
response to a change in a candidate status in an applicant tracking
system (ATS) used by the employer computer system.
[0024] According to another embodiment, the exchange component is
further configured to: determine one or more staffing firms to
recommend the new job requisition to, wherein the one or more
staffing firms include a staffing firm associated with the staffing
firm computer system, and transmit an indication of the new job
requisition to the staffing firm computer system in response to
determining the one or more staffing firms. According to one
embodiment, the exchange component is further configured to,
generate a user interface allowing a user to select the one or more
staffing firms to recommend the new job requisition to, receive a
user selection of the one or more staffing firms via the user
interface, and determine the one or more staffing firms based on
the received user selection.
[0025] According to another embodiment, the exchange component is
further configured to maintain, in the database, a candidate status
in a temporary worker record associated with the temporary worker
when the temporary worker is matched to the new job requisition
record. According to one embodiment the exchange component is
further configured to: receive an indication of an update to the
candidate status from the employer computer system, and update the
candidate status for the temporary worker in the database in
response to receiving the indication of the update to the candidate
status.
[0026] Another to another aspect of the present invention, a
computer implemented method for integrating an employer computer
system and a staffing firm computer system is provided. The method
comprises: storing, in a database, a plurality of job requisition
records, each of the plurality of job requisition records
associated with one of a plurality of job requisitions,
synchronizing the plurality of job requisition records with a
dataset of one or more job requisitions stored by the employer
computer system, the synchronizing comprising: identifying, in the
dataset of the one or more job requisition stored by the employer
computer system, a new job requisition that is not among the
plurality of job requisitions, and generating a new job requisition
record in the database, wherein the new job requisition is
associated with the new job requisition, providing access to the
new job requisition record to the staffing firm computer system,
maintaining a pool of temporary worker records in the database,
each of the temporary worker records associated with one of a
plurality of temporary workers available as candidates, and
matching a temporary worker of the plurality of temporary workers
to the new job requisition.
[0027] According to another embodiment, the method further
comprises receiving, via a network interface, an indication that
the temporary worker has been hired from the employer computer
system. According to one embodiment, the method further comprises,
in response to receiving the indication that the temporary worker
has been hired from the employer computer system: transmitting, via
the network interface, an indication to the staffing computer
system indicating that the temporary worker has been hired,
receiving, via the network interface, an indication of acceptance
from the staffing computer system, transmitting, via the network
interface, an indication of the acceptance from the staffing
computer system to the employer computer system, receiving, via the
network interface, an indication of completion of a hiring process
from the employer computer system, and storing, in the database,
information specifying placement of the temporary worker to the job
requisition.
[0028] According to another embodiment, the method further
comprises providing access to the new job requisition record to the
staffing computer system comprises generating a user interface
allowing a user of the staffing computer system to submit a
candidate for the new job requisition. According to one embodiment,
the method further comprises receiving, via the user interface, a
submission of the temporary worker to the new job requisition, and
matching the temporary worker from the pool of the plurality of
temporary workers in response receiving to the submission.
[0029] According to another embodiment, the method further
comprises determining one or more staffing firms to recommend the
new job requisition to, wherein the one or more staffing firms
include a staffing firm associated with the staffing firm computer
system, and transmitting an indication of the new job requisition
to the staffing firm computer system in response to determining the
one or more staffing firms. According to one embodiment, the method
further comprises generating a user interface allowing a user to
select the one or more staffing firms to recommend the new job
requisition to, receiving a user selection of the one or more
staffing firms, and determining the one or more staffing firms
based on the received user selection.
[0030] According to another aspect of the present invention, a
non-volatile computer-readable medium encoded with instructions for
execution on a computer system is provided. The instructions, when
executed by the computer system, cause the computer system to
perform a method comprising: storing, in a database, a plurality of
job requisition records, each of the plurality of job requisition
records associated with one of a plurality of job requisitions,
synchronizing the plurality of job requisition records with a
dataset of one or more job requisitions stored by the employer
computer system, the synchronizing comprising: identifying, in the
dataset of the one or more job requisition stored by the employer
computer system, a new job requisition that is not among the
plurality of job requisitions, and generating a new job requisition
record in the database, wherein the new job requisition is
associated with the new job requisition, providing access to the
new job requisition record to the staffing firm computer system,
maintaining a pool of temporary worker records in the database,
each of the temporary worker records associated with one of a
plurality of temporary workers available as candidates, and
matching a temporary worker of the plurality of temporary workers
to the new job requisition.
[0031] According to one embodiment, the method further comprises,
in response to matching the temporary worker to the new job
requisition, transmitting information about the temporary worker to
the employer computer system from one of the plurality of temporary
worker records associated with the temporary worker.
[0032] According to one aspect of the present invention, a
distributed system is provided. The distributed computer system
comprises: a network interface, a database, and an exchange
component coupled to an employer computer system and a staffing
firm computer system via the network interface, wherein the
exchange component is further configured to: receive, via the
network interface, a first indication of a candidate being hired
for a job requisition from the employer computer system, in
response to receiving the first indication of the candidate being
hired from the employer computer system, transmitting, via the
network interface, a second indication of the candidate being hired
to the staffing firm computer system, receive, via the network
interface, a third indication that a placement of the candidate to
the job requisition is complete from the employer computer system,
and in response to receiving the indication that the placement of
the candidate is complete: store, in the database, a record of a
worker associated with the hired candidate, and store, in the
database, a record of an approver associated with a user of the
employer computer system.
[0033] According to another embodiment, the exchange component is
further configured to receive the first indication of the candidate
being hired for the job requisition responsive to a status
associated with the candidate in an applicant tracking system (ATS)
used by the employer computer system changing to hired.
[0034] According to another embodiment, the exchange component is
further coupled to a client system used by the hired candidate via
the network interface. According to one embodiment, the exchange
component is further configured to receive an indication of a
submitted timesheet from the client system. According to one
embodiment, the exchange component is further configured to
transmit an indication of the submitted timesheet to the user of
the employer computer system. According to one embodiment, the
exchange component is further configured to: receive an indication
of approval of the timesheet by the user of the employer computer
system from the employer computer system, and store the approved
timesheet in the database. According to one embodiment, the
exchange component is further configured to: receive, via the
network interface, an indication of a rejection of the timesheet by
the user of the employer computer system from the employer computer
system, and transmit, via the network interface, an indication of
the rejected timesheet to the client system used by the hired
candidate.
[0035] According to another embodiment, the exchange component is
further configured to generate an invoice based on the submitted
timesheet. According to one embodiment, the exchange component is
further configured to transmit, via the network interface, the
invoice to an automatic payment system used by the employer
computer system. According to one embodiment, the exchange
component is further configured to: receive, via the network
interface, a payment from the employer computer system in response
to transmitting the invoice, and transmit, via the network
interface, funds to an account of a staffing firm associated with
the staffing firm computer system.
[0036] According to another aspect of the present invention, a
computer implemented method of integrating an employer computer
system and a staffing firm computer system is provided. The method
comprises: receiving, via a network interface, a first indication
of a candidate being hired for a job requisition from the employer
computer system, in response to receiving the first indication of
the candidate being hired from the employer computer system,
transmitting, via the network interface, a second indication of the
candidate being hired to the staffing firm computer system,
receiving, via the network interface, a third indication that a
placement of the candidate to the job requisition is complete from
the employer computer system, and in response to receiving the
indication that the placement of the candidate is complete:
storing, in a database, a record of a worker associated with the
hired candidate, and storing, in the database, a record of an
approver associated with a user of the employer computer
system.
[0037] According to another embodiment, the method further
comprises receiving, via the network interface, an indication of a
submitted timesheet from a client system used by the hired
candidate. According to one embodiment, the method further
comprises transmitting, via the network interface, an indication of
the submitted timesheet to the user of the employer computer
system. According to one embodiment, the method further comprises
receiving, via the network interface, an indication of approval of
the timesheet by the user of the employer computer system from the
employer computer system, and storing the approved timesheet in the
database. According to one embodiment, the method further comprises
receiving, via the network interface, an indication of a rejection
of the timesheet by the user of the employer computer system from
the employer computer system, and transmitting, via the network
interface, an indication of the rejected timesheet to the client
system used by the hired candidate.
[0038] According to another embodiment, the method further
comprises generating an invoice based on the submitted timesheet.
According to one embodiment, the method further comprises
transmitting, via the network interface, the invoice to an
automatic payment system used by the employer computer system.
According to one embodiment, the method further comprises
receiving, via the network interface, a payment from the employer
computer system in response to transmitting the invoice, and
transmitting, via the network interface, funds to an account of a
staffing firm associated with the staffing firm computer
system.
[0039] According to another aspect of the present invention, a
non-volatile computer-readable medium encoded with instructions for
execution on a computer system is provided. The instructions, when
executed, cause the computer system to perform a method comprising:
receiving, via a network interface, a first indication of a
candidate being hired for a job requisition from the employer
computer system, in response to receiving the first indication of
the candidate being hired from the employer computer system,
transmitting, via the network interface, a second indication of the
candidate being hired to the staffing firm computer system,
receiving, via the network interface, a third indication that a
placement of the candidate to the job requisition is complete from
the employer computer system, and in response to receiving the
indication that the placement of the candidate is complete:
storing, in a database, a record of a worker associated with the
hired candidate, and storing, in the database, a record of an
approver associated with a user of the employer computer
system.
[0040] According to another embodiment, the method further
comprises receiving, via the network interface, an indication of a
submitted timesheet from a client system used by the hired
candidate.
[0041] Still other aspects, examples, and advantages of these
exemplary aspects and examples, are discussed in detail below.
Moreover, it is to be understood that both the foregoing
information and the following detailed description are merely
illustrative examples of various aspects and examples, and are
intended to provide an overview or framework for understanding the
nature and character of the claimed aspects and examples. Any
example disclosed herein may be combined with any other example in
any manner consistent with at least one of the objects, aims, and
needs disclosed herein, and references to "an example," "some
examples," "an alternate example," "various examples," "one
example," "at least one example," " this and other examples" or the
like are not necessarily mutually exclusive and are intended to
indicate that a particular feature, structure, or characteristic
described in connection with the example may be included in at
least one example. The appearances of such terms herein are not
necessarily all referring to the same example.
BRIEF DESCRIPTION OF DRAWINGS
[0042] Various aspects of at least one example are discussed below
with reference to the accompanying figures, which are not intended
to be drawn to scale. The figures are included to provide an
illustration and a further understanding of the various aspects and
examples, and are incorporated in and constitute a part of this
specification, but are not intended as a definition of the limits
of a particular example. The drawings, together with the remainder
of the specification, serve to explain principles and operations of
the described and claimed aspects and examples. In the figures,
each identical or nearly identical component that is illustrated in
various figures is represented by a like numeral. For purposes of
clarity, not every component may be labeled in every figure. In the
figures:
[0043] FIG. 1 shows a block diagram of a distributed computer
system capable of implementing various aspects of the present
invention;
[0044] FIG. 2 shows an example process for processing temporary
workers according to one embodiment of the present invention;
[0045] FIGS. 3A-B show a more detailed set of processes for
managing temporary workers according to one embodiment of the
present invention;
[0046] FIGS. 4A-B show an example process for creating a temporary
job in a distributed computer system according to various
embodiments of the present invention;
[0047] FIGS. 5A-C show an example process for placing a temporary
worker in a distributed computer system according to one embodiment
of the present invention;
[0048] FIGS. 6A-B show another example detailed process for
performing a placement handshake among multiple systems according
various aspects of the present invention;
[0049] FIGS. 7A-B show an example process for handling and
approving timesheets among multiple systems according to various
aspects of the present invention;
[0050] FIGS. 8A-B show an example process for performing invoicing
and payments among multiple systems in association with temporary
workers according to one embodiment of the present invention;
[0051] FIG. 9 shows an example user interface screen for submitting
a job requisition according to various embodiments of the present
invention;
[0052] FIG. 10 shows an example user interface screen for
submitting a candidate according to various embodiments of the
present invention;
[0053] FIGS. 11A-C show example user interface screens for
reviewing candidate submissions for a job according to various
embodiments of the present invention;
[0054] FIGS. 12A-B show example user interface screens for
selecting preferred vendors according to various embodiments of the
present invention;
[0055] FIGS. 13A-B show example user interface screens for placing
a candidate to a job according to various embodiments of the
present invention;
[0056] FIGS. 14A-B show example user interface screens for
submitting and approving timesheets according to various
embodiments of the present invention; and
[0057] FIG. 15 is a schematic diagram of an exemplary computer
system that may be specially configured to perform processes and
functions disclosed herein.
DETAILED DESCRIPTION
[0058] Described herein are embodiments of a system that integrates
different computer systems involved in placement of candidates. For
example, the system may centralize storage of worker data records
such that computer systems of different entities (e.g., hiring
company, recruiter) may access the worker data records. A worker
record may, for example, include identification information for the
worker, a unique identifier for the worker in the central database,
qualifications of the worker, salary requirements of the worker,
location preference for the worker, and other information about the
worker.
[0059] According to some embodiments, the system may include an
interface to multiple different computer systems. For example, the
system may include an interface to a client based computer system
via which the system may receive job requisition records for jobs
that a company needs workers for. The system may further include an
interface with computer systems used by staffing entities (e.g.,
recruiters, staffing companies). In response to receiving a job
requisition record from a client computer system, the system may
submit an indication of the job requisition record to a staffing
computer system. The system may, for example, transmit the
indication of the job requisition record via the interface to the
staffing computer system. In some embodiments the system may
further receive candidate records from a staffing computer systems
(e.g., via the interface with the staffing computer system). The
system may provide access to these candidate records to a client
computer system(s) (e.g., of one or more hiring companies).
According to some embodiments, the system may further identify
specific candidate records to display to a user of the client
computer system(s).
[0060] According to some embodiments, the system may further
determine a placement of a selected candidate. For example, the
system may receive, via the interface to the client based computer
system, an indication of a candidate being placed to a job
requisition. The system may store the placement of the candidate to
the job requisition in a central database of the system. In some
embodiments, in response to receiving the indication, the system
may further perform an onboarding function(s) associated with the
placement of the candidate. The onboarding functions may involve
interaction between a computer system of a candidate, a computer
system of a company member (e.g., a manager), a computer system of
a hiring company, and/or a computer system of a staffing company.
According to some embodiments, the system may interact with a
plurality of computer systems to perform or facilitate performance
of onboarding functions. These onboarding functions may include,
for example, completing a placement handshake between a hiring
company, a staffing entity, and/or a hired worker.
[0061] The inventors have recognized and appreciated various
technical challenges to managing candidate, worker, and job
requisition records across multiple different computer systems that
employ disparate software applications. Different parties involved
in placing a candidate to an open job may each use a separate
computer system(s) as well separate software application(s). Given
the inability of these systems to interact with each other, the
computer systems and software applications are unable to carry out
several functions associated with candidate placement (e.g.,
completing a placement handshake).
[0062] The inventors have recognized and appreciated that
conventional systems (e.g., different computer systems and
different software applications) used by multiple entities involved
in the hiring process are unable to interact with each other. In
one instance, (1) a company looking to fill an open job may use a
hiring computer system employing a first software application to
manage candidate records and job requisition records, (2) a
recruiter may use a staffing computer system employing a second
software application to manage candidates and job requisition
records, and (3) a prospective worker may use a client device to
search for and apply to open jobs. Managing placement of a worker
to an open job may require coordination between the company,
recruiter, and prospective worker systems to store, track, and
update a job requisition record(s) and/or candidate record(s)
throughout a hiring process. Further, in order to place a worker to
a job requisition, it may require the systems to coordinate in
order to update a candidate placement process across all the
systems.
[0063] The inventors have recognized and appreciated a need for a
system that enables the various computer systems and/or
applications to interact with each other. Enabling such interaction
may allow performance of functions that were not previously
performable by conventional computer systems and applications
employed by entities involved in candidate placement (e.g.,
company, recruiter, and/or prospective worker). Such a system may
allow a recruiter, using a first computer system and software
application, to submit a candidate to a job requisition in a second
computer system and software application used by a hiring company.
The system may further provide real time candidate tracking and
record updating that cannot be performed by the first and second
computer systems. Further, such a system may complete placement of
a candidate to a job by allowing the different systems to complete
a handshake process.
[0064] The inventors have recognized and appreciated that a system
that allows interaction between disparate computer systems and
software applications may further enable performance of functions
after a candidate is placed. For example, a hiring company, a
worker, and recruiter who places the worker at the hiring company
may need to interact for various post hiring activities. Such
activities may include performing a handshake between multiple
computer systems used by parties to complete a candidate placement
process. By integrating the disparate computer systems and software
applications used by the multiple entities, the system may enable
performance of the post placement functions. Further, post
placement activities may also include collecting data related to a
worker's performance from an employer and/or worker computer system
and using the data to automatically distribute funds to a staffing
firm (e.g., a recruiter).
[0065] The inventors have also recognized that the disparate
computer systems and software applications used by multiple
different entities are unable to access, track, and update
information in each of the computer systems. For example, each of a
hiring company may manage its record of candidates in the hiring
company's computer system while a recruiter may concurrently manage
a separate record of the candidate in the recruiter's computer
system. While conventional systems may each separately store,
track, and update data records associated with candidate placement
and jobs, the inventors have appreciated a need for a system that
can integrate the computer systems to allow for keeping a central
data set, and for more quickly updating and tracking data records
in the other computer systems. This provides a computer system that
is more accurate in maintaining candidate records, job records, and
other information. Further, the system may reduce the amount of
storage and computation required by each of the staffing and
employer computer systems to maintain and update records.
[0066] Described below are various embodiments of an exchange
system that integrates multiple disparate computer systems. The
exchange system may enable performance of, and perform various
functions associated with placement of candidates and completion of
candidate placement. The exchange system may further provide
storage capabilities that provide the disparate computer systems
access to information that would otherwise be unavailable to the
computer systems. It should be appreciated that while specific
embodiments are described, those embodiments are illustrative to
aid in understanding the principles described herein, and that
other embodiments are possible. Embodiments are not limited to
operating in accordance with any of the example set out below.
[0067] According to one implementation, a system is provided that
is capable of storing and presenting within a management interface
complex relationships between entities. For instance, it is
appreciated that there may be complex relationships between assets
such as network communication equipment, servers, desktops,
applications and other assets. Further, it is appreciated that it
may be helpful to record and visualize various functional aspects
that these particular assets provide.
[0068] According to some embodiments, the system may comprise a
distributed computer system that includes a network interface,
database, and an exchange component. The exchange component may be
coupled to one or more employer computer systems and one or more
staffing computer systems via the network interface. The exchange
component may store one or more job requisition records associated
with one or more respective job requisition. A job requisition may
comprise information specifying an open job position and/or a need
for a worker to fill a position. The exchange component may
synchronize the stored requisition records with a dataset of job
requisitions stored by an employer computer system. For example,
the employer system may use an application (e.g., an ATS) to store
job requisitions for job positions that the employer needs to fill.
The exchange component may sync the stored job requisition records
with the job requisitions stored by the application of the employer
computer system.
[0069] According to some embodiments, to synchronize the job
requisition records, the exchange component may identify a new job
requisition stored by the employer computer system for which the
exchange component has not previously stored a job requisition
record. In this case exchange component may generate a new job
requisition record in the database associated with the new job
requisition. The exchange component may store information about the
new job requisition in the newly generated record (e.g., skill
requirement information, start date, location, salary, term of
employment). The exchange component may further provide access to
the new job requisition record to a staffing computer system. For
example, the exchange component may transmit an indication of the
staffing computer system of the new job requisition record.
[0070] In some embodiments, the exchange component may maintain a
pool of temporary worker records in a database of the system. The
exchange component may maintain, in the pool, a temporary worker
record for each of multiple temporary workers who are available as
candidates for a job requisition (e.g., the new job requisition).
The exchange component may match a temporary worker to the new job
requisition. When the exchange component matches the temporary
worker, the exchange component may transmit information about the
worker from a temporary worker record associated with the worker to
the employer computer system (e.g., an ATS used by the employer
computer system).
[0071] In some embodiments, the exchange component may generate a
user interface that allows a user of the staffing computer system
to view the new job requisition record and submit candidates for
the new job requisition. The exchange component may receive, via
the user interface, a submission of the temporary worker for the
new job requisition. In some embodiments, the exchange component
may match the temporary worker to the new job requisition when the
submission of the temporary worker is received from the staffing
computer system.
[0072] In some embodiments, the exchange component may further
determine one or more staffing firms to recommend the new job
requisition to. For example, the exchange component may determine
to recommend the new job requisition to a staffing firm associated
with a staffing computer system that the exchange component is
coupled to. The exchange component may transmit an indication of
the new job requisition to the staffing computer system when it
determines the one or more staffing firms to which the new job
requisition is to be recommended. In some embodiments, the exchange
component may generate a user interface via which a user may select
the one or more staffing firms. The exchange component receives a
user selection of the selected staffing firms via the user
interface. The exchange component may determine to recommend the
new job requisition to the one or more staffing firms based on the
received user selection.
[0073] In some embodiments, the exchange component may further
interact with the employer computer system to receive status
updates about a submitted candidate. In one embodiment, the
exchange component may receive an indication that the temporary
worker submitted for the new job requisition has been hired from
the employer computer system (e.g., from an ATS). In some
embodiments, when the exchange component receives such an
indication, the exchange component may perform a placement process
(e.g., a handshake) between the employer computer system and the
staffing computer system.
[0074] According to some embodiments, the system may additionally
or alternatively allow interaction between disparate computer
systems to perform functions after placement of a candidate (e.g.,
after the hired candidate begins work at an employer). In some
embodiments, the exchange component may receive an indication from
the employer computer system that a candidate has been hired (e.g.,
from an ATS used by the employer computer system). In response, the
exchange component may transmit an indication of the candidate
hiring to the staffing computer system. The exchange component may
further receive an indication from the employer computer system
indicating that the candidate placement is complete. When the
exchange component receives an indication that the candidate
placement is complete, the exchange component may store, in the
database, (1) a record of a worker associated with the hired
candidate, and (2) a record of an approver associated with a user
of the employer computer system. The approver may, for example, be
a supervisor, hiring manager, or other user associated with the
employer.
[0075] In some embodiments, the exchange component may further be
coupled via the network interface to a client computer system used
by the hired candidate. The exchange component may receive an
indication of a timesheet submission of the hired candidate from
the client computer system. The exchange component may, for
example, receive timesheet data and store the timesheet data in a
database of the system. In some embodiments, the exchange component
may generate a user interface through which the hired candidate can
enter a record of time worked, date(s) worked, tasks worked and
other information regarding work done by the hired candidate. The
user interface may, for example, comprise a timesheet in which the
user may enter the information.
[0076] In some embodiments, when the exchange component receives
the indication of the timesheet submission from the hired candidate
(e.g., a user of the client computer system), the exchange
component may transmit an indication of the submitted timesheet to
the user of the employer computer system (e.g., a manager). The
exchange component may allow the user of the employment computer
system to review the timesheet. For example, the exchange component
may generate a user interface via which the user can approve the
timesheet, reject the timesheet, and/or request editing of the
timesheet by the hired candidate. In one case, the exchange
component may receive an indication of approval of the timesheet by
the manager (e.g., via the user interface). In this case the
exchange component may store the approved timesheet. In another
case, the exchange component may also receive an indication of a
rejection of the timesheet by the manager. In this case, the
exchange component may transmit an indication of the rejected
timesheet to the client computer system used by the hired
candidate. The hired candidate may then edit and/or resubmit the
timesheet.
[0077] In some embodiments, the exchange component may further
generate an invoice based on a submitted timesheet. For example,
after a submitted timesheet is approved and stored in the database,
the exchange component may use information from the timesheet to
generate an invoice. In some embodiments, the exchange component
may further submit the generated invoice to an automated repayment
(AR) system used by the employer computer system. The exchange
component may, in response to submitting the invoice to the AR
system, receive payment from the employer computer system. The
exchange component may then transmit funds to one or more other
entities involved in the hiring of the candidate such as a staffing
firm, and/or a manager of the exchange system. In some embodiments,
the exchange component may automatically transmit funds to a bank
account of an entity (e.g., a staffing firm).
[0078] FIG. 1 shows a block diagram of a distributed computer
system 100 capable of implementing various aspects of the present
invention. In particular, distributed system 100 includes an
exchange system 101 that integrates multiple disparate computer
systems and facilitates management functions with respect to the
placement, tracking and management of workers (e.g., temporary
workers) among a number of different clients (e.g., client A
(110A), client B (110B), and client C (110C)). Generally, users may
access a management program through a client application that is
executed on one or more computer systems (e.g., CS 111-118, CS
130-139, etc.). End systems may be, for example, a desktop computer
system, mobile device, tablet or any other computer system having a
display.
[0079] Although systems and techniques of embodiments are discussed
herein with reference to temporary workers, the systems and
techniques are not limited in this respect. For example, the
systems and techniques can be adapted for use with other types of
worker, as embodiments are not limited in this respect. For
example, the systems and techniques can be adapted for placement of
permanent hired workers.
[0080] Various aspects of the present invention relate to the
distributed computer system and interfaces through which the user
can interact with the system to facilitate the placement, tracking
and payment to temporary workers. To this end, the client
application may include one or more interfaces through which users
access the distributed system to perform various functions. The
distributed system includes components located among a number of
systems to facilitate various management functions.
[0081] According to some embodiments, the exchange system 101 may
provide functionality to users based on a type of the user. As the
exchange system 101 integrates multiple different parties involved
in a candidate placement process (e.g., staffing firm, hiring firm,
worker), there are multiple different types of users that access
functionality provided by the exchange system 101. Some different
types of users may include, for example, a hiring manager, a
prospective temporary worker, a recruiter, a hired worker, and
other types of users. The exchange system 101 may provide different
users with different capabilities (e.g., functions and user
interfaces).
[0082] For example, there may be a number of different types of
interfaces that users associated with different roles can use to
manage temporary staffing functions. For instance, one or more
interfaces may be operable by a client, such as a hiring manager
121 associated with particular company. According to some
embodiments, the exchange system 101 may provide one or more
interfaces associated with managing client functionality associated
with the placement, management and pay of temporary workers to the
hiring manager 121. To this end, one or more users such as a
manager (e.g., manager 121) may operate a computer system interface
(e.g., computer system 118) to perform one or more functions, such
as placing a worker, approving timesheets, reviewing and
authorizing the payment of invoices, among other functions. In
another example, a worker may operate a computer system interface
(e.g., computer system 111) to perform functions such as creating
timesheets, editing timesheets, and/or submitting timesheets.
[0083] A timesheet may comprise any record of work performed by a
worker. For example, the timesheet may include an amount of time
worked by the worker, dates worked by the worker, an identification
of the worker, and/or any other information. A timesheet, as used
herein, may comprise a timecard, work record, clock card, work log,
time chart, or any other record of work. Embodiments are not
limited to a specific type or format of the record of work.
Embodiments described herein may be adapted for various types of
records used by different systems.
[0084] In some embodiments, the exchange system 101 may include one
or more elements such as a worker database 104. The worker database
104 may store data records associated prospective workers, hired
workers, and past workers. In some embodiments, the exchange system
101 may further organize worker records into pools of workers in
the database 104. For example, exchange system may store, in the
database 104, a plurality of temporary worker records (e.g., worker
record 103) associated with temporary worker pool 102. According to
some embodiments, the exchange system 101 enables multiple
different entities to create, store, and/or update worker records
in the database 104. The exchange system 101 may include interfaces
that allows disparate computer systems associated with different
entities to access the database. For example, temporary workers may
be defined within the database by one or more entities including,
but not limited to, recruiters, staffing firms, hiring firms, or
other entities associated with managing temporary workers.
Accordingly, the exchange system 101 may provide a centralized
location where worker records may be stored. Multiple staffing
firms can access the records via respective staffing platforms of
the staffing firms. Without such a system, each entity may
independently store worker records on separate systems without
providing other parties (e.g., hiring firms) access to many worker
records. Thus the exchange system 101 may reduce the amount of
storage required of the various staffing computer systems.
[0085] According to one embodiment, exchange system 101 includes a
plurality of components, each associated with performing various
functions associated with managing temporary workers. For instance,
exchange 101 may include user interface components 106, workflow
components 107, management tools 108, and reporting tools 109. As
discussed, user interface components 106 may generate and/or
include one or more user interfaces defined for various roles
associated with placing, managing, and compensating temporary
workers (e.g., for a manager role). Workflow components 107 may
include one or more defined processes that define communications
between multiple computer systems such as client systems, applicant
tracking systems (ATS), hiring platforms, or other systems.
Management tools 108 may include one or more tools used to
configure and control various processes and parameters associated
with exchange 101. Reporting tools 109 may include one or more
components used to generate invoices, view temporary worker pools,
view reports regarding recruiters and other roles, among other
reporting functions.
[0086] According to some embodiments, the exchange system 101 may
further integrate multiple different computer systems associated
with different parties involved in candidate placement. In some
embodiments, the exchange system 101 may be connected to a number
of different staffing platforms (e.g., staffing platform 124,
staffing platform 125, etc.), hiring platforms (e.g., hiring
platform 128, hiring platform 129, etc.), and other systems.
Staffing platforms may be operated by respective staffing firms
(e.g., staffing from 122, staffing firm 123), which in turn, may
authorize one or more computer systems (e.g., computer systems
130-135) to access records associated with workers (e.g., temporary
worker records) provided by exchange system 101. Similarly, hiring
firms and their users may also perform functions with exchange
system 101 using one or more computer systems (e.g., computer
systems 136-139).
[0087] In some embodiments, the exchange system 101 may match a
worker from the stored pool of workers 102 to a job record. In one
embodiment, a user of a staffing firm computer system (e.g.,
staffing platform 124) may submit a candidate to a job. The job
may, for example, have been submitted by a hiring firm using 126
using hiring platform 128. In some embodiments, the candidate
submitted to the job may correspond to a worker stored in worker
pool 102 in the worker database 104. When the staffing firm user
submits the candidate to the job, the exchange system 101 may
submit the stored worker to the job. In one embodiment, the
exchange system 101 may match a worker record in the pool 102 to a
stored job record. For example, the exchange system 101 may store a
mapping of the worker record to a job record in a database of the
exchange system 101. In this manner, the exchange system 101 may
allow staffing firm computer systems to utilize the worker database
104 to manage submission of candidates.
[0088] In some embodiments, the exchange system 101 may associate a
pool of worker records to a staffing firm. For example, the
exchange system 101 may associate the temporary worker pool 102
with the staffing firm 122. The exchange system 101 may then limit
access to the worker records stored in pool 102 to staffing firm
122. For example, the exchange system 101 may allow only staffing
firm platform 124 associated with staffing firm 122 to edit the
worker record, submit a worker in the pool 102 to a job, search for
the worker in the worker database 104, and perform other tasks
associated with workers in the worker pool 102. In this manner, the
exchange system 101 may store worker records for workers associated
with a plurality of different staffing firms (e.g., staffing firms
122-123) while still separating access of a staffing firm to those
workers whom are associated with the staffing firm (e.g., workers
previously submitted by the staffing firm).
[0089] The inventors have appreciated that maintaining a worker
database 104 and/or pools of worker records, the exchange system
101 may make a candidate placement process more efficient to
perform across the computer systems. For example, the exchange
system 101 may map a stored worker record to a job requisition
rather than requiring a submission of the candidate to a staffing
firm computer system, and then again to an employer computer
system. By, contrast, conventional systems may require multiple
submissions of a worker or candidate in multiple different computer
systems (e.g., staffing and employer computer systems), and storage
of the submitted worker in the multiple systems. Further, any one
of the disparate computer systems would be unable to match a stored
worker to a job requisition submitted by a separate system.
Accordingly, the exchange system 101, unlike convention systems,
integrates the multiple different computer systems and allows for
matching of workers and/or candidates to jobs by the exchange
system 101. The exchange system 101 may reduce an amount of storage
required across multiple different computer systems to store worker
records, and more efficiently match a worker to a job
requisition.
[0090] According to some embodiments, the exchange system 101 may
include an interface to one or more of the computer systems with
which it interacts. For example, the exchange system 101 may
include an interface with a staffing platform(s) (e.g., staffing
platform 124-125), a hiring platform (e.g., hiring platforms
128-129), and client system(s) (e.g., client systems 110A-C). In
one example, an interface with a respect computer system may
comprise an application program interface (API). The API may
provide an interface by which the exchange system 101 may interact
with the computer system. The API may include software code for
accessing data from the computer system and/or transmitting data to
the computer system. The software code may include various
functions that, when executed, gather data from the computer system
and/or transmit data to the computer system. The API may further
include software code, that when executed by the computer system,
may allow the computer system to interact with the exchange system
101. For example, an API for a staffing platform may include
functions that allow a recruiter using the staffing platform to
submit candidates to a database of candidates stored by the
exchange system 101. Similarly, an API for a hiring platform (e.g.,
an ATS) may include functions that allow the hiring platform to
access information stored by the exchange system 101 (e.g.,
candidate records). In another example, the exchange system 101 may
include an API to interact with a client computer system of a
company. The API may include software code that, when executed,
allows the exchange system 101 to retrieve and/or receive data from
the client computer system. Similarly, the API may include software
code, that when executed, allows the exchange system 101 to
transmit data to the client computer system.
[0091] Further, according to some embodiments, the exchange system
101 may provide capabilities that permit a worker (e.g., temporary
worker 120) to perform one or more actions associated with a
candidacy and placement of the worker. For instance, once placed, a
temporary worker 120 associated with client A (110A) may be
permitted to view a timesheet, edit timesheets, view pay
information, or other actions associated with a temporary
employment term of the worker.
[0092] FIG. 2 shows an example process 200 for processing
candidates and/or workers (e.g., temporary workers) according to
one embodiment of the present invention. Process 200 may, for
example, be executed by exchange system 101 described above with
reference to FIG. 1. According to various embodiments described
herein, the exchange may be referred to interchangeably as a scout
exchange, or simply scout.
[0093] Process 200 begins at block 201, in which an employer posts
a job requisition (e.g., of a contingent job) within an exchange
interface. According to some embodiments, the employer may access
an interface provided by the exchange system. The employer may, for
example, access an exchange interface through a client system
associated with employer (e.g., Client A 110A in FIG. 1) using a
computer system (e.g., computer system 112). In some embodiments,
the exchange system may provide an interface within an existing
software application system used by the employer computer system.
For example, the exchange interface may include a user interface in
an application tracking system used by the employer computer system
via which the employer can submit the contingent job. The exchange
system may, for example, generate the user interface and cause it
to be displayed. The employer may, for example, access the exchange
interface through a browser application on the employer's computer
system.
[0094] FIG. 9 illustrates an example user interface 900 that the
exchange may provide to an employer computer system to create a job
listing. In some embodiments, the exchange may generate the user
interface and present it in a display of the employer computer
system. In some embodiments, the exchange may transmit code (e.g.,
HTML, Javascript, CSS) to the employer computer system that, when
executed, causes the user interface to be displayed in a display of
the employer computer system. In some embodiments, the employer may
enter information such as a requisition type (e.g., contingent,
permanent, contract), a job title, a job location, a bill rate
range, a pay rate range, a target start date, a target end date, a
duration of employment, a number of positions that are to be
filled, an exemption status, and/or identification (e.g., a name)
of a hiring manager. In some embodiments, the exchange may further
provide the employer with an ability to indicate whether the
exchange should allow for staffers and/or prospective workers to
bid for different billing rates or ranges than specified in the
requisition. The exchange interface may also allow the employer to
enter other information such as an urgency for the job, minimum
education requirements, expected number of hours per week, who the
position reports to, required skills for the job, and/or preferred
skills for the job. The exchange may generate an interface that
allows an employer to enter the information via selections (e.g.,
drop down selection(s), check box, radio buttons), by entering
text, or by any other suitable way of receiving information via the
interface.
[0095] Although examples of information are described herein,
embodiments are not limited to any particular type or format of
information that can be entered into the exchange interface. The
exchange interface may be adapted to remove and/or add different
information, fields, options, and other elements for receiving job
requisition information from an employer computer system.
[0096] Next, process 200 proceeds to block 202, where the exchange
analyzes the requisition for a contingent job that may be created
within the system. According to some embodiments, the exchange may
receive the information entered by the employer in the exchange
interface, and generate a storage record in a database of the
exchange. In some embodiments, the exchange may create a storage
unit for the job requisition. In one example, the exchange may
create an entry in the database for the job requisition. In another
example, the exchange may create one or more documents in a
non-relational database of the exchange system. The exchange may
store details about the job in the job requisition record. The
record may, for example, include one or more fields that the
exchange may populate using the requisition submitted by the
employer computer system. In some embodiments, the exchange may map
fields of the exchange interface to fields in a requisition record
stored in a database, and store information in a mapped field.
[0097] In some embodiments, the exchange may further analyze the
job requisition for validity. For example, the exchange may
determine whether information entered into fields of the exchange
interface is valid (e.g., valid characters). In another example,
the exchange may determine whether dates entered for the job
requisition are valid (e.g., not in the past). In some embodiments,
the exchange may further assign the job requisition a unique
identifier. The exchange may store the unique identifier as part of
the job requisition record.
[0098] Next, process 200 proceeds to block 203, where the exchange
system submits the defined requisition to one or more staffing
agencies. This may be performed, for example, through a
programmatic connection between the exchange and the staffing
agency computer system platforms. In some embodiments, the exchange
system may include an API via which the exchange system can
interact with a staffing platform (e.g., a staffing computer system
and/or software). According to some embodiments, the exchange
system transmits a job requisition record to the staffing platform
via the API. For example, the exchange system may transmit data
related to details of the job requisition. In some embodiments, the
exchange system may retrieve records of the job requisition from a
stored record of the job requisition. In some embodiments, the
exchange system may additionally or alternatively retrieve
information about the job requisition inputted by an employer via
an exchange interface (e.g., a user interface). The exchange system
may execute software code that may allow the exchange system to
transmit the job requisition data. In one example, the exchange
system may execute a software code to access information about a
job requisition. The code, when executed, may access information
stored about the job requisition (e.g., in a job requisition
record) and transmit the information to a storage (e.g., a
database) of the staffing platform.
[0099] In some embodiments, the exchange system may allow a
staffing entity (e.g., a staffing firm, recruiter) to submit
candidates for the job requisition. For example, the staffing
agencies may submit one or more candidates for a temporary job
requisition. In one embodiment, the exchange system provides an
interface(s) through which a user(s) may review requisitions and
submit candidates. According to some embodiments, the exchange
system may allow a staffing platform to access job requisitions
stored in a database of the exchange system. The exchange system
may, for example, generate a user interface in which a recruiter
can browse through job requisitions stored in the exchange system.
The recruiter may select a particular job requisition and, in
response, the exchange system may generate a user interface
displaying more details about the selected job requisition. The
exchange system may, for example, access data from the job
requisition record and present it in the user interface.
[0100] FIG. 10 illustrates an example user interface screen 1000
via which a staffing entity (e.g., a recruiter) may submit a
candidate for a particular job requisition. The exchange system
may, for example, generate and present the user interface on a
display of a computer system of the recruiter (e.g., a recruiter
accessing the exchange system via a staffing platform). To submit a
candidate, the recruiter may enter information into various fields
of the user interface, attach documents, make selections, or input
information about the candidate in any other suitable way. The
exchange system may receive the information (e.g., in response to a
user submitting the candidate). The exchange system may then store
a record for the candidate in a database. In some embodiments, the
exchange system may further map the submitted candidate to a stored
record of the job requisition in a database of the exchange system.
In one example, the exchange system may store identification(s) of
candidates submitted for a job requisition in the job requisition
record. For example, the exchange system may store a mapping of a
unique identifier of each candidate for the job requisition in a
database of the exchange system. In another example, the exchange
system may store an identification of jobs that a candidate has
been submitted to in a candidate record stored in the exchange
system database.
[0101] According to one embodiment, each staffing agency is
permitted to define and save one or more candidates within the
exchange system. Such candidates may be predefined within another
system, such as an applicant tracking system or ATS. For example, a
staffing platform may use a specific ATS software system (e.g.,
Brassring) which users may use to create and define a candidate.
The ATS may store information about a candidate such as identifying
information (e.g., name, age), contact information (e.g., email,
phone), a resume(s), cover letter(s), and other information about
the candidate. In some embodiments, the exchange system may
retrieve candidates from an ATS used by a staffing platform. As
described above with respect to FIG. 1, the exchange system may
include an API via which it may access information from a
particular ATS. The exchange system may, for example, retrieve data
about specific candidates. In another example, a staffing agency
may submit candidates from an ATS used by the staffing agency to
the exchange system (e.g., via the API). The staffing agency may
transmit data about the candidate via the API. The exchange system
may receive the data and create a candidate record for the
candidate in a database of the exchange system.
[0102] In some embodiments, the exchange system may match a worker
stored in a worker pool (e.g., worker pool 102) in a database (e.g.
worker database 104) with a job requisition. The exchange system
may, for example, match a worker record stored in the database with
the job requisition. In some embodiments, the exchange system may
match the worker to the job requisition in response to a submission
of the worker as a candidate to the job requisition. In another
embodiment, the exchange system may automatically match a stored
worker record to the job requisition. The exchange system may match
the stored worker record based on a past history of the worker
working for a respective employer, skills of the worker relative to
the job requisition, and/or other factors. The exchange system may
maintain a worker record such that staffing firm users may access
the worker record and submit the worker to a job requisition.
According to some embodiments, the exchange system's worker
database may eliminate a need for individual staffing computer
systems to store worker records.
[0103] Next, process 200 proceeds to 204, where the exchange system
allows a user to preview and process a particular candidate. The
user may, for example, be a hiring manager or human resources
employee of an employer who submitted a job requisition that the
candidate has been submitted for. The exchange system may provide a
user interface via which the user may access information about the
candidate. In some embodiments, the user may access the exchange
interface on a computer system used by the user. The user may, for
example, access the exchange interface through a website using a
browser application. In another embodiment, the user may access the
candidate information from the exchange system using an ATS
software application used by the employer computer system. The
exchange system may, for example, transmit information to the ATS
about the submitted candidate (e.g., via an API). In another
example, the exchange system may allow the ATS to retrieve
information from a database of the exchange system (e.g., via an
API).
[0104] FIGS. 11A-C illustrate example user interface screens that
allow an employer to review candidates submitted for one or more
job requisitions. For example, FIG. 11A illustrates a user
interface screen 1100 that displays a list of job requisitions
posted by the employer that the employer can browse. The list may,
for example, display information about each of the job requisitions
such as pending and/or expiring candidates, location of the job,
title of the job, expiration time and other information.
Embodiments are not limited to any specific type of information
that may be displayed. The exchange system may populate information
on the user interface from a job requisition record stored in the
database of the exchange system. A user may select a specific job
requisition to view candidates submitted for the selected job
requisition. FIG. 11B illustrates an example user interface screen
1110 showing candidates that have been submitted for a given job
requisition. The exchange system may access submission records from
a database of the exchange system to populate information in the
user interface screen about candidates submitted for the job
requisition.
[0105] FIG. 11C illustrates an example user interface screen 1120
that a user may use to accept a candidate (e.g., for hiring). The
user may, for example, access the screen by selecting a specific
candidate from the user interface screen shown in FIG. 11B. The
employer may review additional information about the submitted
candidate. The exchange system may provide options for the
submitted candidate. For example, the exchange system may provide
an option for a user to indicate that the employer is not
interested. The exchange system may additionally or alternatively
provide an option for the user to indicate that the employer would
like to accept the candidate. As shown in user interface screen
1120 and 1122, the employer may select to accept the candidate. The
exchange system may require the employer to confirm acceptance in
user interface screen 1122. The exchange system may further
determine whether the candidate has already been submitted for the
job (e.g., by another recruiter and accepted by the manager) as
described in further detail below. In this case, the exchange
system may, for example, generate a user interface screen 1124
indicating to the employer that the candidate already exists in the
system. The employer may be allowed to still accept the candidate
or to cancel as shown in interface screen 1124.
[0106] In some embodiments, when a user indicates acceptance of a
candidate for a job requisition, the exchange system may export the
candidate to a computer system (e.g., an employer computer system).
In one example, the employer computer system may use an ATS (e.g.,
Brassring). In response to a user accepting a candidate, the
exchange system may transmit a record of the candidate to the ATS
used by the employer computer system. The exchange system may, for
example, transmit the candidate via an API that provides an
interface to the employer ATS. In some embodiments, the candidate
may then be stored in the employer computer system as a candidate
for the job requisition.
[0107] In some embodiments, the exchange system may determine
whether a submitted candidate already exists in a computer system
(e.g., an employer computer system). The exchange system may access
data records of the candidate to determine whether the candidate
has already been submitted to the respective computer system. For
example, the exchange system may identify a stored record of the
candidate being accepted for the job requisition in a job
requisition and/or candidate record. In some embodiments, the
exchange system may identify each candidate with a unique
identification (e.g., a unique alphanumeric identifier). The
exchange system may determine, for example, if the candidate has
been submitted by determining if a candidate with the identifier is
stored in the employer computer system (e.g., in the ATS) and/or is
associated with the job requisition. In another example, the
exchange system may determine whether the identifier has been
accepted for the job requisition in a record stored in the exchange
system database.
[0108] According to some embodiments, when the exchange system
identifies that the candidate does exist in the computer system,
the exchange system may generate an alert indicating to the user
that the candidate is already stored in the computer system. For
example, as shown in FIG. 11C, the system may generate an alert
message indicating to a user that the candidate already exists in
an ATS of the employer computer system. In some embodiments, the
exchange system may provide the user with an option to continue
accepting the candidate and creating a new application. The
exchange system may further provide an option to cancel the
acceptance. In another embodiment, the exchange system may allow
the user to associate an existing record of the candidate with the
job requisition.
[0109] After a candidate is submitted to a job, process 200
proceeds to block 205, where the system permits one or more users
to track the candidate through the hiring process until that
candidate is placed. The exchange system may update a record
associated with the candidate and/or the job requisition record
based on updates received from an employer computer system and/or a
staffing platform. For example, a hiring manager or a human
resources representative may update a status of the candidate in
various stages of a hiring process (e.g., phone interview, first in
person interview, second in person interview, offer, hired). The
exchange system may automatically update a record of the candidate
in a database of the exchange system. According to some
embodiments, the exchange system may further update a status of the
candidate in other computer systems. For example, in response to an
update in an employer computer system (e.g., an ATS used by the
employer), the exchange system may automatically update the
candidate status in a staffing platform (e.g., an ATS used by a
staffing computer system). In this manner, the exchange system may
synchronize candidate status records across all entities concerned
with placement of a candidate.
[0110] After placement of a candidate to a job requisition, process
200 proceeds to block 206 where the system continues tracking the
candidate after the placement. The system permits, according to
various embodiments, post hiring tracking at block 206. The
inventors have appreciated that in conventional systems, there
generally is no visibility of an applicant past the placement of
that candidate. For example, after placement of a candidate is
complete, any functions associated with post placement activities
(e.g., invoicing, distribution of payments) cannot be performed by
conventional systems.
[0111] In some embodiments, after placement of a candidate, the
exchange system may track a status of the placed candidate, who may
now be referred to as a worker. In some embodiments, the worker may
be a temporary worker hired for a time limited job (e.g., a
contract). The exchange system may, for example, track whether the
worker has started working, and/or an onboarding status of the
worker. In some embodiments, the exchange system may perform a
handshake process between a staffing platform and the employer
computer system to complete placement of a candidate. Example
processes that the exchange system may perform to complete such a
handshake are described below with reference to FIGS. 6A-B.
[0112] According to various embodiments, the exchange system may
provide timesheet management functionality after placement of the
candidate in block 206. In such embodiments, after placement of a
candidate, process 200 proceeds to block 207, where the exchange
system provides various timesheet functionalities such as those by
an employer, staffing agencies, the employee, and the exchange
system (e.g., scout). In some embodiments, the exchange system may
interact with multiple entities in order to track timesheet data.
The exchange system may interact with an employer computer system,
a staffing platform, and a computer system used by a worker (e.g.,
an employee). In one example, the exchange system may receive time
sheets submitted by a worker via a client computer system. The
exchange system may store the timesheet and/or transmit it to an
employer computer system where a user (e.g., a manager) may approve
the timesheet. The exchange system may further store an approval of
the timesheet. In some embodiments, the exchange system may
transmit a timesheet back to the worker computer system or request
the worker to modify the timesheet if it is rejected by the
manager.
[0113] According to some embodiments, the exchange system may
further generate an invoice using stored timesheet data. The
inventors have appreciated that conventional systems are unable to
automatically generate invoices for candidate placement as they
lack an ability to access data (e.g., timesheet data) which is
required to generate an invoice for paying parties involved in a
candidate placement. The exchange system, which includes interfaces
with multiple computer systems of entities involved in a candidate
placement process, may interact with the different systems to
provide this functionality.
[0114] Next, process 200 proceeds to block 208, where, according to
some embodiments, the exchange system may perform additional
functions, such as supplier onboarding and the creation and
management of invoices, and coordination between systems, improving
the efficiencies between all of these entities. According to some
embodiments, the exchange system may generate an invoice using by
interacting with multiple computer systems, accessing data from
multiple systems, and/or accessing data stored in a database of the
exchange system. An example process that the exchange system may
perform to interact with multiple systems to generate an invoice is
described below in reference to FIGS. 3A-B.
[0115] Next, process 200 proceeds to act 209, where the exchange
system may perform other functions. In some embodiments, the
exchange system reporting and analytics functions. In some
embodiments, the exchange system may access information (e.g.,
data) from computer systems of entities involved in a candidate
placement to generate reporting and analytics regarding the
placement process. In one example, the exchange system may
calculate and display statistics about a hiring process such as
statistics regarding qualifications of the candidates and/or hired
workers. The exchange system may further generate a report about
the placement process. The report may, for example, capture
identities of people involved in a placement (e.g., a recruiter,
hiring manager, employer, staffing agency). The exchange system may
generate the reports and present them to a user(s) in a user
interface.
[0116] FIGS. 3A-B is a flow diagram illustrating an interaction 300
of an exchange system 302 (e.g., scout) with (1) an employer
computer system 301, (2) a staffing computer system 303, and (3) a
worker computer system 304. In one example, the exchange system may
perform interactions shown in FIGS. 3A-B for managing temporary
workers according to one embodiment of the present invention.
[0117] Although example embodiments are discussed herein with
reference to temporary workers, embodiments are not limited to
managing any particular type of worker. The processes described
herein may be performed and/or adapted for other types of worker
(e.g., part time, permanent, full-time) as embodiments are not
limited in this respect. Further, the exchange system may be
configured to perform other functions and interactions not shown or
described herein. The exchange system may also interact with other
systems not shown or described herein.
[0118] The candidates may be received and stored by the exchange
system, and exchange system may automatically provide an employer
computer system a short list of the candidates that were received.
Such information may be received into an applicant tracking system,
and that candidate may be hired for the job posting created by a
particular employer. Responsive to the hiring, the candidate status
may be updated within the exchange system and a record may be
associated with that hired candidate that links the hired candidate
with the particular staffing firm. Thereafter, operations
associated with the candidate that is placed may be linked to that
particular staffing firm. In one example, the staffing firm may be
paid based on work performed by that particular candidate, and
therefore it may be useful to track information associated with the
candidate after he/she has been placed.
[0119] According to one embodiment, as shown at block 305, an
employer may create a temporary job requisition and a corresponding
job entry may be posted to the exchange system. In some
embodiments, the employer may create a job requisition in the
employer computer system 301. Next, at block 306, the employer
computer system 301 may transmit the job requisition to the
exchange system 302. The employer computer system 301 may, for
example, transmit the job requisition to the exchange system as
described above with reference to FIG. 1 and FIG. 2 (e.g., via an
API of the exchange system 302). Responsive to the posting, at
block 308, the exchange system 302 may analyze the job. The
exchange system 302 may, for example, analyze the job as described
above with reference to FIG. 2. For example, the exchange system
302 may identify one or more attributes of the job (e.g., a title,
start date, end date, salary, billing rate, required skills) and
further store a record for the job in a database of the exchange
system 302. The exchange system 302 may further analyze the job for
validity (e.g., to validate dates). In some embodiments, as shown
at block 310, the exchange system 302 may recommend jobs to one or
more staffing firms. In some embodiments, the exchange system 302
may transmit data related to a job requisition record to a staffing
firm 303. In some embodiments the exchange system 302 may transmit
jobs to a staffing computer system (e.g., a staffing platform). The
exchange system 302 may, for example, transmit job information as
described above in reference to FIG. 2. For example, the exchange
system 302 may transmit a job requisition record via an API of the
exchange system 302 with the staffing computer system 303. At block
312, a user of the staffing computer system 303 (e.g., a recruiter)
may access the jobs (e.g., in a user interface view). In some
embodiments, the exchange system 302 may regularly submit jobs to
the staffing computer system. A staffing firm employee may, through
a computer interface, search for jobs to place candidates (or
receive an indication of new jobs associated with that particular
staffing agency). At block 314, a recruiter may submit one or more
candidates programmatically through a staffing computer system. In
some embodiments, the staffing computer system may use an
application tracking system (ATS) for maintaining a record of
prospective workers. A recruiter may submit a candidate to a job
through the ATS. The exchange system 302 may, for example, include
an API to an ATS used by the staffing computer system 303 via which
the exchange system 302 can receive and/or access candidates from a
staffing computer system.
[0120] In some embodiments, a recruiter may submit candidates for a
job requisition to the exchange system 302. The exchange system 302
may, as shown in block 316, review and shortlist the candidates. In
some embodiments, the exchange system 302 may filter
candidates.
[0121] The exchange system 302 may filter candidates by data
related to qualities and/or an identity of a candidate and
determine whether the candidate is appropriate for a given job
record. In one example, the exchange system 302 may determine
whether the candidate has been previously submitted for the job
(e.g., by another recruiter or by the same recruiter in the past).
The exchange system 302 may, for example, determine whether a
unique identifier associated with the candidate is associated with
a job requisition in a database of the exchange system 302. In some
embodiments, the exchange system 302 may determine if other
attributes match up with job requirements (e.g., pay rate, time of
employment). In some embodiments, the exchange system 302 may
further allow a user (e.g., an exchange agent) to review candidates
and/or filter candidates.
[0122] In some embodiments, the staffing computer system 303 may
transmit candidates to the employer 301. The staffing computer
system 303 may transmit candidates via the exchange system 302 to
an employer computer system 301. A user may submit a candidate to
the exchange system 302 which may, in turn, transmit submitted
candidates to an employer computer system 301. For example, the
exchange system 302 may receive candidates from a staffing system
303 (e.g., a staffing ATS) via a staffing API and transmit
candidates to an employer computer system 301 (e.g., an employer
ATS) via an employer API.
[0123] At block 318, the employer 301 may review candidates for the
job. At block 320, the employer may accept a candidate. In some
embodiments, the employer may accept a candidate into an ATS used
by the employer computer system 301. For example, the candidate may
be stored as a candidate for the job within the ATS used by the
employer computer system 301. In some embodiments, as shown at
block 322, the employer may update a candidate status. The employer
may transmit an indication of a candidate status update to the
exchange system 302. At block 324, the exchange system 302 may
update the status of the candidate (e.g., within a database of the
exchange system 302). In some embodiments, the exchange system 302
may update a candidate status responsive to receiving an indication
from the employer computer system 301. The indication may, for
example, comprise a message including data related to updated
information regarding a candidate's status in a hiring process. The
exchange system 302 may update a candidate record based on the
information in the message in a database of the exchange system
302.
[0124] According to some embodiments, at block 326, the employer
may update a candidate status to hired. This may indicate that the
candidate has been hired by the employer. In some embodiments, the
employer computer system 301 may transmit an indication of the
candidate status update to hired to the exchange system 302. The
exchange system 302 may update the candidate status as well (e.g.,
in a database of the exchange system 302). In some embodiments, the
exchange system 302 may update the candidate to a hired status
responsive to receiving an indication from the employer computer
system 301. Upon updating a candidate status to hired, the employer
may further perform other processes to onboard the hired candidate
as a worker 326.
[0125] The inventors have recognized and appreciated that the
exchange system 302, by interacting with different entities may
maintain an updated record of a plurality of candidates in a manner
that is not possible in conventional system. As conventional
staffing and employer systems are disparate, and disconnected,
there is not a central storage record of candidate information. As
a result, databased of disparate systems are often unsynchronized
and unreliable with respect to storing candidate records. The
exchange system 302 allows for accurate, efficient, and up to date
tracking of a candidate placement.
[0126] After hiring, an employee may be on-boarded, and to this
end, the employer system and exchange may perform a programmatic
onboarding process. The exchange system may interact with one or
more computer systems in a number of different workflows, such as
generating customer invoices, paying staffing firms, tracking
payments and process adjustments, among other workflows. The
distributed system may also include a number of other components
that interface and/or reside on other systems such as staffing firm
software platforms, or other systems. A worker may be provided a
number of different interfaces and/or functionality that is
included in one or more workflows. For example, the worker may be
permitted to create and view timesheets, submit timesheets for
approval, edit and resubmit rejected timesheets among other
functions.
[0127] As described above in reference to FIG. 2, the exchange
system 302 may further enable functionality associated with
management of timesheets. A worker may access time cards via a
worker computer system 304. At blocks 334 and 336, the worker may
access, view, create, and/or edit a time card. A timesheet may
comprise a record of work performed by the worker. The timesheet
may, for example, include information about time spent on one or
more tasks, dates of time worked, vacation time taken, paid time
off, and/or other information. At block 338, the worker may submit
the timesheet.
[0128] In some embodiments, the worker may submit the time card to
the exchange system 302. For example, responsive to a timesheet
submission, the worker computer system 304 may transmit the
timesheet to the exchange system 302. In some embodiments, as shown
in block 340, the exchange system 302 may store the timesheet
record in a database of the exchange system 302. In some
embodiments the exchange system 302 may extract and store data from
a submitted timesheet. For example, the exchange system 302 may
receive a timesheet from the employer computer system 304 via an
API. The exchange system 302 may, in response, extract data from
the timesheet. The exchange system 302 may store a record of work,
and time spent on work, in a database of the exchange system
302.
[0129] In some embodiments, the worker may further submit the
timesheet to the employer (e.g., to the employer computer system
301). The worker may submit the timesheet to the employer via the
exchange system 302. For example, the worker computer system 304
may transmit the timesheet to the exchange system 302. The exchange
system may then store the timesheet and transmit the timesheet to
the employer computer system 301.
[0130] At block 342, the employer may review a submitted timesheet
for approval. The employer computer system 301 may perform
automatic validation. Additionally or alternatively, the employer
computer system 301 may allow a user (e.g., a manager) to review a
submitted timesheet. At block 344, the employer may either approve
or reject a submitted timesheet. If the employer approves the
timesheet at block 344, the employer computer system 301 may
transmit an indication of the approval to the exchange system 302.
The exchange system 302 may update a record of the timesheet data
in a database of the exchange system 302 (e.g., in response to
receiving the indication). The exchange system 302 may, for
example, receive a message via an API from the employer computer
system 301 indicating approval of a submitted timesheet.
[0131] If the employer rejects the timesheet at block 344, the
employer computer system 301 may transmit an indication of the
rejection to the exchange system 302. In some embodiments, the
exchange system may update data in a database of the exchange
system 302 about the rejection of the timesheet. The exchange
system 302 may, for example, receive a message via an API from the
employer computer system 301 indicating rejection of a submitted
timesheet. In some embodiments, as shown at block 348, the exchange
system 302 may further determine exceptions to an indication of a
rejection. For example, the exchange system 302 may determine that,
despite being rejected, the timesheet still includes data that is
to be stored.
[0132] In some embodiments, the exchange system 302 may further
transmit timesheet and/or timesheet data to the staffing computer
system 303. In some embodiments, the exchange system 302 may
transmit approved timesheets. In some embodiments, the exchange
system 302 may transmit approved timesheets and those that are
under an exception.
[0133] In some embodiments, if the timesheet is not approved, the
employer may transmit the timesheet back to the worker for editing
and/or resubmission. In one embodiment, the employer computer
system 301 may transmit the timesheet back to the worker computer
system 304 via the exchange system 302. The exchange system 302
may, for example, receive an indication of a need to edit or
resubmit a timesheet. At block 346, a worker may edit and/or
resubmit a rejected timesheet. In response to resubmission of the
time card, the timesheet may be transmitted to the employer
computer system 301 for approval as described above.
[0134] In some embodiments, at block 354, after one or more
timesheets have been stored, the exchange system 302 may use the
stored timesheet data to generate an invoice. The exchange system
302 may, for example, use timesheet data stored in a database of
the exchange system 302 to generate an invoice. The exchange system
302 may, for example, generate an invoice to pay one or more
entities involved with placement of a candidate (e.g., a staffing
firm, a manager of the exchange system). The exchange system 302
may also use additional data, in addition to the timesheet data, to
generate the invoice.
[0135] At block 356, the exchange system 302 transmits a generated
invoice to the employer. In some embodiments, the exchange system
302 may transmit the invoice to the employer computer system 301.
Upon receipt of an invoice from the exchange system 302, at block
358, the employer may transmit funds to the exchange system 302
(e.g., Scout). In some embodiments, the employer computer system
302 may transmit an electronic payment to the exchange system 302
which may process the payment. In some embodiments, as shown at
block 360, the exchange system 302 may pay a staffing firm involved
with a placement of a candidate. In some embodiments, the exchange
system 302 may pay the staffing firm in response to receiving a
payment from the employer. The exchange system 302 may, for
example, automatically dispense funds to an account of the staffing
firm. In some embodiments, as shown at block 362, the exchange
system may perform other functions such as tracking of payments and
processing adjustments. For example, the exchange system 302 may
verify that all parties have been paid correct amounts. In another
example, the exchange system 302 may adjust payments (e.g., in
response to new and/or corrected timesheets).
[0136] FIGS. 4A-B illustrate an example process 400 for creating a
job (e.g., a job requisition) in a distributed computer system
according to various embodiments of the present invention. For
example, FIGS. 4A-4B show processes involving interaction between
an applicant tracking system (ATS) 401, an exchange system 402
(e.g., scout), a scout consultant system 403, and a staffing firm
system 404. Such processes may relate to the creation and posting
of jobs within multiple staffing firms.
[0137] At block 406, at the ATS, a user may create a job
requisition (e.g., a contingent requisition) within an interface.
The interface may, for example, be provided by the exchange system
402 as described above with reference to FIG. 2 and FIG. 9 above.
The job requisition may comprise details of a job to be filled by
an employer using the ATS 401. After creating the job requisition,
at block 408 the job requisition may be pushed to the ATS 401
(e.g., a storage of the ATS 401). Next, at block 410, the job
requisition is posted. In some embodiments, the ATS may post new
job requisitions to the exchange system 402. Once posted, the ATS
may send the requisition record to the exchange system 402 using a
data synchronization process. The exchange system may periodically
look for new requisitions and send information to an exchange
consultant system.
[0138] In some embodiments, as shown at block 412, the exchange
system 402 may receive a job requisition by data synchronization
with the ATS 401. The exchange system 402 may, for example, perform
a data synchronization process in which one or more new job
requisitions generated in the ATS are synced in the exchange system
402. In some embodiments, the exchange system 402 may receive data
associated with the new job requisition via an API used by the
exchange system 402 to interact (e.g., communicate with) the ATS
401. In some embodiments, the exchange system 402 may perform
synchronization at a regular time interval. In some embodiments,
the exchange system 402 may perform the synchronization responsive
to receiving an indication of a new job requisition from the ATS
401.
[0139] At block 414, the exchange system 402 may determine whether
the job requisition has been closed. For example, if a candidate
has been placed for the job requisition, during a data
synchronization process, the exchange system 402 may receive an
indication that the job requisition is closed. If the exchange
system 402 determines that this is the case, the exchange system
402 may proceed to block 416 where the exchange system 402 removes
the job requisition from a listing of open job requisitions. For
example, the exchange system 402 may change a status of the job
requisition in a database of the exchange system 402. Further, the
exchange system 402 may remove access to the job requisition (e.g.,
by recruiters, or a staffing platform).
[0140] At block 418, the exchange system 402 determines whether a
job requisition is a new requisition. For example, the exchange
system 402 may check whether the job requisition exists in a
database of the exchange system 402 to determine whether the job
requisition is a new one. If the exchange system 402 determines
that the job requisition is a new job requisition, it proceeds to
block 420 where the exchange system 402 creates a listing for the
job requisition in the exchange system 402. For example, the
exchange system 402 may include the job requisition as one that can
be viewed and accessed by a staffing platform.
[0141] In some embodiments, upon determining a listing in the
exchange system 402, the exchange system 402 may further initiate
additional processes associated with the job requisition. For
example, the exchange system 402 may allow a user 403 (e.g., a
consultant) to perform activities associated with the job
requisition. In one embodiment, an exchange consultant reviews
postings and determines, responsive to the exchange system 402, one
or more appropriate staffing firms to send the job listing. For
example, the consultant may automatically receive a message (e.g.,
an email) from the exchange system 402 at block 422. The consultant
may then conduct an intake call at block 424, update additional
details about the job at block 426.
[0142] According to one implementation, the exchange system may
track one or more preferred vendors for particular jobs, and may
permit the preferred vendors to have access to these placements for
a predetermined amount of time (e.g., 48 hours). Thereafter, the
staffing firm may be permitted to view and respond to particular
listings. At block 428, the consultant 403 may determine whether
the job is exclusively to be accessed by a select set of vendors
(e.g., select staffing firms). If so, the consultant may select the
vendors at block 430. At block 432, the exchange system 402 may
post a listing for the job requisition for the selected vendors. In
one example, the exchange system 402 may update permission to
access a job requisition record in a database of the exchange
system 402. In another example, the exchange system 402 may make
the job requisition only available to the selected specific vendors
(e.g., by allowing specific usernames to access the job
requisition).
[0143] FIGS. 12A-B illustrate an example user interface screens via
which the scout consultant 403 may select a preferred vendor (e.g.,
select specific staffing firm(s) and/or specific recruiter(s)). The
scout consultant 403 may, for example, select one or more specific
recruiters. The scout consultant 403 may then select an option to
post the job to the selected vendors. FIG. 12A illustrates an
example user interface screen 1200 via which the consultant may
select preferred vendors. For example, the recruiter may be able to
select a specific staffing firm and/or specific recruiters of the
staffing firm. FIG. 12B illustrates an example user interface
screen 1210 by which the consultant can select to post the job to
the exchange or to post only to preferred vendors (e.g., those
selected in screen 1200). The exchange system 402 may receive the
recruiter selections and then transmit notifications, provide user
access, or perform other actions based on the consultant
selection(s).
[0144] At block 434, the exchange system 402 may transmit a
notification to the staffing firm(s) 404 to notify the staffing
firm of the posted job. In some embodiments, in response to
selection of a staffing firm for the posted job, the exchange
system 402 may automatically transmit a notification to one or more
users associated with the staffing firm (e.g., recruiters). In one
example, the exchange system 402 may transmit an email to a
recruiter(s) about the job posting. In some embodiments, the
exchange system 402 may additionally and/or alternatively transmit
job information to a staffing platform of the staffing firm. For
example, the exchange system 402 may transmit a data record storing
information about the job to the staffing platform. The data record
may update the staffing platform with the information in the data
record.
[0145] At block 436, the exchange system 402 may allow the staffing
firm 404 to view the job in an interface provided by the exchange
system 402. In some embodiments, the exchange system 402 may
provide an interface by which a staffing firm can view jobs. The
exchange system 402 may, for example, limit jobs that can viewed by
a staffing firm 404 to those jobs that the staffing firm 404 has
been given access. In one embodiments, the exchange system 402 may
store permissions for a job posting according to which the exchange
system 402 determines which users (e.g., which staffing firms) have
access to a particular job. The exchange system 402 may limit what
can be viewed by a staffing firm 404 (e.g., staffing firm users) in
an interface provided by the exchange system 402 based on the
stored permissions.
[0146] Returning again to block 428, where consultant may determine
whether the job is exclusively to be accessed by a select set of
vendors (e.g., select staffing firms), if the consultant 403
determines that the job is not limited to a set of preferred
vendors, then, as shown at block 442, the exchange system 402 may
post the job to all vendors (e.g., staffing firms and/or
recruiters). In some embodiments, the exchange system 402 may
transmit a job record to a repository of job records (e.g., the
Scout Marketplace). For example, the exchange system 402 may post
the job record to the Scout Marketplace.
[0147] At block 444, the exchange system 402 may analyze a job
posted to the Scout Market place. In some embodiments, the exchange
system 402 may determine one or more details about the job based on
the job record in the Scout Marketplace as described above with
reference to FIG. 2. At block 446, according to some embodiments,
the exchange system 402 may determine one or more recommended
vendor(s) with whom the job should be shared. In some embodiments,
the exchange system 402 may determine the vendor(s) based on an
analysis of a job record 444. For example, the exchange system 402
my determine that the job is associated with an employer who has
worked frequently with one or more vendors. The exchange system 402
may access a record of stored interactions for one or more vendors
and/or employers and may determine, based on the record, that the
vendor works frequently with the employer. In this case, the
exchange system 402 may determine the vendor(s) as a recommended
vendor. The exchange system 402 may use other methods of
determining recommended vendors as embodiments are not limited to
any particular way of doing so. For example, the exchange system
402 may determine preferred vendors based on pay rate of the job,
location, term, experience level required, and/or any other details
of the job. The exchange system 402 may access such details from a
stored job record associated with the job.
[0148] At block 438, the exchange system 402 may transmit a
notification to the staffing firm 404 to notify the staffing firm
404 of the posted job. In some embodiments, in response to
selection of a recommended vendor (e.g., staffing firm) for the
posted job, the exchange system 402 may automatically transmit a
notification to one or more users associated with the staffing firm
(e.g., recruiters). In one example, the exchange system 402 may
transmit an email to a recruiter(s) about the job posting. In some
embodiments, the exchange system 402 may additionally and/or
alternatively transmit job information to a staffing platform of
the staffing firm. For example, the exchange system 402 may
transmit a data record storing information about the job to the
staffing platform. The data record may update the staffing platform
with the information in the data record. According to some
embodiments, the exchange system 404 may further allow the
recommended staffing firm 404 to view the job in an interface
provided by the exchange system 402 at block 436 as described
above.
[0149] FIGS. 5A-C show an example process 500 for placing a worker
(e.g., a temporary worker) to a job (e.g., a job requisition) in a
distributed computer system according to one embodiment of the
present invention. For instance, For example, FIGS. 5A-5C show
processes involving interaction between an applicant tracking
system (ATS) 501 at an employer, an exchange system 502 (e.g.,
exchange system 101), a scout consultant system 503, and a staffing
firm system 504 (e.g., a staffing platform).
[0150] At block 506, the exchange system 502 may post the job to
one or more staffing firms. As described above with reference to
FIG. 2. According to some embodiments, at block 508 the exchange
system may determine if a respective staffing firm (e.g., using
staffing firm system 504) is a preferred or recommended vendor
(e.g., a staffing firm or recruiter(s)). If, according to one
embodiment, at block 512 the staffing firm is a preferred vendor,
the staffing firm may be sent a notification regarding a new job in
the exchange system 102 as described above with reference to FIG.
4. For example, a user of the staffing system 504 (e.g., a
recruiter) may receive an email about a new job in the exchange
system 502. If, according to one embodiment, the vendor is not a
preferred or recommended vendor, the vendor may find the job in the
exchange system 502. For example, the exchange system may provide a
non-preferred or recommended vendor access to the job after a
period of time designated exclusively for preferred and/or
recommended vendors. In some embodiments, the exchange system 502
may have a central repository that stores a job record for the job.
For example, the exchange system 502 may have a database storing
the job record as described above with reference to FIG. 1.
[0151] In some embodiments, the exchange system 502 may further
limit which user(s) can access a job for a time period (e.g., one
day, two day, a week, a month, etc.). The exchange system 502 may
limit access to a job to preferred and/or recommended vendors for a
time period, and thereafter allow access to other vendors. For
example, the exchange system 502 may limit the job from being
displayed in a user interface of vendors who are not preferred
and/or recommended while displaying the job in a user interface of
vendors who are preferred and/or recommended. In some embodiments,
the exchange system 502 may store permissions for various vendors
(e.g., staffing firm(s), recruiter(s)) in a database of the
exchange system 502. The exchange system 502 may use the stored
permissions to determine which vendors have access to a given job.
According to one embodiment, at block 512, a user may find the job
after the period of time (e.g., after two days). The period of time
may, for example, be referred to as an exclusive period.
[0152] Thereafter, at blocks 514-516, the user of the staffing firm
system 504 may review listing details for that particular job. The
user may, for example save the job, and work on finding candidates
for the job. In some embodiments, the use may search a staffing
system 504 for possible candidates. The staffing system 504 may
comprise an application tracking system (ATS) used for tracking
candidate records. At block 518, the staffing firm may also submit
one or more candidates to be considered. In some embodiments, when
the staffing system 504 submits a candidate to the job, at block
520, and the exchange consultant can review the new listing via the
consultant system 503. In one example, the consultant system 503
may permit the consultant to review the resume at block 522. The
exchange system 502 may, for example, provide the consultant 503 a
user interface via which to view the resume. In some embodiments,
the consultant 503 may further ask questions at block 524 via the
consultant system. In some embodiments, the consultant system 503
may transmit questions submitted via the scout consultant system
503 to the staffing firm system 504. At block 525, the staffing
firm (e.g., a recruiter of the staffing firm) may respond to
questions received about the candidate.
[0153] In some embodiments, when the exchange system 502 receives a
candidate submission, the exchange system 502 may match a stored
worker record (e.g., a temporary worker record 103) to the job. For
example, the exchange system 502 may have previously stored a
worker record associated with the candidate when the exchange
system 502 received the candidate in an earlier submission, or a
staffing firm user had entered information about the candidate.
When the exchange system 502 receives a submission of the same
candidate for the current job, the exchange system 502 may store
the submission of a worker from a stored pool of workers. The
stored pool of workers may be associated with the staffing firm
504. In one instance, where a worker record does not exist for a
submitted candidate, the exchange system 502 may generate and store
a worker record in a database of the exchange system (e.g., worker
database 104), for use in subsequent submissions of the worker to
other jobs. Further, the exchange system 502 may further store the
worker record in a pool (e.g., pool 102). In some embodiments, the
exchange system 502 may associate the pool with a staffing firm
that submitted workers stored in the pool.
[0154] After screening the resume at block 522, the consultant may
further disposition a candidate 526. In some embodiments, the
consultant may disposition the candidate by indicating whether the
candidate is of interest to the consultant to fill in the job. If
the candidate is interesting to the consultant, or otherwise passes
any certifications or requirements for the position, the exchange
consultant can submit the candidate to the exchange system 502 at
block 528. If, however, the consultant submits that the candidate
is not of interest for the job, the consultant may mark the
candidate not interested at block 530. In some embodiments, the
exchange system 502 may update a candidate record associated with
the candidate to store an indication that the candidate is not of
interest for a particular job. In some embodiments, at block 532,
the staffing firm may receive an indication that the candidate has
been rejected. For example, a recruiter(s) may receive an email
indicating that the candidate has been rejected for the job. In
another example, the exchange system 502 may transmit a message to
the staffing system 504 indicating that the candidate is not of
interest for the job. The staffing firm system 504 may display an
alert to a recruiter(s) indicating the rejection.
[0155] At block 528, the consultant may submit the candidate for
the job. In one embodiment, the exchange is capable of determining
whether there is a duplicate candidate defined within the system.
According to some embodiments, the exchange system 502 may
determine whether a duplicate candidate exists in the exchange
system 502 at block 534 when the candidate is submitted for the
job. In online hiring systems, often times multiple staffing firms
(e.g., multiple recruiter) may submit identical candidates for a
job. Accordingly, conventional systems are unable to determine
which recruiter to associate with the candidate. For example,
conventional systems are unable to determine which recruiter is to
be contacted regarding the candidate, and which recruiter is to be
paid in the event of candidate hiring. According to one aspect of
the present invention, the system eliminates the possibility of
duplicate candidates, as it is determined that only particular
staffing firms may be paid for a particular placement. According to
one aspect, the first entity that posts the candidate for
particular position receives the financial benefit. According to
some embodiments, the exchange system 502 maintains a candidate
record for candidates submitted to various jobs. The exchange
system 502 may store a mapping of the candidate to a particular
recruiter and/or job record in the database. Accordingly, the
exchange system 502 may determine whether the candidate is a
duplicate candidate for the job by checking stored mappings in a
database of the exchange system 502.
[0156] If, at block 534, the exchange system 502 determines that
the candidate is not a duplicate candidate, the exchange system 502
may proceed to block 536 where the system 502 imports the candidate
to the employer ATS 501 at block 536. In some embodiments, the
exchange system 502 may retrieve a candidate record from the scout
consultant system 503 and import the candidate record to the
employer ATS 501. If, at block 534, the exchange system 502
determines that the candidate is a duplicate candidate, the
exchange system 502 may proceed to block 538 where it determines
whether to overwrite the candidate in the employer ATS 501. In some
embodiments, the exchange system 502 may request a consultant to
provide input as to whether the candidate is to be overwritten in
the employer ATS 501. In some embodiments, the exchange interface
502 may generate a user interface screen via which the consultant
can input whether to overwrite the candidate. If, at block 538, the
exchange system 502 received input indicating to not overwrite the
candidate in the ATS 501, then the candidate may be marked as not
interested at block 530 and a rejection notification may be
transmitted to a recruiter or submitted the candidate at block 532.
If, at block 538, the exchange system 502 receives input indicating
to overwrite the candidate in the ATS 501, then the candidate may
be imported at block 536 and replace an existing candidate stored
in the system. In some embodiments, the exchange system 502 may
replace a candidate record stored in a database of the exchange
system 502 with a new candidate record of the submitted candidate
record. In another embodiment, the exchange system 502 may update
fields in the candidate record based on information from the
candidate submission.
[0157] If the exchange system 502 determines that the candidate is
unique or the exchange system 502 receives instructions to
overwrite an existing candidate, the exchange system 502 may permit
the consultant to contact the employer and schedule interviews at
block 540. According to one aspect of the present invention, direct
links into the employer's ATS 501 system is provided, and the
candidate can be moved through an ATS 501 workflow at bock 542 in
the employer system 501. If, in the employer ATS system 501 the
candidate is hired, the ATS system 501 may contact the exchange
system 502 to indicate the hiring. In some embodiments, the
exchange system 502 may receive a message from the employer ATS
system 501 indicating that the candidate has been hired. In some
embodiments, in response to receiving the indication, the exchange
system 502 may start a placement handshake as discussed further
below with reference to FIG. 6.
[0158] In some embodiments, as shown at block 548, the exchange
system 502 may transmit an indication to the staffing firm to start
the placement handshake. For example, the exchange system 502 may
transmit a message to the staffing firm system 504 to initiate the
handshake. If the applicant is not accepted at block 544, an
indication is sent to the staffing firm to identify the candidate
as rejected. In some embodiments, the exchange system 502, at block
550, may receive an indication (e.g., a message) from the employer
ATS system 501 about the rejection. In response, the exchange
system 502 may update a candidate record of the candidate to
indicate that the candidate has been rejected. For example, the
exchange system 502 may update a field in the candidate record
stored in a database of the exchange system 502. The exchange
system 502 may further transmit a notification to the staffing firm
504 about the change in candidate status at block 552. In some
embodiments, the exchange system 502 may automatically trigger a
notification sent to a staffing firm system 504. In some
embodiments, the exchange system 502 may additionally and/or
alternatively transmit an email to a user (e.g., a recruiter) about
the candidate status.
[0159] FIGS. 13A-B illustrates example user interfaces for placing
a candidate into a position. FIG. 13A illustrates an example screen
1300 via which a staffing firm (e.g., a recruiter) may submit a
candidate for a job requisition. The staffing firm may enter
information about the worker such as worker name, company name,
email address, job title, job requisition ID, and other
information. The exchange system may generate a candidate record
using information submitted via the user interface screen 1300.
FIG. 13B illustrates an example user interface screen 1310 which
the employer may use to review a worker. The exchange system may
generate the user interface screen 1310 to allow the employer to
review a candidate and determine to accept a candidate for
placement.
[0160] FIG. 6 (FIGS. 6A-6B) shows an example process 600 for
performing a placement handshake among multiple systems according
various aspects of the present invention. In particular, FIGS.
6A-6B show processes involving interaction between an applicant
tracking system (ATS) 601 at a hiring company (e.g., an employer of
the candidate), an exchange system 602 (e.g., scout exchange system
101), a scout consultant system 603, a staffing firm system 604,
and an exchange finance system 605 (e.g., scout finance).
[0161] Within the ATS, at block 606 the hiring company 601 may
update the candidate status to hired, and then a connector within
the ATS system communicates with the exchange system 602. In one
implementation, at block 608 the exchange system 602 may send a
notification email to a scout consultant system to initiate the
hiring handshake process. In some embodiments, the exchange system
602 may send the email in response to receiving the updated
candidate hired status from the hiring company ATS 601. In some
embodiments, the exchange system 602 may, at block 610, perform a
handshake with the scout consultant system 603 which may then
transmit a candidate status update to the staffing firm system 604.
In some embodiments, the exchange system 602 may update a candidate
status in the staffing firm system 604 to indicate that the
candidate status is hired, and the placement handshake is initiated
at block 614. For example, in response to updating the candidate
status to hired in the staffing computer system, the exchange
system 602 may automatically initiate the placement handshake at
block 614.
[0162] At block 616, the exchange system 602 may transmit a
notification (e.g., an email) to the staffing firm (e.g., a
recruiter of the staffing firm). In some embodiments, the
notification may include a placement form. At blocks 618-620, the
staffing firm recruiter (SFR) edits a placement form, and completes
the review. In some embodiments, the exchange system 602 sends a
notification (e.g., an email) to the hiring company (e.g., the job
owner) at block 622. According to some embodiments, the exchange
system 602 may send the notification responsive to the SFR
completing the review. Thereafter, the hiring company may further
edit the candidate placement form at block 624. If the terms have
not changed, the review is completed and the handshake is
completed. However, if any of the terms have changed notifications
may be sent back and forth to coordinate agreement of the
terms.
[0163] In some embodiments, at block 626, the hiring company may
make changes to the terms. If changes are made to the terms of the
placement, the exchange system 602 may receive an indication of the
change at block 628. In response, the exchange system 602 may
transmit a notification to the staffing firm (e.g., a recruiter) of
the changed terms. In some embodiments, the exchange system 602 may
transmit an alert notification to the recruiter in a user interface
presented to the recruiter by the exchange system 602. At block
630, upon receiving the changed terms, the staffing firm may review
the changes in the terms. According to one aspect, the system may
include controls to contact a consultant for escalation. The
recruiter may further determine to escalate the changes at block
632. If the changes are escalated at block 632, the exchange system
602 may receive an indication of the escalation (e.g., a message)
and, in response, transmit a notification (e.g., an email) to a
consultant to escalate at block 634. At block 636, the consultant
may address the escalation. In some embodiments, the consultant may
receive a notification of the escalation in a user interface of the
exchange system 602 presented to the consultant. The consultant may
address the escalation via the user interface.
[0164] When the consultant has addressed the escalation at block
636, the exchange system 602 may receive an indication of the
escalation having been addressed. In some embodiments, the exchange
system 602 may receive the indication responsive to a consultant
entering information into a user interface (e.g., of a webpage or
application). The exchange system 602 may, at block 638 transmit a
notification (e.g., an email) to the staffing firm recruiter of the
reconciliation. Upon receiving the reconciliation, the recruiter
may complete the review at block 642. The exchange system may
additionally and/or alternatively, at block 640, transmit a
notification (e.g., an email) to the job owner confirming the
reconciliation at block 640. The job owner may further complete the
review at block 662. Upon both the staffing firm and the job owner
completing the review, the exchange system at block 644 may
complete the handshake.
[0165] Returning again to block 632, if the staffing firm recruiter
decides to not escalate the changes provided by the job owner at
block 626, the staffing firm recruiter may determine to make
further term changes at block 641. If the recruiter decides to not
make further changes to the terms at block 641, then the recruiter
may complete the recruiter's review at block 642. If, however, the
recruiter determines to make changes to the terms at block 641, the
exchange system 602 may transmit a notification of the changes to
the job owner. For example, the exchange system 602 may receive a
notification of changed terms from the staffing firm. In response,
the exchange system 602 may automatically transmit a notification
(e.g., an email) to the job owner to review the changes. At block
658, the job owner may review the changes submitted by the
recruiter. The job owner, at block 660, may determine whether to
escalate the matter. If the job owner decides to escalate at block
660, then the process may proceed to block 634 to initiate the
escalation process described above. If, however, the job owner
decides to not escalate at block 660, the job owner may complete
the review at 662. The process may then proceed to block 644 where
the exchange system 602 completes the handshake.
[0166] Returning again to block 644, where the exchange system 602
completes the handshake, according to some embodiments, the
exchange system 602 may update a handshake status stored in a
database of the exchange system 602. In some embodiments, upon
completion of the handshake status, the exchange system 602 may
further send notifications (e.g., emails) to parties involved in
the placement. In some embodiments, as shown in blocks 646-650, the
exchange system 602 may transmit notifications to the recruiter
(block 646), the job owner (block 648), and/or to scout finance and
consultants (block 650). In some embodiments, upon completion of
the handshake, the exchange system 602 may additionally transmit a
notification to a finance system 605 for reviewing and setting up
payments. In some embodiments, the finance system may comprise a
component of the exchange system 602 that manages and performs the
finance review and setup processes. If the terms are agreed to, the
contact is made to a final financial review and set up of the
candidate in the system, and a worker role and approver role is
created within the authentication service. Thereafter, a worker may
be permitted to create and edit timesheets, and the approver may be
capable of approving timesheets for payment. In some embodiments,
as shown at block 652, the exchange system 602 may further create a
worker and approver in an authentication service. In some
embodiments, the exchange system 602 may store a new worker and
approver role in a database of the exchange system 602. The
exchange system 602 may, for example, allow the worker to create
and edit timesheets, and allow the approver to, for example,
approve timesheets for payment. An example interaction between
various systems according to embodiments of the technology
described herein is discussed below with reference to FIGS.
7A-B.
[0167] FIG. 7 (FIGS. 7A-7B) shows an example process 700 for
handling and approving timesheets among multiple systems according
to various aspects of the present invention. In particular, FIGS.
7A-7B show processes involving interaction between an employer
system 701 (e.g., operated by a hiring manager or delegate), an
exchange system 702 (e.g., exchange system 101), a scout consultant
system 703, a staffing firm system 704, and a worker system
705.
[0168] After a placement is complete at block 706, the exchange
system 702 may provision an approver in a timesheets application at
block 724. In some embodiments, the exchange system may generate a
new record, or access an existing record associated with the
approver in a database 702. The exchange system 702 may update the
record to reflect that a user has been assigned as an approver. For
example, the exchange system 702 may assign a user an "approver"
role in the record associated with the user. Further, the exchange
system 702 may provision the worker within the timesheets
application at block 708. In some embodiments, the exchange system
702 may update a stored record in a database of the exchange system
702 to provision the worker. For example, the exchange system 702
may assign a user a "worker" role in a record associated with the
user to provision the worker in time sheets.
[0169] In some embodiments, the exchange system 702 may transmit a
notification of provisioning the approver to the employer system
701. In some embodiments, the exchange system 702 may transmit a
notification (e.g., an email, an alert in an interface). When an
approver (e.g., a hiring manager or a delegate) has been
provisioned, the approver may create a login (e.g., a username) for
a timesheets application at block 726. The approver may access the
timesheets application via the employer system 701. The worker may
also create a password and login to the timesheets application at
block 726. At block 728, the approver may use the login to sign
into the timesheets application.
[0170] In some embodiments, the exchange system 702 may include the
timesheets application. The timesheets application may, for
example, comprise a component of the exchange system 702. In other
embodiments, the timesheet application may comprise a separate
system executing on a separate computer system.
[0171] According to some embodiments, the worker, once provisioned,
may also create a login (e.g., username, password) for the
timesheets application at block 710. The worker may use the login
created at block 710 to log into the timesheet application at block
712. Upon logging in, the worker may select a placement at block
714. For example, if the worker has been placed for multiple job
listings, the worker may have an option to select a specific
placement. At blocks 716-720, the worker create a new timesheet
edit it, submit it for approval through the exchange system 702.
According to some embodiments, the exchange system 702, upon
receiving a submission of a timesheet, may automatically transmit
the timesheet to the employer system 701 for review. For example,
the exchange system 702 may receive a submission of the timesheet
via a user interface of the timesheet application (e.g., a webpage,
screen of an application). In response, the exchange system 702 may
transmit the timesheet to the employer system 701 and allow the
employer system 701 to view the timesheet in a user interface of
the timesheet application. In some embodiments, as shown at block
721, the exchange system 702 may transmit a notification of a
submitted timesheet. For example, in response to receiving a
timesheet submission, the exchange system 702 may transmit an email
to the approver and/or a notification to the employer system 701
(e.g., alert in a user interface).
[0172] At block 730, the approver may review a submitted timesheet.
For example, the approver may view the timesheet in a user
interface of the timesheet application. The user interface may
provide an option to approve the timesheet. If, at block 732, the
approver approves a submitted timesheet, the exchange system 702
may perform an invoicing process using the timesheet at block 734.
In some embodiments, upon approval of a timesheet, the exchange
system 702 may receive a notification of the approval. The exchange
system 702 may, in response, perform a process of invoicing using
the submitted timesheet. If, at block 732, the approver rejects a
submitted timesheet, the worker may be required to update the
rejected timesheet at block 722. In some embodiments, the exchange
system 702 may transmit a notification to the worker system 705
informing the worker that the timesheet is to be updated. For
example, the exchange system 702 may transmit an email to the
worker and/or generate an indication in a user interface of the
timesheet application informing the worker that the timesheet is to
be updated. The worker may then update the timesheet at block 722
and then submit the timesheet for approval at block 720 as
described above.
[0173] In some embodiments, the exchange system 702 may provide
various monitoring functions to the scout consultant system 703.
Consultants may use the functions to monitor timesheet submission,
approval, and/or accuracy. At block 738, the consultant may monitor
timesheet queues 738. For example, the exchange system 702 may
present the consultant system 703 with a queue of timesheets
submitted by a worker(s). In some embodiments, the consultant
system 703 may further receive a notification of unapproved
timesheets as shown at block 744. At block 740, the consultant may
reach out to an employer user (e.g., a hiring manager) about
unapproved time. In some embodiments, the exchange system 702 may
provide the consultant with an option to notify the hiring manager
of the unapproved timesheet. As shown at block 746, the consultant
system may receive a notification of a missing timesheet
submission. For example, a worker may not have submitted a
timesheet after having started working for the employer. At block
742, the consultant may reach out to a staffing firm (e.g., a
recruiter) associated with the worker. The consultant may, for
example, remind the firm to acquire a timesheet submission. In some
embodiments, the exchange system 702 may provide the consultant
system 703 an option to notify a staffing system of the missing
time.
[0174] FIGS. 14A-B illustrate exemplary user interface screens of a
timesheet application in accordance with some embodiments of the
technology described herein. FIG. 14A illustrates a user interface
screen 1400 that a worker may create, access, edit, and submit. The
worker may enter, for example, an amount of time worked, date of
work, time in, time out, and other information. The worker may then
submit the entered time which may be sent to an approver for
review. FIG. 14B illustrates a user interface screen 1410 that may
be viewed by the approver. The approver may, for example, see a
plurality of timesheet submissions submitted by one or more
workers. The approver may select to reject or approve each
timesheet submission.
[0175] FIG. 8 shows an example process 800 for performing invoicing
and payments among multiple systems in association with a worker
(e.g., a temporary worker) according to one embodiment of the
present invention. In particular, FIGS. 8A-8B show processes
involving interaction between an employer system 801 at an employer
of the candidate, an exchange system 802 (e.g., scout), a scout
consultant system 803, and a staffing firm system 804.
[0176] The process 800 may be performed when a placement handshake
is completed at block 806. The handshake may, for example, be
performed as described above with reference to FIG. 6. At block
808, the exchange system 802 may contact a finance system is
contacted for approval. Upon receiving approval from the finance
system, the exchange system 802 may initiate the timesheet approval
process (e.g., process 700 described above with reference to FIG.
7). Thereafter, one or more timesheets may be entered and approved
at block 812, and one or more invoices may be created.
[0177] In some embodiments, the exchange system 802 may collect
information received from submission of timesheets. For example,
the exchange system 802 may collect payroll information based on
the timesheets. The exchange system 802 may transmit the payroll
information to the consultant system 803. The consultant system 803
may, at block 814, collect the payroll information and send it to
the staffing firm system 804. At block 816, the staffing firm may
receive the payroll information.
[0178] At block 818, the exchange system 802 may use approved
timesheets to generate invoice items. Invoice items may comprise
information (e.g., data related to time worked, date worked, and
other information) that is to be used for generating an invoice. At
block 820, the exchange system 802 may generate an invoice(s). Such
invoices may be created periodically by the exchange system 802
based on approved timesheets that are entered within the system.
For example, on a particular billing day, the exchange system 802
may generate an invoice. At block 826, the exchange system 802 may
transmit a generated invoice to an employer for processing. For
example, the exchange system 802 may transmit the generated invoice
to an automatic payment (AP) system. The employer may process the
payment at block 828 and then issue the payment at block 830.
[0179] When a payment has been issued at block 830, according to
some embodiments, the exchange system 802 may receive a
notification of the issued payment. In some embodiments, the
exchange system 802, at block 824, may automatically route (AR)
payment to one or more parties involved with a candidate placement
(e.g., staffing firm, recruiter, exchange system manager). In some
embodiments, once payment is issued, the exchange system 802 may
issue payment to one or more staffing firms automatically. In some
embodiments, as shown at block 832, the exchange system 802 may set
a due date(s) for staffing firm payment(s). The exchange system 802
may determine whether a current time matches a due date. When the
current time matches the due date, the exchange system 802 may
trigger transmission of payment to a staffing firm at block 834. At
block 836, the staffing firm may receive the payment. In one
example, the exchange system 802 may automatically initiate a
transfer of funds to an account of the staffing firm.
[0180] In some embodiments, the exchange system 803 may further
enable a consultant to perform various functions. For example,
exchange consultant may perform operations such as handling
placement escalations as shown at block 840. The consultant may,
for example, determine whether to escalate a placement as a result
of disagreement of terms between placement parties (e.g., employer
and worker). After placement, the consultant may monitor timesheet
submissions and approvals. The exchange system 802 may, for
example, provide a user with a queue of submitted timesheets from
one or more worker(s) (e.g., in a user interface generated by the
exchange system 802). The exchange system 802 may generate a user
interface displaying a status (e.g., approved, unapproved) of
submitted timesheets, date of submission, and/or other information
about timesheets. In some embodiments, the exchange system 802 may
update the information responsive to user actions (e.g., submission
by a worker and/or approval by a hiring manager). The consultant
may use the information to monitor the timesheet approvals and
submissions.
[0181] The inventors have recognized and appreciated that the
process of distributing payments to one or more entities involved
with placement of a candidate is made more efficient as direct
system to system contact communicates payment to the entities. For
example, as described above in process 800 with reference to FIG.
8, the exchange system can automatically distribute payments to the
staffing firm. The exchange system, by integrating interaction
between the multiple entities, allows for management of timesheet
submission, timesheet approval, and payment distribution. Further,
the exchange system enables various functions to be performed
immediately responsive to user actions. For example, payment
distributions to staffing firms can be performed responsive to
receipt of payment from an employer.
[0182] Although the scout consultant system is shown separately in
FIGS. 4-8 above, embodiments are not limited in this manner.
According to some embodiments, the scout consultant system may
comprise a component of the exchange system. In other embodiments,
the scout consultant system may comprise a separate system
communicatively coupled to the exchange system.
[0183] Various aspects and functions described herein may be
implemented as specialized hardware or software components
executing in one or more specialized computer systems.
[0184] There are many examples of computer systems that are
currently in use that could be specially programmed or specially
configured. These examples include, among others, network
appliances, personal computers, workstations, mainframes, networked
clients, servers, media servers, application servers, database
servers, and web servers. Other examples of computer systems may
include mobile computing devices (e.g., smart phones, tablet
computers, and personal digital assistants) and network equipment
(e.g., load balancers, routers, and switches). Examples of
particular models of mobile computing devices include iPhones,
iPads, and iPod Touches running iOS operating systems available
from Apple, Android devices like Samsung Galaxy Series, LG Nexus,
and Motorola Droid X, Blackberry devices available from Blackberry
Limited, and Windows Phone devices. Further, aspects may be located
on a single computer system or may be distributed among a plurality
of computer systems connected to one or more communications
networks.
[0185] For example, various aspects, functions, and processes may
be distributed among one or more computer systems configured to
provide a service to one or more client computers, or to perform an
overall task as part of a distributed system, such as the
distributed computer system 1500 shown in FIG. 15. Additionally,
aspects may be performed on a client-server or multi-tier system
that includes components distributed among one or more server
systems that perform various functions. Consequently, embodiments
are not limited to executing on any particular system or group of
systems. Further, aspects, functions, and processes may be
implemented in software, hardware or firmware, or any combination
thereof. Thus, aspects, functions, and processes may be implemented
within methods, acts, systems, system elements and components using
a variety of hardware and software configurations, and examples are
not limited to any particular distributed architecture, network, or
communication protocol.
[0186] Referring to FIG. 15, there is illustrated a block diagram
of a distributed computer system 1500, in which various aspects and
functions are practiced. As shown, the distributed computer system
1500 includes one or more computer systems that exchange
information. More specifically, the distributed computer system
1500 includes computer systems 1502, 1504, and 1506. As shown, the
computer systems 1502, 1504, and 1506 are interconnected by, and
may exchange data through, a communication network 1508. The
network 1508 may include any communication network through which
computer systems may exchange data. To exchange data using the
network 1508, the computer systems 1502, 1504, and 1506 and the
network 1508 may use various methods, protocols and standards,
including, among others, Fiber Channel, Token Ring, Ethernet,
Wireless Ethernet, Bluetooth, IP, IPV6, TCP/IP, UDP, DTN, HTTP,
FTP, SNMP, SMS, MMS, SS15, JSON, SOAP, CORBA, REST, and Web
Services. To ensure data transfer is secure, the computer systems
1502, 1504, and 1506 may transmit data via the network 1508 using a
variety of security measures including, for example, SSL or VPN
technologies. While the distributed computer system 1500
illustrates three networked computer systems, the distributed
computer system 1500 is not so limited and may include any number
of computer systems and computing devices, networked using any
medium and communication protocol.
[0187] As illustrated in FIG. 15, the computer system 1502 includes
a processor 1510, a memory 1512, an interconnection element 1514,
an interface 1516 and data storage element 1518. To implement at
least some of the aspects, functions, and processes disclosed
herein, the processor 1510 performs a series of instructions that
result in manipulated data. The processor 1510 may be any type of
processor, multiprocessor or controller. Example processors may
include a commercially available processor such as an Intel Xeon,
Itanium, Core, Celeron, or Pentium processor; an AMD Opteron
processor; an Apple A4 or A5 processor; a Sun UltraSPARC processor;
an IBM Power5+ processor; an IBM mainframe chip; or a quantum
computer. The processor 1510 is connected to other system
components, including one or more memory devices 1512, by the
interconnection element 1514.
[0188] The memory 1512 stores programs (e.g., sequences of
instructions coded to be executable by the processor 1510) and data
during operation of the computer system 1502. Thus, the memory 1512
may be a relatively high performance, volatile, random access
memory such as a dynamic random access memory ("DRAM") or static
memory ("SRAM"). However, the memory 1512 may include any device
for storing data, such as a disk drive or other nonvolatile storage
device. Various examples may organize the memory 1512 into
particularized and, in some cases, unique structures to perform the
functions disclosed herein. These data structures may be sized and
organized to store values for particular data and types of
data.
[0189] Components of the computer system 1502 are coupled by an
interconnection element such as the interconnection element 1514.
The interconnection element 1514 may include any communication
coupling between system components such as one or more physical
busses in conformance with specialized or standard computing bus
technologies such as IDE, SCSI, PCI and InfiniBand. The
interconnection element 1514 enables communications, including
instructions and data, to be exchanged between system components of
the computer system 1502.
[0190] The computer system 1502 also includes one or more interface
devices 1516 such as input devices, output devices and combination
input/output devices. Interface devices may receive input or
provide output. More particularly, output devices may render
information for external presentation. Input devices may accept
information from external sources. Examples of interface devices
include keyboards, mouse devices, trackballs, microphones, touch
screens, printing devices, display screens, speakers, network
interface cards, etc. Interface devices allow the computer system
1502 to exchange information and to communicate with external
entities, such as users and other systems.
[0191] The data storage element 1518 includes a computer readable
and writeable nonvolatile, or non-transitory, data storage medium
in which instructions are stored that define a program or other
object that is executed by the processor 1510. The data storage
element 1518 also may include information that is recorded, on or
in, the medium, and that is processed by the processor 1510 during
execution of the program. More specifically, the information may be
stored in one or more data structures specifically configured to
conserve storage space or increase data exchange performance. The
instructions may be persistently stored as encoded signals, and the
instructions may cause the processor 1510 to perform any of the
functions described herein. The medium may, for example, be optical
disk, magnetic disk or flash memory, among others. In operation,
the processor 1510 or some other controller causes data to be read
from the nonvolatile recording medium into another memory, such as
the memory 1512, that allows for faster access to the information
by the processor 1510 than does the storage medium included in the
data storage element 1518. The memory may be located in the data
storage element 1518 or in the memory 1512, however, the processor
1510 manipulates the data within the memory, and then copies the
data to the storage medium associated with the data storage element
1518 after processing is completed. A variety of components may
manage data movement between the storage medium and other memory
elements and examples are not limited to particular data management
components. Further, examples are not limited to a particular
memory system or data storage system.
[0192] Although the computer system 1502 is shown by way of example
as one type of computer system upon which various aspects and
functions may be practiced, aspects and functions are not limited
to being implemented on the computer system 1502 as shown in FIG.
15. Various aspects and functions may be practiced on one or more
computers having a different architectures or components than that
shown in FIG. 15. For instance, the computer system 1502 may
include specially programmed, special-purpose hardware, such as an
application-specific integrated circuit ("ASIC") tailored to
perform a particular operation disclosed herein. While another
example may perform the same function using a grid of several
general-purpose computing devices running MAC OS System X with
Motorola PowerPC processors and several specialized computing
devices running proprietary hardware and operating systems.
[0193] The computer system 1502 may be a computer system including
an operating system that manages at least a portion of the hardware
elements included in the computer system 1502. In some examples, a
processor or controller, such as the processor 1510, executes an
operating system. Examples of a particular operating system that
may be executed include a Windows-based operating system, such as,
the Windows-based operating systems, available from the Microsoft
Corporation, a MAC OS System X operating system or an iOS operating
system available from Apple Computer, one of many Linux-based
operating system distributions, for example, the Enterprise Linux
operating system available from Red Hat Inc., or a UNIX operating
system available from various sources. Many other operating systems
may be used, and examples are not limited to any particular
operating system.
[0194] The processor 1510 and operating system together define a
computer platform for which application programs in high-level
programming languages are written. These component applications may
be executable, intermediate, bytecode or interpreted code which
communicates over a communication network, for example, the
Internet, using a communication protocol, for example, TCP/IP.
Similarly, aspects may be implemented using an object-oriented
programming language, such as .Net, Java, C++, C# (C-Sharp),
Python, or JavaScript. Other object-oriented programming languages
may also be used. Alternatively, functional, scripting, or logical
programming languages may be used.
[0195] Additionally, various aspects and functions may be
implemented in a non-programmed environment. For example, documents
created in HTML, XML or other formats, when viewed in a window of a
browser program, can render aspects of a graphical-user interface
or perform other functions. Further, various examples may be
implemented as programmed or non-programmed elements, or any
combination thereof. For example, a web page may be implemented
using HTML while a data object called from within the web page may
be written in C++. Thus, the examples are not limited to a specific
programming language and any suitable programming language could be
used. Accordingly, the functional components disclosed herein may
include a wide variety of elements (e.g., specialized hardware,
executable code, data structures or objects) that are configured to
perform the functions described herein.
[0196] In some examples, the components disclosed herein may read
parameters that affect the functions performed by the components.
These parameters may be physically stored in any form of suitable
memory including volatile memory (such as RAM) or nonvolatile
memory (such as a magnetic hard drive). In addition, the parameters
may be logically stored in a propriety data structure (such as a
database or file defined by a user space application) or in a
commonly shared data structure (such as an application registry
that is defined by an operating system). In addition, some examples
provide for both system and user interfaces that allow external
entities to modify the parameters and thereby configure the
behavior of the components.
[0197] Having thus described several aspects of at least one
embodiment of this invention, it is to be appreciated various
alterations, modifications, and improvements will readily occur to
those skilled in the art. Such alterations, modifications, and
improvements are intended to be part of this disclosure, and are
intended to be within the spirit and scope of the invention.
Accordingly, the foregoing description and drawings are by way of
example only.
[0198] Various features and aspects of the present disclosure may
be used alone, in any combination of two or more, or in a variety
of arrangements not specifically discussed in the embodiments
described in the foregoing and is therefore not limited in its
application to the details and arrangement of components set forth
in the foregoing description or illustrated in the drawings. For
example, aspects descried in one embodiment may be combined in any
manner with aspects described in other embodiments.
[0199] Also, the concepts disclosed herein may be embodied as a
method, of which an example has been provided. The acts performed
as part of the method may be ordered in any suitable way.
Accordingly, embodiments may be constructed in which acts are
performed in an order different than illustrated, which may include
performing some acts simultaneously, even though shown as
sequential acts in illustrative embodiments.
[0200] Use of the ordinal terms such as "first," "second," "third,"
etc., in the claims to modify a claim element does not by itself
connote any priority, precedence, or order of one claim element
over another or the temporal or der in which acts of a method are
performed, but are used merely as labels to distinguish one claim
element having a certain name from another element having a same
name (but for use of the ordinal term) to distinguish claim
elements.
[0201] Also, the phraseology and terminology used herein is for the
purpose of description and should not be regarded as limiting. The
use of "including," "comprising," "having," "containing,"
"involving," and variations thereof herein, is meant to encompass
the items listed thereafter and equivalents thereof as well as
additional items.
* * * * *