Skip to content

akifitu/upstash_quick_apply

Repository files navigation

Record.mov

Contents

Project Description

The tool is a chatbot that collects job applications through a conversational interface. It begins by greeting the candidate and sequentially asking customized prescreening questions defined by the recruiter.

Candidate answers are evaluated in real-time. A scoring system, configurable via job-config.json, allows recruiters to assign point values to specific answers. Based on this, a candidate score out of 100 is calculated and included in both the recruiter email and the Google Sheet entry.

After the questions, the candidate is prompted to upload their CV in PDF format, which is then stored in a designated Google Drive folder.

The assistant also supports candidate queries about the company or position by referencing provided documents. If an answer cannot be derived from the documents or context, the assistant notifies the recruiter instead of fabricating a response.

All conversations are saved to Upstash Redis for session memory, and document content is indexed using Upstash Vector to support contextual retrieval during chats.

Candidate answers are stored in a Google Sheet file.
Company documents are stored in Upstash Vector.
Chat history is stored in Upstash Redis.
The users need to provide a JSON to configure the chatbot. (job-config.json)

A Dark Mode feature is also available, allowing users to toggle between light and dark themes during the interaction. The user interface is mobile responsive and adapts gracefully to small screens.

Feel free to create issues on the repository.

Prerequisities

  1. Create an Upstash Vector Index.
  2. Create an Upstash Redis Database.
  3. Get an OpenAI API Key.
  4. Get an email address and a password. (Provide the email address, password, and email service type while creating the .env file.)
  5. Create a Google service account and enable Google Sheets and Google Drive API. (Provide service account email to GOOGLE_CLIENT_EMAIL and private key to GOOGLE_PRIVATE_KEY while creating the .env file.)
  6. Fill and upload the job-config.json file to Google Drive.
  7. Create a folder on Google Drive to receive uploaded CVs.
  8. Create a Google Sheets document to store applicant answers

How to Install

To install the project on your local device in order to make changes or run it, you can follow these steps:

  1. Install the source code to your device
git clone [email protected]:upstash/QuickApply.git
  1. Go to the project folder
cd QuickApply
  1. Install next if not installed already
npm install next
  1. Create a .env file and fill it with your API keys.
# .env

UPSTASH_REDIS_REST_URL="..."
UPSTASH_REDIS_REST_TOKEN="..."
OPEN_AI_API_KEY="..."
UPSTASH_VECTOR_REST_URL="..."
UPSTASH_VECTOR_REST_TOKEN="..."
EMAIL="..."
EMAIL_PASSWORD="..."
EMAIL_SERVICE="gmail"
GOOGLE_PRIVATE_KEY="..."
GOOGLE_CLIENT_EMAIL="..."
GOOGLE_SHEET_ID="..."
GOOGLE_DRIVE_ID="..."
MODEL_NAME="..."
CONFIG_FILE_ID="..."
  1. Run the project
npm run dev
  1. Go to https://localhost:3000/

How to Use

Once the program is running, the AI assistant greets the user and sequentially asks predefined prescreening questions. Afterward, the user is prompted to upload their CV.

Based on the answers, a score out of 100 is calculated by comparing the responses against the configured scoring rules in the job-config.json. This score, along with the answers, is sent via email to the hiring manager and saved to a Google Sheet.

Adsız tasarım

Sheet

After the CV is uploaded, the user may ask follow-up questions about the job. The assistant answers based on the provided documents and context, or escalates to the manager if needed. The application process is completed when the user confirms there are no further questions.

A Dark Mode feature is also available, allowing users to toggle between light and dark themes during the interaction.

About

Quick Apply app for HR powered by AI and Upstash redis and vector.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •