Devlly

get in touch

Devlly - a software studio. We automate business: from a Telegram bot to a full CRM/ERP system.

Get updates

How to collect a candidate application form via a Telegram bot

Imagine 60 responses landing on an operator vacancy in a single week. An HR manager messages each one in Telegram by hand, asks again about age, city, experience, then copies it all into a spreadsheet. Each contact eats 5-7 minutes, and half the data gets lost. A Telegram bot handles this differently: it asks the candidate 7-8 clear questions, validates the answers, assembles a ready resume, and drops it into Google Sheets or a CRM by itself. In the morning the person opens the table and sees structured forms instead of a mess of chat threads. In this article we break down step by step how to build such a bot - which fields to ask, how to validate answers, and where to store them.

Which 7-8 questions the candidate form in the bot should contain

The basic set that covers 90% of vacancies at the operator, manager, courier, or salesperson level looks like this: first and last name, age, city or district, phone number, relevant experience in years, preferred schedule, expected salary, and the source where the person heard about the job. The eighth field is often left open - a short note about yourself. Such a list gives the recruiter enough to decide within 20 seconds whether to invite the candidate for an interview or not. There is no point in inflating the form to 15 questions: after the fifth or sixth step people start abandoning the dialog, and conversion drops. The sweet spot is exactly 7-8 fields that genuinely affect the decision.

The order of questions matters too. Start with something easy - name and city - because it requires no thinking and the person eases into the dialog. Put sensitive fields like salary closer to the end, when the candidate has already invested a few minutes and is reluctant to quit. For most fields it is convenient to offer buttons instead of free text: city from a list, schedule in a full / part-time / shift format, experience as ranges like under 1 year, 1-3 years, over 3. Buttons remove typos, speed up completion, and make the data uniform. The phone number and the open comment stay as text, and everything else you convert into ready-made choice options as much as possible.

Why structured fields beat free text in an HR bot

When a candidate types experience as free text, you get things like about 5 years or so, worked a bit, 2018-2021 plus side gigs. Sorting a table by such a field is impossible, and calculating the average experience is too. Structured fields - a range selection, a button, a number with validation - turn chaotic answers into data you can actually work with. You filter candidates from Kyiv with over 3 years of experience in two clicks, build a breakdown by traffic sources, and see which salary bracket scares people off. Free text does not give you this: it is only good for a single open self-description field, where a person truly has room to express themselves.

There is another practical bonus: structure simplifies further automation. If the city field is always a value from a list, the bot can automatically assign the form to the right regional recruiter. If the schedule is standardized, it is easy to set up a rule: everyone who chose night shifts lands in a separate tab. With free text such scenarios require manually parsing every row. So the golden rule is this: anything that can be reduced to a choice of options, reduce to a choice. Keep the number of open fields to a minimum, and even those are best accompanied by a hint on the format to answer in, so you get a usable result.

How the bot validates the candidate's answers while filling out the form

Validation is a check that an answer has the correct format before it ever reaches the database. The examples are simple: age must be a number in the 16-70 range, otherwise the bot politely asks to repeat. The phone is checked for digit count and prefix, so the table does not accumulate a bare +380 with no number or call me yourself. If a candidate instead types something irrelevant into a text field, the bot does not move on but repeats the question with a clarification. This saves you from the situation where you have 40 forms in the morning and ten of them have an emoji or the word later instead of a phone number.

Beyond format, it is worth building step logic. If a person selected no experience, the bot skips the question about years at previous jobs - there is no reason to ask it. If a candidate abandoned the dialog halfway, the bot can send a gentle reminder a few hours later: you did not finish the form, two questions left. Another trick is a back button to fix a wrong choice without starting over. Good validation is invisible to the candidate: they simply feel that the bot understands their answers. The recruiter, in turn, receives clean data where every field is filled in a predictable format and ready for filtering.

Where to store the data: Google Sheets or a CRM for hiring

The simplest finish is Google Sheets. As soon as the candidate completes the form, the bot adds a new row: each field in its own column, plus the date and time of the request. This option is free, clear to any HR person, and sufficient when the flow is up to a few dozen forms per week. You immediately get a table you can sort, color-code by status, and share with colleagues. For most small companies this lasts a long time. If you need a bit more, you add a status column in the same table - new, called, to interview, rejected - and manually move the candidate through the stages right inside Sheets.

When there are many vacancies and several people are involved in hiring, a spreadsheet gets cramped - then it is better to send forms straight into a CRM. There each candidate becomes a card with history, call reminders, a stage funnel, and assignment of responsible people. Regardless of the storage, the bot's final step is the same: once the form is collected, it composes a short resume - name, city, experience, salary, phone - and sends it to the HR manager directly in Telegram or into the work chat. The recruiter sees a ready card and decides in seconds without opening the table. Exactly these setups - a bot, validation, Google Sheets or a CRM, and automatic resume forwarding - are what we at Devlly assemble around a company's specific hiring process.

Need HR automation? Get in touch