Author: Carlos J. Ramirez
Tech Assessment Agent based on AI that completing a Review Report from provided interview notes (whiteboard and behavioral interviews), suitable for software engineers and developers.
It consists of n8n workflows that runs the Technical Assessment Agent, manages conversation history and provide a Chat interface for:
-
Webhook Endpoint
- Accepts POST requests with authentication
- Processes incoming queries with user and session information
- Provides secure communication via header authentication
-
Input Processing
-
Extracts key fields from incoming requests:
For n8n:
- sessionId: Current session identifier
- action: The action to be performed. E.g.
sendMessage - chatInput: The user's question or command
For Ottomator:
- query: The user's question or command
- user_id: Unique identifier for the user
- request_id: Request tracking ID
- session_id: Current session identifier
-
-
Database Integration
- Uses Supabase for message storage
- Records both user messages and AI responses
- Maintains conversation history with metadata
-
Chat Model
- Uses any OpenRouter models by default, and can be modified to use any OpenAI completions-compatible LLM provider.
-
Response Handling
- Structured response format for consistency
- Includes success/failure status
- Returns formatted responses via webhook
You can use a local server or cloud server:
-
Local server: follow instructions in the Local Development environment section.
-
Cloud server: go to https://app.n8n.cloud/, create a new account or use an existing one.
-
In the
n8nUI, create a Workflow. Name itTechnical Assessment Agent (n8n). -
Import the Workflow JSON file: Technical_Assessment_Agent_n8n.json.
-
Set the required credentials and other configurations in the Workflow (more information in the Auth Credentials and other configurations section).
-
Make sure the workflow is running.
- Go to
n8n UI > Home > Technical Assessment Agent (n8n). - Click on the
Inactivebutton so it changes toActive(green). - Click on the
Got itbutton.
- Go to
-
Get the Chat Endpoint.
- Double click on the
When chat message receivednode. - Copy the URL in the
Chat URLsection.
- Double click on the
-
Configure credential for the chat interface.
Check the Auth Credentials and other configurations section.
-
Chat with the agent.
- Paste the Chat URL in a new tab.
- Provide the
UsernameandPasswordconfigured in the previous step. - Chat with the agent following the instructions in the section Chat with the Technical Assessment Agent.
-
In the
n8nUI, create a Workflow. Name itTechnical Assessment Agent (oTTomator). -
Import the Workflow JSON file: Technical_Assessment_Agent_ottomator.json.
-
Set the required credentials and other configurations in the Workflow (more information in the Auth Credentials and other configurations section).
-
Sign in to the oTTomator Live Agent Studio.
-
Go to Agent 0.
-
Click on the
Gearicon. -
Set the required data in the
Agent Zero Configurationsection:
- Supabase Project URL: find it on
Supabase dashboard > Project > Project API - Supabase Anon Key: find it on
Supabase dashboard > Project > Project API - Agent Endpoint: find it on
n8n UI > Home > Technical Assessment Agent (oTTomator) > Webhook Endpoint > Production URL - Bearer Token: find it on
n8n UI > Home > Technical Assessment Agent (oTTomator) > Webhook Endpoint > Authorization > Bearer Token
-
Click on the Save button.
-
Chat with Agent 0:
- Click on New Conversation in the Agent 0 UI.
- Chat with the agent following the instructions in the section Chat with the Technical Assessment Agent.
-
Configure User and Password to authenticate the chat interface.
- Double click on the
When chat message receivednode. - In the
Authenticationsection, theBasic Authoption should be selected. - Click on the
Credential for Basic Authfield, then select theCreate new credentialor select a existing credential (and click on thepencilicon to edit it). - Provide the credentials to be used when you want to run the chat interface in the
UserandPasswordfields. - Click on the
Savebutton.
For more information, check this documentation.
- Double click on the
-
Configure the Webhook Endpoint Authorization Bearer token, the credential data should be:
Namewill beAuthorization.Valuewill beBearer [token].
For more information, check this documentation.
You can select any value of your choice for the[token].
-
OpenRouter as Chat Model
-
Add a Credential using the endpoint:
https://openrouter.ai/api/v1and your API Key. -
Specify a model check for the model name in the Models page, click on the model id, then double click on the
OpenAI Chat Modelnode, click onexpressionand paste the model id.
-
-
Chat Memory with Supabase
- Add a Credential
-
use the
Transaction Poolerinstructions shown in the Supabase connection documentation for the database to be used with this workflow. -
Use the password specified when you created the Supabase account.
- Configure the Key: it must be the expression
{{ $json.session_id }}
-
Storing Messages in the Supabase Database
-
For n8n: it will create the table automatically.
-
For oTTomator Live Agent Studio: use this SQL to create the messages table:
-
-- Enable the pgcrypto extension for UUID generation
-- Note: If you're using Supabase, the pgcrypto extension
-- is already enabled by default.
CREATE EXTENSION IF NOT EXISTS pgcrypto;
-- Create the messages table
CREATE TABLE messages (
id uuid DEFAULT gen_random_uuid() PRIMARY KEY,
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
session_id TEXT NOT NULL,
message JSONB NOT NULL
);
CREATE INDEX idx_messages_session_id ON messages(session_id);
CREATE INDEX idx_messages_created_at ON messages(created_at);* Enable `realtime updates` for testing (with Agent 0) by running this SQL command:
alter publication supabase_realtime add table messages;Find more information about the database integration on the oTTomator Live Agent Studio documentation
The system prompt is the prompt that is sent to the chat model to guide the conversation.
The system prompt for the Agent is located in the file prompts/Tech-Assessment-Agent-System-Prompt-english.md. There are version of the prompt in different languages, check the folder prompts.
In case you need to change the system prompt, edit the corresponding file, copy the content and paste it in the n8n UI:
- Go to
n8n UI > Home > Technical Assessment Agent (n8n or oTTomator). - Double click on it.
- Go to the
AI Agentnode. - Double click on it.
- In the
System Promptfield, paste the content copied. - Click on the
Back to canvashyperlink. - Click on the
Savebutton.
Once the workflow is saved, you can make a backup in a JSON file:
- Click on the
...button. - Click on
Download. - Save the file in a safe location.
The Agent works with a chat interface where you can ask questions and get answers.
The idea is you provide the notes from the technical review and the agent will generate the report. Those notes should follow the template provided by the agent and have a series of suggested questions you can ask to the candidate or colleague.
When you are ready with all the required information, copy and paste the notes from the technical review to the chat interface.
If there are missing required data, the agent will ask for it.
Once all the required data is provided, the agent will generate the report.
If you need guidance, type: help
If you need a template for the interview notes, ask: give me the notes template
If you need to know the interview types, ask: give me the interview goals
If you want to know the default seniority levels, ask: give me the seniority levels
To run the workflow locally, follow these steps:
-
Go to the
n8ndirectory in the root of the project:cd n8n -
Create the
.envfile:
cp .env.example .env
vi .env
# set the variables according to your needs.-
Start the n8n local server:
make run -
Open the
n8nUI in your browser:http://127.0.0.1:5678 -
The first time it will ask for a new administrator user and password.
-
Follow the rest of the instructions in the Usage to set credentials, other configurations, and test the workflow with the Agent 0 UI.
To access the PG Admin UI, go to: http://127.0.0.1:8765
To restart the local server, run: make restart
To stop the local server, run: make stop
To shutdown the local server, run: make down
To check the local server logs, run: make logs
To update the local server containers, run: make update
This project is open-sourced software licensed under the MIT license.
This project is developed and maintained by Carlos Ramirez. For more information or to contribute to the project, visit Tech Assessment Agent Node on GitHub.
Happy Coding!