Skip to content
The candidate intake

The late-night application is a full candidate record before your first coffee.

Someone finds your posting at 11pm and starts typing into a chat instead of a form, because the form only saves progress if they remember to hit submit. Six questions later a recruiter opens a complete candidate record instead of a half-filled application: the role, what they do now, and the experience in their own words. Free to start, live in five minutes.
Build this agent free

You automate candidate screening by putting a conversational agent in front of the job application. It asks what your intake form already asks, one question at a time, types the answers into a structured candidate record, and posts that record to your ATS the moment it is complete, with no score or decision attached.

01 · They talk

Your chatbotAnswering
Which role are you interested in?
The operations coordinator one, saw it posted today
Got it. What are you doing now, and what brought you to look?
I’m at a logistics company right now, three years in, just want more room to grow

02 · It becomes a record

role_applied_for
Operations Coordinator
current_employer_or_status
Logistics company, 3 years
relevant_experience_summary
Process background, led a team of four, wants more ownership
earliest_start_date
Two weeks notice

typed · validated · deduped

03 · Your stack acts

  • Recruiter pinged
  • Zap into your ATS
  • Or the same via Make
  • Signed webhook at your endpoint
The process

The process this page is about

Not "AI for recruiting". One process, the one that decides whether a good candidate finishes applying or closes the tab: the candidate intake, the conversation that starts the moment someone finds your posting.
  • Who starts it

    Someone who just found your posting, usually at night or on a break, filling in a form between other things.

  • What it costs today

    A static application form with no follow-up logic, or an ATS knockout question that forces a blunt yes or no where the real answer is "it depends."

  • What it has to produce

    A typed candidate record: the role, what they do now, their relevant experience in their own words, and whether the must-have basics are there.

35%

of recruiters say back-and-forth scheduling coordination is the most time consuming part of their day

The Interview Guys

The schema

What it asks, and what it never asks

You name the fields your application already has. It does the asking, in whatever order the story comes out, and it keeps asking until the required ones are filled.
FieldTypeRequiredWhy it is there
full_nametextYesIdentity on the candidate record
phonephoneYesHow the recruiter calls back
emailemailYesWhere the follow-up lands
role_applied_fortextYesWhich opening this is about
current_employer_or_statustextYesContext for the recruiter
relevant_experience_summarytextYesThe pitch, in their own words
work_authorized_in_countrybooleanYesThe one legal question, asked plainly and once
referral_sourcetextWhere the posting reached them
earliest_start_datetextTiming a recruiter will confirm, never promised here

And what it will not do

  • It never asks about race, religion, national origin, disability, age, or marital and family status, and it never records one if a candidate volunteers it.
  • It never uses a scheduling or availability question to find out about childcare, religious observance, or a medical reason for a gap. "What hours work for you" is about hours, nothing else.
  • It never tells anyone they have been screened out, rejected, or passed over, and it never scores, ranks, or renders a hire decision. A recruiter reviews every record.
  • It never asks for salary history, only what someone is looking for going forward.
  • It never invents a field. If they did not say it, the record says "Not captured" instead of a guess.
The live run

Try the run yourself

Six situations a People Team actually handles, each running its own agent with its own fields. Pick one and answer it the way a real candidate or employee would, vaguely and out of order, and watch it ask the follow-up instead of accepting the blank.
Open this one full screen
Where the records land

What the People Team opens Monday morning

Every conversation that produced something useful arrives here as a row someone can read in two seconds. Every value keeps the sentence it came from, and anything the agent itself said can never become your data.

Collected data

287 collected24 this week5 need attention

Export CSV
  • Renee Okafor New application, Ops CoordinatorCandidate Intake · 1h ago
  • Devon Marsh I-9 flagged, expiring soonNew Hire Document Check · 3h ago
  • Priya Shah Asked if she qualifiesRole Pre-Screen · Yesterday
  • Anonymous employee Exit interview submittedExit Interview · Yesterday
  • Marcus Lindqvist Benefits electedBenefits Enrollment · Mon

Renee Okafor

Captured 1h ago · Candidate Intake · joina.chat

Captured data 7 of 8 fields

full_nameRenee Okafor
phone+1 415 555 0133
emailrenee.okafor@example.com
role_applied_forOperations Coordinator
current_employer_or_statusLogistics company, 3 years
relevant_experience_summaryProcess background, led a team of four, wants more ownership
referral_sourceNot captured
earliest_start_dateTwo weeks notice

From the conversation

“I’m at a logistics company right now, three years in, ready for something with more ownership , saw the ops coordinator role and it looked right.”

Every value keeps the sentence it came from, and a value the visitor never said is never stored. The chatbot cannot quote itself into your data.

From here a record can go straight on to Slack, a sheet, a Zap or your own API. The inbox is where you read them, not where they get stuck.

Where it goes next

Your ATS gets the candidate record, not another login

The moment the intake is complete, Gnosari posts it to whatever address you give it. Signed, versioned and retried. From there it is a webhook, which reaches almost anything a People Team already runs.
POST https://hooks.zapier.com/hooks/catch/1234567/abcdef

Signed headers

webhook-id
msg_2f9a41c8
webhook-timestamp
1786518862
webhook-signature
v1,K7Qd…8xPm

Body

{
  "type": "data.collected",
  "event_id": "1b6f9c02-4d1a-4f7e-9b3c-2a5e8d0f1c44",
  "created_at": "2026-08-11T09:14:22Z",
  "payload_version": "v1",
  "data_kind": "New candidate",
  "record_id": 1234,
  "attributes": {
    "full_name": "Renee Okafor",
    "phone": "+1 415 555 0133",
    "email": "renee.okafor@example.com",
    "role_applied_for": "Operations Coordinator",
    "current_employer_or_status": "Logistics company, 3 years",
    "relevant_experience_summary": "Process background, led a team of four"
  }
}
  • Two events

    data.collected fires the first time a Gnosari collects a new kind of data. data.updated fires when someone corrects something.

  • Signed, so you can trust it

    Standard Webhooks HMAC-SHA256, with webhook-id, webhook-timestamp and webhook-signature on every request. Verify before it writes to a candidate record.

  • Quotes are opt-in

    The provenance block, the candidate’s verbatim words, is absent unless you turn it on for that destination.

  • Zapier or Make

    Paste a Catch Hook URL into your Gnosari destination, then point the Zap at your ATS or HRIS.

    Free tier, no app to install, and it fires the moment the candidate record is complete.

    • Salesforce
    • HubSpot
    • Calendly
    • Mailchimp
  • Straight to the desk

    Anything that accepts an incoming webhook takes the payload as it is.

    No middleman. The recruiter sees the application before the ATS syncs.

    • Slack
    • Teams
    • Sheets
    • Twilio SMS
  • Your own endpoint

    Give us an https address, verify the signature, write the candidate record yourself.

    A few lines of code, and the delivery log tells you when something did not land.

    • Postgres
    • Supabase
    • Retool

And you can see every attempt

WhenEventOutcomeDetail
08:14:02data.collectedDelivered200 OK
08:13:58data.collectedFailed503, retrying in 30s
Yesterday 17:41data.updatedDelivered200 OK
Yesterday 09:03data.collectedDelivered200 OK

Every attempt is kept, newest first, with the reason when there is one. Failures retry on their own, and the signing secret lives in your dashboard so you can rotate it without calling anybody.

These are examples, not a partner list. Greenhouse, Lever, Workday, BambooHR and ADP are all reachable the same way: through a Zap, or straight to an endpoint you control. If it takes an HTTP request, it takes the candidate record.

Two ways it can look

On your careers page, or a link you send a candidate or employee directly

Both are live right now. The widget in the corner takes the candidate intake from someone reading your postings. The link is what HR sends privately, for an exit interview that should not sit on a public page.
chat

The widget on your site

A button in the corner that opens into a conversation. Your logo, your colours, sitting on the pages you already have.

  • One line of HTML, anywhere on your site
  • Bubble, sidebar, sidebar-push or drawer
  • Opens over the page, closes again
conversation

A page of its own

No chat window and no widget. Your headline leads, the thread sits under it, and it reads like you asked rather than like software collecting.

  • Sent as a link, or scanned from a QR
  • Its own headline, caption and greeting
  • Every link counted separately
  • One responsive page: phone, tablet or desktop

Every screen on this page is a published Gnosari, embedded from the app. Type into any of them.

Put it on your site

One snippet, four ways to wear it

Paste one line of HTML anywhere on your site. How the widget sits on the page is a setting, not a rebuild, and you can change it after you ship.

Bubble

display_mode="bubble"

A floating button in the corner. Opens over your page and closes again. The default, and the one nobody has to be taught.

Four corners to choose from

Sidebar

display_mode="sidebar"

A fixed panel down one side, always open. For pages where the conversation is the point rather than an aside.

Left or right, any width

Sidebar push

display_mode="sidebar-push"

The same panel, but your content moves over to make room instead of being covered. Nothing on the page is ever hidden.

Left or right, any width

Drawer

display_mode="drawer"

Slides in over the page when it is called, then slides away. The middle ground between a bubble and a sidebar.

Left or right

Where else it lives

Not every conversation starts on a website

The same Gnosari, reached three other ways. A link, a code, or a piece of paper. All of them land in the same record.

01 · A link you send

joina.chat/l/your-slug

Put it in an email, a text, a booking confirmation or a signature. Each link carries its own opening line and headline, and counts its own visits, so you can tell which channel actually worked.

  • Its own greeting and headline
  • Optional expiry date
  • Counted separately

02 · A code they scan

The same link, printed

Every link comes with a QR. On a table card, a receipt, a delivery note, a door. Someone points a phone at it and the conversation starts, with no app and no typing.

  • PNG or SVG, print resolution
  • Points at the same slug
  • Old printed codes keep working

03 · A flyer you hand over

posters.gnosari.com

A builder for the printed thing itself. Pick a template, restyle it, edit the words on the page and export a print-ready poster or card with the QR already placed.

  • Posters, cards and flyers
  • Print or PNG export
  • No account needed
Whose brand it wears

Your brand, down to the font

Nobody should be able to tell it is us. Start from a curated look, mix your own colour and pattern, or set every design token yourself: every surface follows, from the widget to the conversation page to the link someone opens on their phone.

01 · Start from a preset

Twelve curated looks, each a colour and a background pattern chosen to go together. Pick one and you are done.

  • plainsky · noneCorporate or formal, or let the content lead
  • clean-dotssky · fine-dotsSaaS, B2B, dashboards
  • ocean-wavesocean · wavesWellness, travel, spa
  • forest-topoforest · topographyOutdoors, sustainability, eco
  • blueprintblue · blueprintEngineering, dev tools, architecture
  • graph-paperindigo · graph-paperEducation, finance, analytical
  • circuitteal · circuitTech, hardware, AI, electronics
  • soft-bubblesrose · bubblesFriendly, lifestyle, community, care
  • sunset-glowsunset · blobsCreative, marketing, bold consumer
  • emerald-gridemerald · gridHealth, growth, productivity
  • confettifuchsia · confettiEvents, kids, playful brands
  • mono-noiseviolet · noiseMedia, publishing, premium and minimal

02 · Or mix your own

22 colour themes and 44 background patterns, each drawn in code at four intensities. That is 3,872 combinations before you touch a single token.

22 colour themes

  • purple
  • blue
  • green
  • orange
  • pink
  • indigo
  • cyan
  • rose
  • amber
  • teal
  • fuchsia
  • sky
  • emerald
  • violet
  • sunset
  • ocean
  • forest
  • neon
  • gold
  • coral
  • lavender
  • mint

44 background patterns

  • dots
  • grid
  • diagonal-lines
  • zigzag
  • hexagons
  • triangles
  • diamonds
  • squares-rotated
  • cross-dots
  • plus-signs
  • waves
  • bubbles
  • clouds
  • topography
  • organic-blobs
  • flowing-curves
  • subtle-grid
  • circuit
  • blueprint
  • isometric
  • graph-paper
  • fine-dots
  • confetti
  • stars
  • hearts
  • sparkles
  • paper-texture
  • noise
  • chat-bubbles
  • speech-marks
  • conversation
  • messages
  • emoji-smileys
  • emoji-hearts
  • emoji-stars
  • emoji-thumbsup
  • social-likes
  • social-reactions
  • paint-splatter
  • brush-strokes
  • doodles
  • squiggles
  • party
  • flowers

Every pattern, four intensities

  • subtle
  • light
  • medium
  • strong

03 · Or set every design token

Exact hex values, fourteen fonts, bubble shape per side, corner radius, density, header and input. Explicit tokens always win over the preset. Two chats can share every line of markup and still wear two different brands: only the tokens differ.

A boutique hotel

fontFamily
Playfair Display
colorPrimary
#A16207
colorSurface
#FAF7F2
bubbles.user.radius
xl
radius
lg
Maison AurelOnline
Is late checkout possible on Sundays?
Until 2pm, and there will be coffee waiting downstairs.

A developer tool

fontFamily
JetBrains Mono
colorPrimary
#34D399
colorSurfaceDark
#0D1117
bubbles.user.radius
sm
radius
sm
relaydbOnline
Does the API rate limit per key?
600 requests a minute per key, with bursts to 1,000 for 30 seconds.

fontFamily accepts fourteen faces

  • Inter
  • system-ui
  • Roboto
  • Open Sans
  • Lato
  • Montserrat
  • Poppins
  • Source Sans 3
  • Nunito
  • DM Sans
  • Lora
  • Playfair Display
  • JetBrains Mono
  • Space Grotesk
  • radius: none · sm · md · lg · xl
  • density: compact · comfortable · spacious
  • intensity: subtle · light · medium · strong

Set with one call, or one click in the designer. Changing it later takes the same one call, and every published surface updates at once.

The alternative

Instead of what you do now

The comparison that matters is not against another chatbot. It is against the static application form and the ATS knockout question.
What changesStatic application formATS knockout questionsGnosari
At 11pm on a SundaySaved half-done, if thatSame three yes or no questionsAnswered, typed, delivered
What you get backWhatever fit in the boxesA pass or fail flagThe pitch, in their own words
Half-told storyRecruiter calls to askNo follow-up possibleIt asks the follow-up
Work authorizationBuried in a long formOne blunt yes or no, no contextAsked once, plainly, nothing more
Gets into your ATSRe-typed by handCSV export, eventuallySigned webhook, the moment it is complete
The compliance lineDepends who wrote the formWhatever the vendor built inNever crossed, and stated at the start
Common Questions

Frequently Asked Questions

Everything you need to know about getting started. Can't find the answer you're looking for? Reach out to our team.

Still have questions?

Our team is here to help you get started.

Name the fields your application already has, point the agent at your careers page and postings, and put the link or widget on your site. The agent runs the conversation, produces a typed candidate record, and posts it to your ATS through a webhook, Zapier or Make. Setup is minutes, not an implementation project.

Five minutes from now your careers page could be typing up its own candidate records.

Build the agent, put it on your careers page, and watch the first candidate record arrive. Free to start, no card.