Upsilon customer storysee all customer storiesHow Soft Dev agency automated recruiting process with Fibery

Author
TEMPLATES used in this customer story
Employee Management
Hiring
Custom No-Code Spaces

Upsilon is a custom software development agency that focuses on building products and startups for clients and also has several in-house products.

👋 My name is Anton and I’m the COO at Upsilon. I’m having a lot of fun optimizing and building various processes and data models, which is a big part of what I do at Upsilon. If you want to reach out, you can do it via email or LinkedIn.

What do you use Fibery for?

Everything? Not yet, but we are getting there. If something is not in Fibery yet, I have a plan to bring it here.

We started out with financial models and calculations for the company, but right now everything from recruiting, onboarding, vacations, and inventory management to finance, invoices, and client management lives here interconnected.

So our workspace map is not even a spiderweb, it’s a separate beast and I don’t look at it often. It will be hard to explain everything at once, so in this case study, I’ll tell mostly about recruiting.

upsilon workspace

Why did you switch to Fibery and what tools did it replace?

We were quite early adopters of Fibery, as we were following Michael’s previous work and projects. We switched to it almost two years ago from Airtable and lots of scattered Google Sheets… We hadn’t used Airtable for long though, not everything worked out for us at that time.

There was some learning curve, but in the end, I’m super happy we moved to Fibery, and here is why. 👇

Adding and automating new processes is very easy. I could not have imagined that we would reach this point — and there is still so much potential and so many things coming.

I stopped even looking for different tools for specific tasks or problems most of the time, as I know I can build it in Fibery and it will live in one ecosystem connected to all my other data. I’m not sure how much money we are saving because of that, probably, a lot. But I know for sure that working with all our data in one system saves a lot of my mental health.

Now spill the tea: How do you use Fibery for recruiting?

In this case, I’ll tell you how we organized our recruiting/hiring process in Fibery.

Here are some problems that we were trying to solve:

  • Information about our candidates was scattered between Google Docs, Slack, and messengers.
  • The status of candidates and positions was not clear and it took a long time to understand what is happening overall or with a specific candidate.
  • We missed some communication checkpoints, or even whole candidates because of that (we were hiring a lot at that time).

Below I’ll tell you how we solved it. 🚀

Space setup

Here is our Space map, it looks quite simple. We have 3 different databases:

The data from those databases is visualized with different views. The views menu is structured in the same way as our hiring process, from an open position to the hired candidate:

side menu

Creating a new position

We start with a new position. It is where we keep all the information about who we need to hire, what are the requirements, which project is it for, what is the salary range, etc.

The list of positions looks like this:

upsilon workspace

And here is an example of a position card:

upsilon workspace

Candidates tracking

We overview the current status for all positions and candidates on a ‘Candidate pipeline’ board view:

upsilon workspace

The positions statuses are custom, here is the full list:

full list

When there are a lot of positions and candidates and this view becomes too large to consume, we create smart folders for separate open positions:

Besides the ‘Candidate pipeline’ view we have separate views for our major recruiting statuses (Prescreening, Interviews, Offers, etc) so that we can focus on the specific status with one click. There are also different people and automations involved in different steps.

Candidates prescreening

New candidates are automatically created in the ‘Prescreening’ state — which means our Sourcer found the matching candidate and created their record in Fibery.

upsilon workspace

The candidate card contains all relevant information (from CV to Sourcer and Recruiter info):

upsilon workspace
yesBender
Check how we do it 🤓 show all detailed steps

🤖 Once the card is created, automation kicks in: if the position is Frontend – our Frontend Lead gets a notification in Slack that a new candidate is available for his review. He follows the link to Fibery, checks the candidate, and accepts or rejects them. The creator of the card gets notified that the decision has been made.

The candidate moves to the ‘Waiting for interview’ state.

1) Notify Lead about the new candidate:

upsilon workspace
upsilon workspace

2) Move the candidate to the next state and notify that it was accepted:

noBender
OK, enough 🙄 I still don't get it
upsilon workspace

Interview planning

‘Upcoming Interviews’ view is quite straightforward: it is a list that shows candidates waiting for an interview. Recruiters contact them, agree on a date and time and add that information to Fibery.

yesBender
Check how we do it 🤓 show all detailed steps
upsilon workspace

🤖 Candidates with no interview date are colored red to bring attention to them.

noBender
OK, enough 🙄 I still don't get it

Color code candidates with an empty interview date:

upsilon workspace

Offer decision

After an interview, the responsible Lead goes to Fibery and gives feedback about the candidate using a special action button.

🤖 Action is created to do a few things at a time:

  • record feedback
  • update status
  • send notifications.

yesBender
Check how we do it 🤓 show all detailed steps
upsilon workspace

1) Action button to update candidate’s status and record feedback about them:

upsilon workspace

2) The script to get a record right in the feedback field about who is giving this feedback:

noBender
OK, enough 🙄 I still don't get it
upsilon workspace
yesBender
Check how we do it 🤓 show all detailed steps

As soon as the candidate appears in the ‘Interview passed’ state — you guessed it — notifications are sent, to decision-makers this time. They receive information about the candidate (position, salary expectations, feedback), and mark if generally feedback is positive or not.

noBender
OK, enough 🙄 I still don't get it

Notify decision-makers about the successful interview:

upsilon workspace

Here is the code to get info from the rich text field to notification (I wish it was easier):

Recruiter: {{Recruiter.Name}}Position: **{{Position.Name}}**Positive feedback? **{{Positive feedback text}}**Feedback:<%const fibery = context.getService('fibery');const entity = await fibery.getEntityById(Entity.Type, Entity.Id, ['Feedback']);const documentSecret = entity.Feedback['Secret'];const Content = await fibery.getDocumentContent(documentSecret);%><%= Content%>

We are using a new feed view to go through candidates with feedback in Fibery:

upsilon workspace
yesBender
Check how we do it 🤓 show all detailed steps

Making an offer

The next action is to make an offer or reject the candidate. The ‘Reject’ action just moves the candidate to not hired state and notifies the responsible Lead about the decision.

The ‘Make Offer’ action is done by the recruiter once we discuss the offer details. The candidate moves to ‘Offer Made’ state and we are waiting for their response

upsilon workspace
noBender
OK, enough 🙄 I still don't get it
upsilon workspace
upsilon workspace

It is important to monitor how your offers are doing and check in with candidates if needed. The most important information about the offer is placed here from the action. We add some fields for quick checks and coloring — for highlighting candidates that are near the date when the offer ends:

upsilon workspace

If the offer is accepted, we ask to fill the ‘Planned start date’ field for future use.

Onboarding

Next, we have a view for employees who are joining the team soon — to also keep an eye on them and check if everything is alright.

🤖 Automated notification is sent close to the start date to everyone who is taking part in the onboarding process.

Hired candidate moves to ‘Hired’ state and is displayed in a separate view. There are a few automated actions there, that help us:

  • check all of our hires during this year
  • create Employee and Bonus records.

upsilon workspace
upsilon workspace
yesBender
Check how we do it 🤓 show all detailed steps

🤖 When we create an Employee record, we simply reuse a lot of data from the Candidate records (Name, Start Date, Salary, etc.). The Employee and Candidate records remain linked for the future to easily check additional Candidate info for our employees if needed.

noBender
OK, enough 🙄 I still don't get it

Create a new Employee and link it to the Candidate

upsilon workspace
upsilon workspace

And there are a couple of automations that run immediately after employee creation like

  • create a schedule for holidays, vacations, sick leaves, etc.
  • create operation employee record which is used to connect to clients, employments, and rates etc.

But this is a whole different story for another time =)

Recruiter bonuses

We can also create bonuses for our recruiters right from here. We have a Recruiter entity that is connected to the Employee record — and commission is specified too. Commission for sourcing is fixed and used only in automation formula.

upsilon workspace
yesBender
Check how we do it 🤓 show all detailed steps

🤖 Based on this info, with a single Automation button click a set of bonuses is created for employees for different time periods, which are then used by our Ops to add them to the payment.

noBender
OK, enough 🙄 I still don't get it

Add a new bonus to the bonus list

upsilon workspace

Apart from checking notifications and acting accordingly, we have weekly recruiting catch-up meetings, where we go through all our views, check the states, update our positions and create some action items for specific candidates.

And this is it. The whole process, step by step.

Recruiting process analysis and reporting

We also have some reporting that needs some serious updating for proper usage. But here are some examples for reference.

Here is one of our most important stats along with hired people. It deserves its own separate place =)

I think the next report has potential, especially for performance tracking, but for now, we don’t really use it that much.

upsilon workspace

Here are also the ‘Position overview’ report and a report that shows positions by client:

upsilon workspace
upsilon workspace

Praise time: What is your favorite Fibery feature and why?

There are a lot of them really.

  • I love keeping the information connected, with the ability to pull data from entities with relations. I just add everything to Fibery and see the magic happens. I love that when somebody asks if we can track something, store some data, or map some process in Fibery — I’m pretty sure the answer is “yes”. And, what’s even more important, I can build a basic solution in a matter of MINUTES.
  • I love Formulas that you can easily create on the go if you can handle the syntax. I also love that names used in them are understandable and clearly show what is happening inside the formula.
  • As you probably noticed our Fibery workspace is filled with Automations and they help. A LOT. I create them, I love them. Though I always want more functionality from them.
  • Reports are great. You kinda need to learn to use them for complex cases and set up your fields and entities properly, but as soon as you learn to use them, you can get so much information from your data.
  • Guest access is great! Thanks! I wish I still could use it better because of permissions.

And I think I just got used to a lot of good stuff.

Сriticism time: What you don't like/lack in Fibery?

I have really high hopes for Fibery and where it is going. Checking the roadmap and updates usually brings me some great news and things to look forward to.

Here are a few general things that I would like to see improved and implemented:

update:

Now you can send messages to Slack channels and create new Channels from Fibery. 🔥

  • There is a Slack integration which is awesome, but I would like to have the ability to:

    1. Send notifications to channels instead of individual people.
    2. Create my custom actions in Slack to do something in Fibery (I guess it’s possible with some integrations webhooks, but quite hard to do).
    3. Btw, I barely ever pay attention to built-in notifications.
  • Tables. Half of the time when I use tables I miss out on grouping, subtotals, and some other stuff. Another half of the time I create a table report that has all of that, but then I’m missing out on interacting with the data that I see in the table.
  • Permissions. Now I base some of my data structure not on logic, but on how I will give access to it to teammates and contractors. I have separate Spaces solely for this purpose. Now my left menu is looking ugly and I’m not sure I can fix that.
  • We started to onboard people in Fibery as guests for some purposes, but I can’t share their own records with Salary, Vacations left, etc. without sharing the records of all employees. Entity-level permissions are hard, but I still think this is the way =)
  • Export and online sharing, forms. I would love to see more of that. We are already sharing reports and individual records, but I would love to have more like views and tables sharing — with an ability to operate with them like filtering, etc (Airtable is doing something cool with this).
  • Forms are a big deal too — let us ask users, clients and employees to fill requests, ask questions, and leave feedback outside of the system and keep it in it.
  • Conditional automations. If Fibery had conditional automations for further steps, I would have 10 automations instead of 20. And I can’t copy automations, so it’s actually quite tidious to create the whole setup of similar rules.

And also I would love Fibery team and readers to give us feedback — what we can do better? What tips and tricks do you have to make our life easier? 🤗

Author
TEMPLATES used in this customer story
Employee Management
Hiring
Custom No-Code Spaces

Try Fibery 😉

Are you an early-stage startup? Enjoy 12 months of Fibery for free.