Sign up to receive free email alerts when patent applications with chosen keywords are publishedSIGN UP

Abstract:

Described herein are techniques and mechanisms that facilitate the
creation of proposals and requests for proposals. According to various
embodiments, a request for proposals for action based on first input
provided by a first entity may be created. The request for proposals may
identify a business need associated with the first entity. The request
for proposals may be transmitted to a client machine via a network. The
client machine may be associated with a second entity invited to submit a
proposal in response to the request for proposals. A message from the
client machine may be received at the server. The message may include
second input for creating the proposal. The proposal may be created based
on the second input. The proposal may address the business need
identified in the request for proposals.

Claims:

1. A method comprising: creating, at a server, a request for proposals
for action based on first input provided by a first entity, the request
for proposals identifying a business need associated with the first
entity; transmitting the request for proposals to a client machine via a
network, the client machine being associated with a second entity, the
second entity being invited to submit a proposal in response to the
request for proposals; receiving a message from the client machine at the
server, the message including second input for creating the proposal; and
creating the proposal based on the second input, wherein the proposal
addresses the business need identified in the request for proposals.

2. The method recited in claim 1, wherein the request for proposals
comprises a document, and wherein the document describes the business
need and one or more criteria for responding to the request for
proposals.

3. The method recited in claim 2, wherein the document fits on a single
page, and wherein creating the document comprises organizing and
formatting the first input to fit on the single page.

4. The method recited in claim 2, the method further comprising: storing
the document on a storage medium.

5. The method recited in claim 1, wherein creating the request for
proposals comprises identifying one or more characteristics associated
with the business need, and determining suggested content to include in
the request for proposals based on the identified one or more
characteristics.

6. The method recited in claim 5, the method further comprising:
receiving user input for creating the request for proposals, and updating
the suggested content based on the received user input.

7. The method recited in claim 1, wherein creating the request for
proposals comprises determining one or more characteristics associated
with the request for proposals and identifying one or more entities that
match the one or more characteristics, and wherein the one or more
entities includes the second entity.

8. The method recited in claim 1, the method further comprising:
identifying an individual to review the created proposal; and
transmitting the created proposal to the individual for review.

9. The method recited in claim 8, the method further comprising:
receiving proposal feedback regarding the created proposal from the
individual; and storing the received feedback on a storage medium in
association with the created proposal.

10. The method recited in claim 1, the method further comprising:
identifying one or more recipients of the proposal, and transmitting the
proposal to the identified one or more recipients via the network.

11. A system comprising: a processor operable to create a request for
proposals for action based on first input provided by a first entity, the
request for proposals identifying a business need associated with the
first entity; a communications interface operable to: transmit the
request for proposals to a client machine via a network, the client
machine being associated with a second entity, the second entity being
invited to submit a proposal in response to the request for proposals,
and receive a message from the client machine, the message including
second input for creating the proposal; and a storage medium operable to
store the proposal created based on the second input, wherein the
proposal addresses the business need identified in the request for
proposals.

12. The system recited in claim 11, wherein the request for proposals
comprises a document, and wherein the document describes the business
need and one or more criteria for responding to the request for
proposals.

13. The system recited in claim 11, wherein the document fits on a single
page, and wherein creating the document comprises organizing and
formatting the first input to fit on the single page.

14. The system recited in claim 11, wherein creating the request for
proposals comprises identifying one or more characteristics associated
with the business need, and determining suggested content to include in
the request for proposals based on the identified one or more
characteristics.

15. The system recited in claim 14, wherein the processor is further
operable to update the suggested content based on user input received for
creating the request for proposals.

16. The system recited in claim 11, wherein creating the request for
proposals comprises determining one or more characteristics associated
with the request for proposals and identifying one or more entities that
match the one or more characteristics, and wherein the one or more
entities includes the second entity.

17. One or more computer readable media having instructions stored
thereon for performing a method, the method comprising: creating, at a
server, a request for proposals for action based on first input provided
by a first entity, the request for proposals identifying a business need
associated with the first entity; transmitting the request for proposals
to a client machine via a network, the client machine being associated
with a second entity, the second entity being invited to submit a
proposal in response to the request for proposals; receiving a message
from the client machine at the server, the message including second input
for creating the proposal; and creating the proposal based on the second
input, wherein the proposal addresses the business need identified in the
request for proposals.

18. The one or more computer readable media recited in claim 17, wherein
the request for proposals comprises a document, and wherein the document
describes the business need and one or more criteria for responding to
the request for proposals.

19. The one or more computer readable media recited in claim 18, wherein
the document fits on a single page, and wherein creating the document
comprises organizing and formatting the first input to fit on the single
page.

20. The one or more computer readable media recited in claim 17, wherein
creating the request for proposals comprises identifying one or more
characteristics associated with the business need, and determining
suggested content to include in the request for proposals based on the
identified one or more characteristics.

[0002] The present disclosure relates to the field of personal and
business planning and development, and more specifically to techniques
and mechanisms for preparing various types of proposals for action.

DESCRIPTION OF RELATED ART

[0003] Business plans and other types of project proposals are vital
communication tools in the business world. Companies and individuals must
be able to plan potential projects and subsequently communicate these
plans in a clear and coherent manner to potential investors and partners.
This is often done in the form of a written document outlining and
detailing the key elements of the project.

[0004] Although clear communication is important, time is also often
critical in making business decisions. A proposal or plan may be
comprehensive, but too cumbersome and lengthy to read thoroughly. A
person may not have time to digest all of the material. Key information
can become lost in verbiage and overlooked. As a result, a proposal may
be rejected not for failing to be a viable idea, but because it was not
communicated efficiently enough.

[0005] Establishing a business relationship is often a time-consuming,
inefficient, and imprecise process. For instance, employers and job
applicants often find it difficult to clearly define and communicate the
employment needs of the company and the capabilities and ideas of the job
applicant. Such difficulties cause problems such as unnecessary
unemployment and suboptimal matches between employer and job applicants.
Likewise, both individuals and organizations seeking to engage in
relationships such as contracts for procurement or service often find it
difficult both to succinctly and plainly describe the needs and abilities
of each party and to locate the best business partner for the
relationship.

SUMMARY

[0006] Described herein are methods, systems, devices, and computer
readable media that facilitate the creation of proposals and requests for
proposals. According to various embodiments, a request for proposals for
action based on first input provided by a first entity may be created.
The request for proposals may identify a business need associated with
the first entity. The request for proposals may be transmitted to a
client machine via a network. The client machine may be associated with a
second entity invited to submit a proposal in response to the request for
proposals. A message from the client machine may be received at the
server. The message may include second input for creating the proposal.
The proposal may be created based on the second input. The proposal may
address the business need identified in the request for proposals.

[0007] According to various embodiments, the request for proposals may
include a document. The document may describe the business need and one
or more criteria for responding to the request for proposals. In
particular embodiments, the document may fit on a single page, and
creating the document may include organizing and formatting input to fit
on the single page. The document may be stored on a storage medium.

[0008] According to various embodiments, creating the request for
proposals may include identifying one or more characteristics associated
with the business need and/or determining suggested content to include in
the request for proposals based on the identified one or more
characteristics. In addition, user input for creating the request for
proposals may be received, and the suggested content may be updated based
on the received user input.

[0009] According to various embodiments, creating the request for
proposals may include determining one or more characteristics associated
with the request for proposals and identifying one or more entities that
match the one or more characteristics. The one or more entities may
include the second entity.

[0010] According to various embodiments, an individual to review the
created proposal may be identified, and the created proposal may be
transmitted to the individual for review. Proposal feedback regarding the
created proposal may be received from the individual and stored on a
storage medium in association with the created proposal. In particular
embodiments, one or more recipients of the proposal may be identified,
and the proposal may be transmitted to the identified one or more
recipients via the network.

BRIEF DESCRIPTION OF THE DRAWINGS

[0011] The disclosure may best be understood by reference to the following
description taken in conjunction with the accompanying drawings, which
illustrate particular embodiments.

[0012]FIG. 1 shows an example of a method for providing a proposal system
performed in accordance with techniques and mechanisms described herein.

[0013] FIGS. 2 and 3 illustrate examples of a system that may be used in
accordance with techniques and mechanisms described herein.

[0014]FIG. 4 shows an example of a method for inviting one or more
individuals to create a proposal.

[0017] FIGS. 7-10 illustrate examples of a system that may be used in
accordance with techniques and mechanisms described herein.

DESCRIPTION OF EXAMPLE EMBODIMENTS

[0018] Reference will now be made in detail to some specific examples of
the invention including the best modes contemplated by the inventors for
carrying out the invention. Examples of these specific embodiments are
illustrated in the accompanying drawings. While the invention is
described in conjunction with these specific embodiments, it will be
understood that it is not intended to limit the invention to the
described embodiments. On the contrary, it is intended to cover
alternatives, modifications, and equivalents as may be included within
the spirit and scope of the invention as defined by the appended claims.

[0019] For example, some of the techniques of the present invention will
be described in the context of proposal documents, such as proposal
documents related to employment opportunities. However, it should be
noted that the techniques of the present invention apply to a wide
variety of different documents and communications. In the following
description, numerous specific details are set forth in order to provide
a thorough understanding of the present invention. Particular example
embodiments of the present invention may be implemented without some or
all of these specific details. In other instances, well known process
operations have not been described in detail in order not to
unnecessarily obscure the present invention.

[0020] Various techniques and mechanisms of the present invention will
sometimes be described in singular form for clarity. However, it should
be noted that some embodiments include multiple iterations of a technique
or multiple instantiations of a mechanism unless noted otherwise. For
example, a system uses a processor in a variety of contexts. However, it
will be appreciated that a system can use multiple processors while
remaining within the scope of the present invention unless otherwise
noted. Furthermore, the techniques and mechanisms of the present
invention will sometimes describe a connection between two entities. It
should be noted that a connection between two entities does not
necessarily mean a direct, unimpeded connection, as a variety of other
entities may reside between the two entities. For example, a processor
may be connected to memory, but it will be appreciated that a variety of
bridges and controllers may reside between the processor and memory.
Consequently, a connection does not necessarily mean a direct, unimpeded
connection unless otherwise noted.

[0021] Overview

[0022] Techniques and mechanisms described herein facilitate the creation
and publishing of requests for proposals (RFPs) by users acting as
individuals or representing organizations. The RFPs may then be published
and viewed by or transmitted to interested recipients. The recipients may
then create proposals in response to the RFPs. A proposal system for
facilitating the creation of RFPs and proposals generated in response to
RFPs may facilitate various types of business transactions.

[0023] According to various embodiments, a proposal system may provide a
platform for companies to publish RFPs for open positions or projects to
be filled. The proposal system may provide a platform for job seekers to
create and submit proposals or ideas in response to open RFPs. The
proposal system may facilitate the gathering of statistics and analytics,
such as information related to employment or company performance. The
proposal system may facilitate the development of new techniques for
matching business partners with each other, employees with employers, and
problems with solutions.

Example Embodiments

[0024] According to various embodiments, authoring and submitting a
proposal for employment may offer various advantages to job applicants in
comparison with sending a traditional resume. For example, a proposal may
allow a job applicant to present a compelling case for a company to hire
the applicant. The proposal may be used to show the prospective employer
exactly how the applicant will make the company better and more
successful. By presenting the applicant in a way that an ordinary resume
can't accomplish, a proposal may significantly increase the applicant's
chances of landing a job. Creating a proposal may also help give the
applicant helpful insights into the applicant's unique personal qualities
and life experiences, which may help the applicant better stand out as a
job candidate.

[0025] According to various embodiments, authoring an RFP and receiving
proposals for employment may offer various advantages to organizations in
comparison with traditional postings on job boards or other mechanisms
and techniques to alerting prospective job applicants to employment
opportunities. Traditional recruitment typically involves resumes. While
resumes often provide information regarding personal data and a
candidate's experience and knowledge, resumes typically provide little
detail regarding the candidate's mindset and attitude. In contrast to
resumes, proposals created in accordance with the techniques described
herein may be used to evaluate a candidate's abilities in comprehension,
analysis, synthesis, and evaluation. In order to solicit proposals, a
company may create a request for proposals that describe the challenges
and needs facing the organization. Then, the company will receive a
proposal from each job applicant that describes exactly how that job
applicant plans to solve the challenges and fulfill the needs described
in the RFP.

[0026] According to various embodiments, a proposal may include designated
content sections, which may appear in a designated order. For example, a
proposal may include Title and/or Subtitle sections that define the
proposal, Target and/or Secondary Target sections that identify the goals
of the proposal, a Rationale section that lays out the basic reasons why
the action is necessary, a Financial section that describes the financial
aspects of the deal, a Status section that describes a current state of
affairs, and/or an Action section that indicates exactly what the
proposer wants the recipient to do.

[0027] In some cases, the discussion of embodiments herein refers to
proposals and RFPs authored and processed for the purposes of connecting
job applicants with potential employers. However, according to various
embodiments, the techniques and mechanisms discussed herein may be used
to facilitate a wide variety of business transactions and relationships.
These transactions and relationships may include, but are not limited to,
employment opportunities, procurement contracts, service agreements,
consulting arrangements, and legal representation.

[0028] According to various embodiments, a proposal and/or an RFP may be
created in accordance with a designated format. In particular
embodiments, the format may limit both each proposal and each RFP to a
single page. Accordingly, some embodiments discussed herein and
illustrated in the drawings may refer to a one page proposal. However,
various types of formats and restrictions on proposals and RFPs may be
used. For example, proposals and/or RFPs may be limited to a different
length. As another example, proposals and/or RFPs may be created in
accordance with restrictions on the type and order of content included in
each document. As yet another example, in some embodiments formatting
characteristics such as content or length may serve as guidelines rather
than strict limits. In some embodiments, the types of formats and
restrictions used may be strategically determined based on factors such
as the type of information conveyed by the communications and the type of
industry in which the communications are conducted.

[0029] According to various embodiments, the infrastructure for providing
a proposal system may be configured in various ways. In particular
embodiments, the infrastructure may be provided via a cloud computing
framework. In a cloud computing framework, hardware and basic software
such as web server software may be provided in a scalable, on-demand
fashion by a third-party, while the service provider of the proposal
system provides the application logic and other high-level functionality
for generating the proposal system. Alternately, the infrastructure may
be provided via a more conventional computing framework, for example a
computing framework in which the hardware and/or basic software for
providing access to the system is controlled by the service provider of
the proposal system.

[0030]FIG. 1 shows a method 100 for a proposal system lifecycle,
performed in accordance with techniques and mechanisms described herein.
According to various embodiments, the method 100 may be used to
facilitate business transactions between entities. In order to help
provide structure to the interaction, a business entity may create a
request for proposals that includes information such as a business need
of the entity, parameters for fulfilling the business need, criteria for
submitting proposals in response to the RFP, and other such information.
Then, other entities may review the RFP and create and submit proposals
in response to the RFP. Finally, the creator of the RFP may review the
proposals and select one or more for adoption.

[0031] At 102, a request for proposals is created. According to various
embodiments, the request for proposals may identify a business need of an
entity. The request for proposals may also identify criteria for creating
proposals in response to the request for proposals. For instance, the RFP
may identify a deadline for submitting a proposal, one or more
requirements for the content of proposals, or one or more questions or
issues that the proposal should address.

[0032] At 104, the RFP is provided to one or more recipients. According to
various embodiments, the RFP may be provided to individuals who match
characteristics of the RFP. For instance, an RFP for a programming
position in an organization that focuses on software development in the
Java programming language may be targeted toward individuals with a
background in Java programming. A process for inviting one or more
individuals to respond to a request for proposals is discussed with
respect to FIG. 4.

[0033] At 106, the creation of one or more proposals in response to the
RFP is facilitated. According to various embodiments, each proposal may
be created based on user input provided by a proposal author. The
proposal author may designate content for inclusion in the proposal. The
system may assist with the creation of the proposal by providing
suggestions regarding the content and formatting of the proposal. A
process for creating a proposal is discussed with respect to FIG. 5.

[0034] At 108, the proposals are submitted to the creator of the RFP. In
particular embodiments, an author of a proposal may submit the proposal
to other individuals, such as colleagues or friends, for review. The
reviewers may provide comments, suggest edits to the proposal, recommend
the proposal for adoption, or otherwise review the proposal. Then, the
proposal may be transmitted to the creator of the RFP or to another
entity. A process for submitting the proposals is discussed with respect
to FIG. 6.

[0035] At 110, one or more of the proposals are selected for adoption.
According to various embodiments, the selection of one or more of the
proposals may involve operations performed by humans, by computer
programs, or by some combination thereof. For example, proposals may be
evaluated, ranked, or sorted by computing devices. Proposals may also be
evaluated, ranked, or sorted by human reviewers. In particular
embodiments, the authors of highly ranked proposals may be subjected to
an interview process. Based on the various stages and types of reviewing,
the entity who created the RFP may select one or more of the proposals
for adoption.

[0036]FIG. 2 shows a system 200 that may be used in accordance with
techniques and mechanisms described herein. According to various
embodiments, the system 200 may be used to generate, respond to,
evaluate, transmit, receive, and administer proposals and requests for
proposals (RFPs). The system 200 includes various modules for performing
operations related to proposal generation and processing. These modules
may be implemented on various computing devices in communication via a
network. In particular embodiments, some modules may be implemented on
the same computing device. Alternately, a module may be spread across
more than one computing device.

[0037] The system 200 includes a setup module 202, an administration
module 208, an RFP generation module 204, an RFP review module 206, a
proposal generation module 210, a management module 212, and an affiliate
program module 214. In some embodiments, a proposal system may include
operations not shown in FIG. 2. Alternately, a proposal system may not
include one or more of the modules shown in FIG. 2.

[0038] At 202, the setup module is shown. According to various
embodiments, the setup module may facilitate the registration process for
new users of the proposal system. The new users may be individuals,
companies, or individuals working on behalf of companies. The new users
may be creating RFPs, responding with proposals, or both.

[0039] According to various embodiments, the setup module 202 may also
facilitate the login process for users who already have accounts. In
order to log in to the proposal system 200, a user may need to provide
identification information. The specific identification required may be
strategically determined based on factors such as the degree of security
desired, the capabilities of the client device from which the user is
logging in, and the degree of convenience for the user. The type of
information that may be requested from the user may include, but is not
limited to: a user name, a password, a pass phrase, a personal
identification number (PIN), a cryptographic certificate, or biometric
information such as a fingerprint.

[0040] In some embodiments, the setup module may facilitate the
registration process for new users by allowing users to log in through a
third party account. For instance, a user may log in to a third party
system such as LinkedIn, Facebook, or Gmail. Then, the third party
service may transmit identification information for the user directly to
the proposal system, for instance at the user's request. The transmitted
identification information may be used to identify a previously created
user account or may be used to register a new account within the proposal
system. In particular embodiments, a user account within the proposal
system and a user account within a third party system such as LinkedIn
may be linked so that proposal-related actions may be integrated across
the different systems.

[0041] According to various embodiments, user accounts may provide various
features to users of the proposal system. For example, a user account may
be associated with a profile that includes the user's email address and
biographic data. A user account may be associated with a notification log
that identifies notification messages by or to the user such as emails,
Twitter messages (tweets), text messages, and messages sent via the
proposal system. A user account may allow the display of a user interface
for displaying activity metrics such as a number of proposals created, a
number of responses created, a number of views, and a number of jobs
trending. A user account may be associated with a number of social media
handles, such as Facebook, Twitter, and LinkedIn accounts. In particular
embodiments, associating the accounts in this way may allow the user to
publish proposals, requests for proposals, activity logs, and other
status updates to the activity feeds of any one of the user's social
networks, such as LinkedIn, Facebook, or Twitter. A user account may be
associated with one or more groups of users or organization accounts.

[0042] At 204, an RFP generation module is shown. According to various
embodiments, the RFP generation module may facilitate the creation,
editing, and review of requests for proposals. Each request for proposal
may be any request to receive proposed solutions to a problem facing an
individual, company, or other entity. For example, an RFP may be a
request to receive proposals for fulfilling an employment opportunity. As
another example, an RFP may be a request to receive proposals for a
service contract for a company. Using the RFP generation module 204, a
user may create a new RFP, edit or view an existing RFP, or provide
comments or otherwise review an RFP.

[0043] According to various embodiments, the RFP generation module 204 may
include various components. For example, the RFP generation module may
include a user interface component configured to receive information such
as content to include in an RFP, formatting options for formatting an
RFP, access policy options specifying access information such as who may
view or edit an RFP, and other such information. As another example, the
RFP generation module 204 may include a data management component for
storing the data that makes up an RFP. As yet another example the RFP
generation module 204 may include an RFP generation assistance component
operable to help users create an RFP in a standardized, easily readable
format. For instance, the RFP generation assistance component may analyze
user input to help the user create an RFP with clear, readable prose
constructed using well-understood terms and phrases. Also, the RFP
generation assistance component may analyze the formatting of the RFP to
help the user create a proposal that follows a standardized ordering or
fits within a size or length constraint.

[0044] According to various embodiments, the RFP generation system may
provide a user interface for accessing various types of features. For
example, a user dashboard may list RFPs created and published by the
user. Each RFP may be associated with information such as a description,
a number of views, and a number of responses. In particular embodiments,
the information presented in the user dashboard may be selected based on
various types of user characteristics, such as a user's identity, access
level, or organizational role.

[0045] According to various embodiments, an RFP upload interface may allow
the uploading of an RFP or other content in a PDF or other document
format. In particular embodiments, an RFP field generator may populate
user information fields with biographical information or other data
collected from uploaded documents in a PDF or other document format. For
instance, the proposal system may scan or process the document in order
to retrieve various types of information.

[0046] According to various embodiments, a proposal replies log may
provide a list for displaying and reviewing proposals submitted in
response to an RFP. Users may comment on each proposal publicly,
privately, or semi-privately. A log may provide an interface to request,
enter, and view RFP or proposal comments, interview feedback, proposal
scores, and other types of information. A log may be presented as part of
the user interface in the form of a dashboard displaying statistics
concerning the RFP.

[0047] According to various embodiments, an RFP generation system may
include one or more RFP tracking components. RFP tracking may include one
or more user interfaces for displaying and reviewing different stages of
the proposal generation, application, and review process. For instance,
RFP tracking may include a user interface to view workflow status
associated with an RFP. For example, a workflow status may indicate
timing information such as a creation date, a period of time the RFP has
been open, or a period of time remaining before the RFP is closed. As
another example, a workflow status may indicate approval information such
as whether an RFP has been approved or rejected, is pending review, or
has been flagged as requiring revisions. As yet another example, a
workflow status may indicate budgetary information such as whether the
RFP has been budgeted, what budget has been allocated for the RFP, and in
what time period the budgetary approval applies.

[0048] A proposal creator may include an interface such as one or more
forms or wizards to help the user create, edit, review, and publish an
RFP. An archiving interface may provide the ability to archive RFPs,
proposals, and other documents. An interview manager may provide an
interface to manage interviews, comments, proposal scores, and other such
information. An interview invitation interface may provide the ability
for a user viewing a proposal to send an invitation to the proposal
creator or another individual to participate in an interview regarding
the proposal. A proposal match interface may allow a user to select and
display proposals matching criteria such as content criteria and scoring
criteria.

[0049] At 206, a proposal review module is shown. According to various
embodiments, the proposal review module may facilitate the review of
proposals and/or RFPs. Reviewing a proposal or RFP may include viewing
the proposal or RFP, providing comments regarding the proposal or RFP, or
providing additional information for including with the proposal or RFP.
In some instances, access to a proposal or RFP may be limited by an
access policy, which may specify users or organizations who may take
various actions related to a proposal or RFP.

[0050] In one example, a user may be a member of a company responsible for
hiring a new employee. The user may then create a request for proposals
for prospective applicants to describe how they would perform in the role
of the new employee. In order to ensure that the RFP accurately describes
the challenges that the company faces that led to the need to hire a new
employee, the RFP may be reviewed by other individuals, such as the
user's supervisor or a human resources manager at the company. These
individuals may provide comments, suggest additional information for
including in the RFP, or edit the RFP directly.

[0051] According to various embodiments, the proposal review module may
facilitate the review of proposals provided in response to an RFP. For
example, a prospective employee may create a proposal to fill an
employment role at a company. Then, the prospective employee's friends or
colleagues may be invited to critique the proposal before the prospective
employee submits it. As another example, the author of an RFP may review
proposals created in response to the RFP. When the author identifies
suitable proposals, the author could initiate communications with the
proposer or refer the proposal for further processing, such as an
interview for a job candidate.

[0052] At 210, a proposal generation module is shown. According to various
embodiments, the proposal generation module may facilitate the generation
of proposals in response to an RFP created via the RFP generation module
204. The proposal generation module may allow a user to create a new
proposal, edit an existing proposal, review or comment on a proposal, or
submit a proposal to the creator of an RFP. As discussed with respect to
the RFP generation module 204, the proposal generation module 210 may
have various components, such as a user interface component, a data
management component, or a proposal generation assistance component.

[0053] In some embodiments, the proposal generation module may be
associated with a proposal tracking system configured to present various
types of information related to a generated proposal. For example, the
proposal tracking system may present information such as whether a
proposal has been accepted or rejected, has been flagged as needing
revisions, or is pending review. As another example, the proposal
tracking system may indicate status information associated with a
job-seeking candidate such as "rejected," "hired," "first phone screen",
or "first onsite interview," or "in need of additional documentation or
work samples."

[0054] At 212, a proposal management module is shown. According to various
embodiments, the proposal management module may facilitate the processing
of proposals created via the proposal generation module 210. Processing
may involve operations related to sorting, selecting, evaluating, and/or
commenting on proposals.

[0055] For example, an RFP for an employment opportunity at a company may
result in hundreds or thousands of proposals. In this case, an automated
process associated with the management module 212 may be used to identify
the most promising proposals. Then, those proposals may be further ranked
or sorted by users, such as hiring managers at the company who access the
proposals via the management module 212, to select a limited number of
candidates for interviewing. Finally, the candidates selected for
interviewing may be provided with a standardized interview process
involving the management module 212 to reduce bias in the hiring process
and to help identify the best candidate.

[0056] As another example, an RFP for a service contract may also generate
many different proposals. These proposals may include a variety of
information, such as proposed service contract terms. The management
module 212 may be used to aggregate, sort, and analyze this information
so that the proposed service contracts may be more easily compared. Next,
the management module 212 may be used to identify proposals that meet
designated criteria. Then, proposals that meet the designated criteria
may be reviewed by individuals, who may work together to select a
proposal for adoption.

[0057] At 208, the administration module is shown. According to various
embodiments, the administration module may facilitate operations, which
may include, but are not limited to: reporting, configuration, data
analysis, and the determination of statistics or trends related to data
accessible via the system. For example, the administration module may be
used to create reports on how many RFPs or proposals have been created,
which organizations are associated with the creation of RFPs or responses
to RFPs, and who should be billed for services provided via the proposal
system. As another example, the administration module may be used to
configure the proposal system, such as establishing parameter values for
logging into the system, registering new user accounts, creating RFPs,
creating proposals, reviewing proposals, and managing proposals. As yet
another example, the administration module may be used to analyze data
accessible via the proposal system. For instance, the administration
module may be used to identify trends in hiring by companies, statistics
describing the types of jobs being created, or analysis of the types of
problems facing companies.

[0058] According to various embodiments, the administration module may
facilitate reporting and data analysis specific to an RFP or users
associated with an RFP or open job position. For instance, a report may
be generated regarding the demographic characteristics of applicants
responding to a particular job posting. In some cases, companies may need
to report on demographic data voluntarily submitted by applicants such as
information regarding gender, race, veteran status, and disability
status.

[0059] In some embodiments, a report may be generated regarding the
activity log of users in the RFP process in order to track data such as
time-to-hire, number of interviews scheduled, number of applicants,
number of positions open by hiring manager, number of positions budgeted
per quarter, and remaining open headcount. For example, the proposal
system may track (e.g., for performance monitoring purposes) the activity
log of recruiters or hiring managers. As another example, the proposal
system may track the number of open positions per financial quarter, for
instance for financial planning and forecasting purposes.

[0060] At 214, the affiliate program module is shown. According to various
embodiments, the affiliate program module may be used to allow third
party software or services to interact with the proposal system. For
example, a company may wish to generate or receive RFPs and/or proposals
in a specialized format or with specialized branding. In this case, an
affiliate program or service may be employed to facilitate the production
of the RFPs and/or proposals. As another example, a third party system
may be used to distribute or promote an RFP, such as on an external
social network.

[0061] According to various embodiments, the affiliate program module 214
may communicate with the rest of the system in various ways. In
particular embodiments, the affiliate program module 214 may include a
communication interface or API. In this case, the third party software or
services may be located on remote systems and communicate with the
proposal system via a network. Alternately, some or all of the third
party software or services may be located on computing devices associated
with the proposal system 200. In this case, the affiliate program module
214 may include one or more computing devices, such as application
servers, under the control of the entity providing the proposal system.

[0062] FIG. 3 shows a system 300 that may be used in accordance with
techniques and mechanisms described herein. According to various
embodiments, the system 300 may be used to create and respond to RFPs in
the employment context. That is, the system 300 may facilitate the
creation of requests for and responses to proposals to fulfill an
employment need for a company.

[0063] The system 300 includes an applicant service provider (also
referred to herein as a proposal service) 302 and a marketplace 304. The
applicant service provider 302 includes modules operable to provide
services to job applicants, such as a proposal creation wizard 312 and a
storage system 314 such as a database. The marketplace 304 includes
modules operable to provide services to companies, such as a human
resources workbench module 318, an RFP creation wizard module 320, and a
communication module 322. A proposal analysis module 316 may facilitate
the transmission of information between the applicant service provider
302 and the marketplace 304. Various users, such as the job candidates
306 and 308 and the human resources manager 310 may interact with the
system 300.

[0064] According to various embodiments, the marketplace 304 may allow
users such as HR managers to create RFPs, to send RFPs to users, and to
review proposals generated in response to RFPs. At 310, a human resources
manager is shown interacting with the marketplace 304. The human
resources manager may create an RFP via the RFP creation wizard 320. The
RFP creation wizard 320 may be substantially similar to the RFP
generation module 204 discussed with respect to FIG. 2.

[0065] According to various embodiments, when an RFP is created via the
RFP creation wizard 320, one or more users may be invited to respond to
the RFP via the communications module 322. The communications module 322
may facilitate the transmission of the RFP via various communications
mediums. For instance, an invitation to respond to an RFP may be
transmitted via email, instant message, text message, or communication
via a social network such as LinkedIn, Twitter, or Facebook. As another
example, an invitation to respond to an RFP or job posting may be posted
to the company's or hiring manager's associated social network activity
feed such as, but not limited to, a LinkedIn page, a Facebook page, or a
Twitter account.

[0066] In particular embodiments, a user such as the human resources
manager 310 may identify one or more recipients of the RFP via a list or
other selection mechanism. Alternately, or additionally, the
communications module 322 may assist the user in identifying recipients.
For example, the communications module 322 may help the human resources
manager 310 identify users of the proposal system who may be well-suited
to submit a proposal in response to the RFP. As another example, the
communications module 322 may identify recipients who have been sent
similar proposals in the past or who have otherwise been previously
designated for receiving such RFPs.

[0067] In the example shown in FIG. 3, the HR manager provides a list of
e-mails to the communications module 322. Then, the communications module
sends a message via e-mail to the job seekers 306 and 308. The message
invites both candidates to submit a proposal in response to the RFP. The
candidates 306 and 308 may create and submit such a proposal via the
applicant service provider 302.

[0068] According to various embodiments, the applicant service provider
may provide a number of business functions with accompanying user
interfaces for job applicants to perform various operations. For example,
the applicant service provider may provide a user dashboard that lists
proposals created and submitted along with information such as a
description of each proposal and a number of user views of each proposal.
As another example, the applicant service provider may provide a proposal
creator, which may include an interface containing one or more forms or
guides to help the user create, edit, review, and publish a proposal. As
yet another example, the service provider may provide a proposal replies
log, which may allow users to list and review submitted proposals as well
as to privately and/or publically comment on each proposal. As still
another example, the service provider may provide an RFP browser that
allows users to search, browse, and filter RFPs to identify open RFPs to
which to respond.

[0069] According to various embodiments, the applicant service provider
302 is operable to provide various services to job seekers, such as the
candidates 306 and 308. For example, a user may be able to view the
number of recruiters who have viewed the applicant's proposals, a list of
open RFPs in response to which the user is creating proposals, a list of
comments that have been provided regarding the user's proposals,
suggested edits to the user's proposals, and other such information. As
another example, a user may be able to see a list of popular proposals or
new features.

[0070] According to various embodiments, the proposal creation wizard 312
may be used to help create an appropriate response to the RFP. For
example, the proposal creation wizard 312 may assist users in creating a
proposal that includes content responsive to the RFP. As another example,
the proposal creation wizard 312 may assist users in creating a proposal
in accordance with a standardized format, such as content arranged in a
particular order and/or content limited to a single page. The particular
format and content associated with the proposal may be strategically
determined based on factors such as the industry for which the proposal
is created, the company to which the candidates are applying, the RFP to
which the candidates are responding, and the type of information that is
intended to be included in the proposal. The proposal creation wizard 312
may be in at least some respects substantially similar to the proposal
generation module 210 discussed with respect to FIG. 2.

[0071] According to various embodiments, information received via the
proposal wizard 312 may be stored in the storage module 314. The storage
module 314 may include one or more databases, such as an Oracle database
or a SQL database. The storage module may include various types of
databases, such as a flat file database, a relational database, a cloud
database, an active database, a distributed database, or any other type
of database.

[0072] According to various embodiments, the information stored via the
storage module 314 may include various types of information. For example,
the storage module 314 may include raw data received via the proposal
wizard 312. As another example, the storage module 314 may include
completed proposals generated via the proposal wizard 312. As yet another
example, the storage module 314 may include biographic information
regarding the users who create proposals via the proposal wizard 312. The
biographic information may include information such as names, ages, email
addresses, sexes, mailing addresses, employment histories, information of
the type normally included in resumes, or any other information.

[0073] According to various embodiments, after proposals are created, they
may be analyzed via the proposal analysis module 316. The proposal
analysis module 316 may perform various operations such as matching and
sequencing the proposals. For example, the proposal analysis module 316
may identify RFPs in response to which a proposal may be submitted. As
another example, the proposal analysis module 316 may evaluate or rank
proposals to identify the best proposals submitted in response to an RFP.
As yet another example, the proposal analysis module may annotate or
otherwise comment on proposals.

[0074] According to various embodiments, the annotations, comments,
rankings, evaluations, and/or analysis may be provided to the user who
created the proposal, the company that receives the proposal, or any
other user. In this way, users may receive feedback on their proposals,
which may allow them to improve their proposals or identify other
potential recipients of their proposals. Alternately, or additionally,
recipients of the proposals may more easily identify the best proposals
for adoption or for further sorting.

[0075] According to various embodiments, analyzed or processed proposals
may be transmitted to companies for further evaluation. For example,
proposals may be transmitted to the human resources workbench module 318.
There human resources workbench may allow the proposals to be accessed or
evaluated by users such as the human resources manager 310, other users
within the company that generated the RFP, or users associated with third
party entities such as companies who evaluate proposals or assist in the
hiring process. For instance, the human resources manager 310 may review
the proposals submitted to the human resources workbench module 318 and
select proposals for further analysis or processing. In the example shown
in FIG. 3, the human resources manager 310 selects the proposal created
by the candidate 308. Then, the candidate 308 is sent a message
containing an invitation to interview with the company. The operations
performed via the human resources workbench module 318 may be at least in
part substantially similar to the operations performed via the management
module 212 discussed with respect to FIG. 2.

[0076] According to some embodiments, the evaluation of proposals may
involve identifying one or more evaluators at a company responsible for
evaluating the received proposal. Identifying an evaluator may involve
designating an individual, a team, a computer program, or an
organizational role responsible for reading and evaluating the proposal.
The proposal system may facilitate the identification of an evaluator by
name, email address, employee ID, department code, or any other
designator. In particular embodiments, evaluators may be identified
automatically, manually, or some combination thereof. When an evaluator
is identified, the proposal system may facilitate notifying the
evaluator, for instance transmitting a message requesting that the
evaluator evaluate the proposal.

[0077] According to various embodiments, the human resources workbench 318
may provide a user interface for viewing various types of information,
for example, a user such as the human resources manager 310 may view
information such as the number of candidates who have responded to an
RFP, a number of days remaining for responding to an RFP or proposal, a
list of new proposals submitted in response to RFPs, a list of comments
to RFPs, and a number of direct messages transmitted via the proposal
system. In particular embodiments, messages may be transmitted between
any users or organizations registered with the proposal system.

[0078] According to various embodiments, the human resources workbench
module 318 may facilitate further evaluation of the candidates who
created proposals via the proposal wizard 312. For instance, the human
resources manager 310 may select a number of the candidates for
interviewing. Then, the human resources manager 310 may select or create
a number of interview questions for posing to the selected candidates.
The candidates may then be interviewed in various ways. For example, the
candidates may receive the interview questions via email and provide
responses to the human resources workbench module 318. As another
example, the candidates may be interviewed by the human resources manager
310. As yet another example, the candidates may be interviewed by another
entity such as an individual associated with a third party interview
service or with the applicant service provider 302. The candidates
responses may be stored, for instance via the human resources workbench
module 318 and/or the storage module 314. In this way, the human
resources manager 310 may analyze and evaluate the responses to select
the best candidate.

[0079]FIG. 4 shows an example of a method 400 for inviting one or more
individuals to create a proposal. According to various embodiments, a
proposal may be a future-oriented document that describes a solution to
the business needs of an entity. The proposal may include information
such as answers to questions included in an RFP, biographic information
regarding the proposal creator, a proposed course of action, a rationale
for proposals and answers included in the RFP, financial information
about the proposed course of action, status information, and other such
business information.

[0080] In order to elicit proposals, an entity may first create an RFP.
The RFP may include information intended to be used by the recipient to
create a proposal in response. In particular embodiments, the RFP may
include information such as questions, problems, criteria for responses
to the RFP, deadlines, information regarding the creator of the RFP,
criteria for proposed solutions to the problems identified in the RFP,
and other relevant information.

[0081] At 404, one or more characteristics associated with the RFP are
identified. The characteristics may include any information that may be
used to help select individuals to receive the RFP. For instance, the
creator of the RFP may identify characteristics that an author of a
response to the RFP should possess, such as experience in a particular
programming language, a degree in a particular subject area, or a
designated number of years of professional experience. As another
example, the creator of the RFP may identify a particular type of
industry, professional organization, or social networking group to which
an author of a response to the RFP may belong to, such as a legal bar
association or industry-specific LinkedIn professionals group.

[0082] At 406, one or more individuals who match the characteristics
determined in operation 404 are identified. According to various
embodiments, individuals may be identified at least in part based on
computer software. For example, one or more criteria for selecting
individuals may be determined based on the RFP. Then, an algorithm may
analyze data regarding users of the proposal system, data regarding users
of social networking systems, resume data, or other information to
identify individuals who match the identified criteria.

[0083] In particular embodiments, individuals may be identified based at
least in part based on user input. For instance, the creator of the RFP
may indicate individuals from whom proposals should be solicited. In some
cases, the individuals may be identified based on recommendations
provided by others.

[0084] At 408, an invitation to create a proposal is transmitted to the
identified individuals. According to various embodiments, the invitation
may be transmitted to an individual via a technique appropriate to that
individual. For instance, an e-mail may be transmitted when an e-mail
address for the individual is available. For an individual identified via
a social network such as LinkedIn, a message may be transmitted via that
social network.

[0085] According to various embodiments, the invitation to create a
proposal may include various types of information about the RFP. For
instance, the invitation may identify a general subject of the RFP, a
creator of the RFP, a deadline for responding to the RFP, and other such
information. The invitation may also identify a reason for selecting the
recipient to receive the invitation. For instance, the invitation may
indicate a user who recommended the recipient.

[0086] In some cases, an RFP may be kept private. Then, the recipients of
the RFP may be sent the RFP itself or a private link to access the RFP
via a network such as the Internet. In other cases, an RFP may be
published. Then, a specific invitation to respond to the RFP may be
transmitted to the identified individuals, but other individuals not
specifically invited may also access and submit responses to the RFP.

[0087]FIG. 5 shows an example of a method 500 for creating a proposal. In
some instances, the method 500 may be used to create a proposal in
response to receiving an invitation to response to an RFP. In other
cases, the method 500 may be used to create a proposal for other
purposes, such as to submit in response to a published RFP or to submit
unsolicited to a business entity.

[0088] At 502, a request to create a proposal in response to an RFP.
According to various embodiments, the request may be received at a server
configured to provide a proposal system. The request may be transmitted
from a client machine associated with a user of the proposal system. The
user may provide identifying information, such as a login and password.
In particular embodiments, the request may identify a particular RFP to
which the proposal is intended to response.

[0089] At 504, one or more characteristics of the RFP are identified.
According to various embodiments, characteristics of the RFP may include
any features that may be used to help the proposal creator prepare the
proposal. For instance, the characteristics may identify an entity that
created the RFP, an industry in which the entity operates, a set of
sections that are included in the RFP, a question posed or issue raised
in the RFP, or other such information.

[0090] At 506, a proposal template including suggested proposal content is
presented. According to various embodiments, the proposal template may be
presented in a user interface for creating a proposal. The proposal
template may include suggested text, section headings, and other content
for creating the proposal. The user interface may be presented in a web
browser that may be displayed at a client machine. The user interface may
be capable of receiving input for editing or updated the proposal.

[0091] In particular embodiments, the suggested content may be selected
based on the characteristics identified in operation 504. For example, if
a particular industry is identified as a characteristic, then the
suggested content may include information related to the identified
industry. As another example, if the RFP asks a question, then the
suggested content may include a stub section or sentence that includes
the beginning of an answer to the question. As yet another example, if
the RFP requests a solution to a particular problem, then the suggested
content may include a prompt for the user to identify technologies,
techniques, or mechanisms for solving the problem.

[0092] According to various embodiments, the suggested content may be
identified in various ways. In some cases, the suggested content may be
selected based on an algorithm. For example, the suggested content may be
identified based on content included in successful, previously analyzed
proposals that were created via the proposal system. In some cases, the
suggested content may be selected based on input provided by an
individual. For example, the suggested content may be identified based on
suggestions or material provided by expert proposal writers.

[0093] In particular embodiments, the content suggested within the
template may be flagged as having been automatically generated. For
instance, suggested content may be presented in a light gray font, while
content provided by the proposal creator may be presented in a black
font.

[0094] At 508, user input for creating or editing a proposal is received.
According to various embodiments, the user input may contain content for
including in the proposal. For instance, the user input may contain text
for inclusion in one of the sections contained in the template. The user
input may be transmitted from a client machine and may be entered in a
user interface provide via the proposal system.

[0095] At 510, the proposal template is updated to include updated
suggestions for proposal content. In many respects, the operation 510 may
be substantially similar to the operation 506. However, in operation 510,
the suggestions for proposal content may be updated to reflect the user
input provided in operation 508. For example, the initial template may
include suggested proposal content that is relatively generic. However,
after the proposal author identifies information such as an industry to
which the proposal relates, the suggested content may be updated to
include suggestions that are specific to the information provided.

[0096] At 512, a determination is made as to whether to continue to edit
the proposal. According to various embodiments, the proposal may be made
based on user input. For instance, the author of the proposal may
indicate that the proposal is completed. The proposal may be completed
when content is provided for each of the sections in the proposal.

[0097] At 514, the created proposal is stored. In particular embodiments,
the created proposal may be stored in a document format such as portable
document format (PDF). The created proposal may be stored in a storage
system such as the database systems discussed with respect to FIGS. 2-3
and 7-10.

[0098] According to various embodiments, the information used to create
the proposal may also be stored. For instance, the information associated
with each section of the proposal may be stored separately. When a
proposal has lists of information, each entry in the list may be
separately stored. In particular embodiments, user input used to create
the proposal may be stored. By storing various types of information
related to the proposal, the information may be more readily searched,
sorted, and filtered. Further, additional recipients for a proposal may
be more easily selected based on the proposal information.

[0099]FIG. 6 shows an example of a method 600 for submitting a proposal.
According to various embodiments, the method 600 may be used to elicit
comments or review of the proposal, to finalize the proposal for
presentation, and to submit the proposal to one or more recipients.

[0100] At 602, a request to process a proposal for submission is received.
The request may be received from a client machine associated with a user
such as the proposal author. The request may indicate that the user has
finished editing the proposal and is prepared to submit it to a
recipient.

[0101] At 604, an individual is identified for reviewing the proposal. In
particular embodiments, the creator of the proposal may identify the
individual. For instance, the individual may be a friend, colleague,
mentor, or business partner of the individual. By requesting review of
the proposal from such a person, the proposal creator may help to ensure
that the proposal fully and accurately reflects the creator's abilities
and ideas.

[0102] According to various embodiments, the proposal system may recommend
the individual for reviewing the proposal. For example, the proposal
system may recommend one of the individual's contacts based on
algorithmic analysis. That is, an algorithm may be used to select
particular people known to the proposal creator who may have skills or
experience that would be particularly useful for reviewing the content
included in the proposal. As another example, the proposal system may
recommend another individual, such as a professional reviewer. A
professional reviewer may be able to provide objective analysis of the
proposal. For instance, a professional reviewer may be able to provide
feedback as to whether the proposal appears professional, is responsive
to a particular RFP, or has other objectively desirable qualities.

[0103] At 606, the proposal is transmitted to the identified individual.
According to various embodiments, the individual may be sent the proposal
in a message or may be sent a message including a link to access the
proposal. The proposal may be transmitted via e-mail, via a social
messaging site, or via any other contact information that can be used to
communicate with the individual.

[0104] According to various embodiments, the proposal may be transmitted
in conjunction with instructions explaining how to review the proposal. A
user interface for reviewing the proposal may also be provided. The user
interface may allow the individual to provide comments regarding the
proposal, edit the proposal, or recommend the proposal to someone else.

[0105] At 608, input from the identified individual is received and
incorporated. In particular embodiments, the input may spur changes to
the proposal. For instance, the inputs may be edits to the proposal or
comments that suggest changes. In this case, the creator of the proposal
may choose to perform some of the operations discussed with respect to
FIG. 5. For example, the creator may provide user input to the proposal,
seek content suggestions from the proposal system, and store the edited
proposal.

[0106] In particular embodiments, the input may be a recommendation or an
endorsement of the proposal. As discussed herein, a proposal may be a
forward-looking description for a proposed course of action. Thus, a
recommendation or an endorsement of the proposal does not constitute
merely an endorsement of the author of the proposal, but of the course of
action itself. For example, rather than merely endorsing a candidate
applying to a job, the recommender can vouch that the candidate is
capable of performing the tasks and actions that the candidate proposes
in the proposal. As another example, rather than merely endorsing a
company bidding for a procurement or service contract, the endorser can
vouch that the company is capable of fulfilling the obligations outlined
in the proposal.

[0107] In particular embodiments, a recommendation or an endorsement may
be attached or linked with the proposal. For instance, when the proposal
is transmitted to or accessed by a recipient, the recommendation or
endorsement may also be presented. The recommendation may identify the
recommender. In some cases, the recommendation may include a comment or
other content such as a short statement of recommendation.

[0108] At 610, a determination is made as to whether to identify
additional recipients for recommending the proposal. According to various
embodiments, various criteria may be used to determine whether to
identify additional recipients. For example, additional recipients may be
identified until the creator of the proposal provides an indication. As
another example, additional recipients may be identified until a
designated number of recommendations or endorsements have been reached.
For instance, the proposal system may seek to ensure that a proposal is
reviewed by at least one professional reviewer and a designated number of
the proposal creator's colleagues and business partners.

[0109] At 612, one or more recipients of the proposal are identified.
According to various embodiments, recipients may be identified in
different ways. For instance, one recipient may be the creator of an RFP
to which the proposal is responding. In some cases, the creator of the
proposal may identify or select other recipients of the proposal. In
other cases, the proposal system may recommend recipients to the creator
of the proposal. For example, the proposal system may analyze the
proposal to determine its characteristics and then select likely
recipients.

[0110] At 614, the proposal is transmitted to the identified recipients.
According to various embodiments, transmitting the proposal to the
identified recipients may involve one or more processing operations. For
example, the information used to create the proposal may be stored as a
document such as a PDF document. As another example, the proposal creator
may be asked to agree with legal terms related to the use, creation, or
submission of the proposal. As yet another example, the proposal creator
may be asked to select a format or mechanism for storing or transmitting
the proposal.

[0111] According to various embodiments, the operation shown in FIG. 6 or
other flowchart figures may be performed in a different order. For
example, in FIG. 6, more than one individual may be identified at one
time for reviewing the proposal. In this case, the operations 604-610 may
be performed in parallel rather than in series.

[0112]FIG. 7 shows one example of a system 700 that may be used in
accordance with techniques and mechanisms described herein. The system
700 represents the conceptual architecture of at least a part of the
proposal system, configured in accordance with one or more embodiments.
The system 700 includes a load balancer 702, web servers 704, 706, and
708, a file server 710, a MySQL database server 712, an Oracle database
server 714, and storage modules 716 and 718.

[0113] According to various embodiments, the system 700 may be operable to
provide services via a network such as the Internet. For instance, the
system 700 may be operable to provide the services discussed with respect
to the system 200 shown in FIG. 2 and/or the system 300 shown in FIG. 3.
The system 700 may be operable to facilitate operations such as
registering users, logging users onto the system, generating RFPs or
proposals, reviewing RFPs or proposals, analyzing or processing RFPs or
proposals, and/or managing or administering the system.

[0114] According to various embodiments, the system 700 may be hosted on a
cloud-computing architecture. Cloud-computing providers allow the rapid
deployment and hosting of a set of web applications. Further,
applications hosted in a cloud environment are readily scalable as the
applications and usage grows. Employing servers configured for cloud
computing may facilitate a just-in-time infrastructure in which servers
and instances may be self-provisioned based on factors such as the growth
and demand of the applications.

[0115] According to various embodiments, the load balancer 702 may be
operable to distribute the communications and/or computing load
associated with the system among several web servers. As part of this
process, the load balancer may receive requests via a network such as the
Internet. Then, the load balancer may select a web server for handling
the request. The load balancer may select a web server based on an amount
of traffic being handled by the different web servers, a number of
previous requests sent to a web server, a status condition reported by a
web server, or any other criteria. In particular embodiments, after the
load balancer directs a request to a particular web server, the web
server may establish a communication session with the requesting machine.
Then, further communications may be carried out directly between the
requesting machine and the web server, bypassing the load balancer 702.

[0116] The system 700 includes the web servers 704-708. According to
various embodiments, each web server may be a combination of software and
hardware operable to receive requests via a network and transmit
responses to at least some of those requests. For instance, a web server
may receive a request to display a web page, such as a web page
displaying a user interface for generating an RFP or a proposal. In order
to respond to the requests, the web servers may communicate with other
computing devices on the network, such as application servers and
database servers. The web servers may employ proprietary and/or
non-proprietary web server software, such as web server software
available from Microsoft or from the Apache Software Foundation. Although
the system 700 shown in FIG. 7 includes three web servers, various types
and numbers of web servers may be employed. The types and numbers of web
servers used may be strategically determined based on factors such as the
amount and type of traffic handled by the web servers.

[0117] According to various embodiments, the file server 710 may be
operable to store files that may be transmitted by the web servers in
response to requests received via a network. For example, the file server
710 may store relatively static web pages that may be provided to client
machines relatively unchanged. These static web pages may be cached for
faster delivery to users. As another example, the file server 710 may
store relatively dynamic web pages that may be modified based on dynamic
information, such as information retrieved from the database servers 712
and 714.

[0118] According to various embodiments, the database servers 712 and 714
may handle requests to retrieve information stored in a database or to
store information in a database. In particular embodiments, different
types of database servers may be used for different types of tasks. For
example, the MySQL database server 712 may be used for storing dynamic
data related to the user interface. As another example, the Oracle
database server 714 may be used for storing business data. The types and
numbers of database servers used may be strategically determined based on
the type of information stored in the databases and the types of
relationships between the information.

[0119] According to various embodiments, the storage modules 716 and 718
may each include one or more storage devices configured for storing data.
At least some of the data stored in the storage modules may be stored in
accordance with a database format associated with a database server. For
instance, the storage module 716 may store information in accordance with
a MySQL database format and the storage module 718 may store information
in accordance with the Oracle database format.

[0120] According to various embodiments, the modules and components shown
in FIG. 7 may be arranged in various ways. For example, some modules or
components may be located in different physical devices that communicate
via a network. As another example, some modules or components may be
located in the same physical machine. As discussed herein, the system 700
is an example of a system that may be used, and systems operable to
perform similar operations may include various numbers and types of
modules and components.

[0121] FIG. 8 shows a system 800 that may be used in accordance with
techniques and mechanisms described herein. The system 800 shows a
cloud-based infrastructure for providing the services related to
generating RFPs and proposals. According to various embodiments, various
providers of cloud-based infrastructures may be used. The system 802
includes a DNS server 802, a load balancer 804, a first group of web
servers 806, a second group of web servers 808, a master database server
812, a standby database server 814, and storage modules 816 and 818.

[0122] According to various embodiments, the DNS server 802 may receive
communications and identify a destination address for the communications.
The load balancer 804 may select a web server for handling the traffic to
help avoid or reduce network congestion. The web servers may be divided
into different groups, such as groups based on geographic region, which
may reduce network congestion as well as provide protection against
failure at specific locations.

[0123] According to various embodiments, each web server may include a
real and/or virtual server that can be configured based on various
criteria, such as the computing needs of the application running on the
server. Each web server may receive network communications, process the
communications to prepare a response, perform any necessary
communications with other servers such as application servers or database
servers, and transmit the response. In some instances, some web servers
may act as application servers. Application servers may server web pages
as well or may provide information to other servers for serving web
pages.

[0124] According to various embodiments, the master database server 812
may organize data via a relational database, with the standby database
server 814 performing backup functions. In particular embodiments, the
database servers may store information in two or more types of databases.
For example, MySQL databases may be used to store information such as
graphical user interface (GUI) data and web analytics data, while Oracle
databases may be used to store information such as business data and
domain data.

[0125] According to various embodiments, the data accessed via the
database servers may be stored in the storage modules 816 and 818. The
storage modules 816 and 818 may provide a durable, distributed mechanism
for storing host files, database files, eternal files such as PDFs and
images, and any other type of files.

[0126]FIG. 9 shows a system 900 that may be used in accordance with
techniques and mechanisms described herein. The system 900 shows the
enforcement of a security protocol to protect against malicious or
inadvertently dangerous network traffic. The system 900 includes one or
more web servers 902, one or more application servers 904, and one or
more database servers 906. Web traffic 910 and administration traffic 912
may be transmitted through a firewall 908. By routing traffic through a
firewall, the servers such as web servers, application servers, and
database servers may be protected.

[0127] According to various embodiments, the servers shown in FIG. 9 may
be substantially similar to servers shown in other figures. For example,
the web servers 902 may be substantially similar to the web servers 710
discussed with respect to FIG. 7. As another example, the database
servers 906 may be substantially similar to the database servers 712 and
714. As yet another example, the application servers 904 may facilitate
the type of operations discussed with respect to the systems 200 and 300
shown in FIGS. 2 and 3.

[0128] According to various embodiments, web traffic may include
communications with client machines associated with users such as RFP and
proposal authors. This web traffic may be transmitted via a protocol such
as HTTP or HTTPS. The web traffic may be received at the web servers 902.
In some instances, responses to requests transmitted via web traffic may
be provided by a web server alone. For example, a request for a static
web page such as a login page may in some instances be provided without
accessing an application server. In some instances, providing responses
to some requests may interact with an application server. For example, a
request to edit an RFP based on user input may involve transmitting a
message to an application server to perform the requested task. In some
instances providing responses to some requests may involve transmitting a
message to a database server. For example, a request to view an existing
RFP may involve retrieving the RFP from a database.

[0129] According to various embodiments, administrative traffic may
involve communications related to configuration, analysis, forecasting,
or other administrative operations. Administrative traffic may be routed
through the firewall 908 directly to the application servers 904.

[0130] According to various embodiments, the firewall 908 may include
hardware and/or software. The firewall 908 may help to control incoming
and/or outgoing network traffic. For example, the firewall 908 may
analyze data packets and determine whether each packet should be allowed
to pass through the firewall. The firewall 908 may function as a bridge
between the internal network, which may be assumed to be secure and
trusted, and an external network such as the internet, which is not
assumed to be secure and trusted.

[0131]FIG. 10 illustrates one example of a server. According to
particular embodiments, a system 1000 suitable for implementing
particular embodiments of the present invention includes a processor
1001, a memory 1003, an interface 1011, and a bus 1015 (e.g., a PCI bus
or other interconnection fabric) and operates as a streaming server. When
acting under the control of appropriate software or firmware, the
processor 1001 is responsible for modifying and transmitting live media
data to a client. Various specially configured devices can also be used
in place of a processor 1001 or in addition to processor 1001. The
interface 1011 is typically configured to send and receive data packets
or data segments over a network.

[0132] Particular examples of interfaces supported include Ethernet
interfaces, frame relay interfaces, cable interfaces, DSL interfaces,
token ring interfaces, and the like. In addition, various very high-speed
interfaces may be provided such as fast Ethernet interfaces, Gigabit
Ethernet interfaces, ATM interfaces, HSSI interfaces, POS interfaces,
FDDI interfaces and the like. Generally, these interfaces may include
ports appropriate for communication with the appropriate media. In some
cases, they may also include an independent processor and, in some
instances, volatile RAM. The independent processors may control
communications-intensive tasks such as packet switching, media control
and management.

[0133] According to various embodiments, the system 1000 is a server that
transmits and receives communications via a network such as the Internet.
In particular embodiments, the system 1000 may be configured as a
database server, a web server, an application server, a file server, or
any other server. The system 1000 may be in communication with client
machines, such as desktop computers, laptop computers, mobile devices,
smart televisions, or other servers.

[0134] Any of the software components or functions described in this
application may be implemented as software code to be executed by a
processor using any suitable computer language such as, for example,
Java, C++ or Perl using, for example, conventional or object-oriented
techniques. The software code may be stored as a series of instructions
or commands on a computer readable medium for storage and/or
transmission, suitable media include random access memory (RAM), a read
only memory (ROM), a magnetic medium such as a hard-drive or a floppy
disk, or an optical medium such as a compact disk (CD) or DVD (digital
versatile disk), flash memory, and the like. The computer readable medium
may be any combination of such storage or transmission devices. Computer
readable media encoded with the software/program code may be packaged
with a compatible device or provided separately from other devices (e.g.,
via Internet download). Any such computer readable medium may reside on
or within a single computer program product (e.g. a hard drive or an
entire computer system), and may be present on or within different
computer program products within a system or network. A computer system
may include a monitor, printer, or other suitable display for providing
any of the results mentioned herein to a user.

[0135] Although a particular server is described, it should be recognized
that a variety of alternative configurations are possible. For example,
some modules such as a report and logging module and a monitor may not be
needed on every server. Alternatively, the modules may be implemented on
another device connected to the server. In another example, the server
may not include an interface to communicate with a particular component
or device and may instead include the component or device itself. A
variety of configurations are possible.