Project Screenshot


A platform that helps recruiters and recruitment agencies find the best candidates

  • Idea

    The founder of Beffers asked SteelKiwi to create a website and widget for a reference-based recruiting platform. The website would manage all recruitment data, integrate with applicant tracking systems, and have an attractive and user-friendly interface.

    The key deliverable for this project was an employee referral system that matches candidates to jobs. Freelance recruiters can refer candidates that are best suited for open positions to recruitment agencies. If a referred candidate is hired, the freelance recruiter receives a commission.  

    The other important part of the project was a widget that integrates with websites of recruitment agencies, aggregating vacancies and candidates from the largest employment databases, such as JobAdder, Breezy, bambooHR, Bullhorn, Bullhorn Jobscience, Level, Zoho Recruit, Workable, Vincere, Greenhouse, and Jobvite.  

    Our client wanted to start with a minimum viable product (MVP), which we then would improve and expand, going deeper into the architecture and development of each component.

  • Analysis

    Referrals are an effective way of finding new employees. In fact, statistics suggest that referrals might be one of the best approaches to filling vacancies: 40% of all hires happen by referral, referred applicants tend to have higher job satisfaction rates and work at companies longer (46% stay for more than 1 year, 45% for more than 2 years, and 47% for more than 3 years), 67% of recruiters and employees say that the recruitment process is shorter with referrals, and 51% of recruiters report referrals to be less expensive than other recruitment methods.

    Websites like Beffers, which bring together recruiters and recruitment agencies, can decrease the time and money required to find the right employee while increasing the number of interested candidates for a position.


July 20, 2017 – present
Backend - 2 Frontend - 3 UI - 1 UX - 1 DevOps - 2 QA - 1 PM - 1
Created UX and UI

Beffers consists of two components – a functional website and a widget that can be integrated into websites of recruitment agencies. The primary audience consists of freelance recruiters, recruitment consultants, recruitment agency administrators,  and professionals who want to apply for jobs directly.  

By analyzing the target audience, we determined that the platform was likely to be used from a number of devices including tablets and smartphones. Therefore, we wanted to make sure that information was displayed clearly and consistently across a variety of screen sizes. We displayed data in tables to make it more comfortable to manage.

We started by creating wireframes and mockups for each screen. Once the design concept was approved by the client, we proceeded to develop a design based on Material Design guidelines, which is why we used native UI components and transitions. We chose colors using the Material Design palette.

Our client asked us to include an animation on the website’s home page to show users that the Beffers project connects people. For this animation, we used a grid and positioned icons on the intersections of the grid lines to represent network connections among people. We created this animation using Particle JS.

Our client also had an idea to build a widget that would fit any website’s design. So we provided agencies with the possibility to customize the widget by choosing their brand colors, changing the background color, font color, and typeface, and adding their agency’s logo.

Developed the backend

Beffers is written in Python 3.6 and based on the Django framework. To create a simple and flexible API, we used the REST API architecture and implemented it with the Django REST framework.

For the database, we used PostgreSQL through the cloud-based Amazon Relational Database Service (RDS). To synchronize with recruitment agency databases, we implemented offline workers on top of an asynchronous task queue in Celery. Offline workers also implement notifications and deliver periodic job digests.

We used Redis as a broker to handle distributed task queues.

Marshmallow performs all data conversions between heterogeneous agency APIs.

We used generic Django Testing to write unit tests and set up GitLab CI integration for automated testing of builds and code style and to measure code coverage metrics. Sentry tracks errors and maintains the system.

We integrated Amazon Elasticsearch Service to search for and filter vacancies and used Amazon Simple Cloud Storage Service‎ to store files.

Integrations with the Facebook, LinkedIn, and Twitter APIs support rich sharing on these platforms.

Developed the frontend

We managed the view layer with React, states with MobX, and routes and navigation with React Router 3. Material-UI implements the behavior and appearance of the website components, Axios manages the API requests, and Stylus preprocesses the CSS. We also made signing in more convenient with single sign-on (SSO). If a user logs in on the website, they’re automatically logged in to all Beffers widgets.

The website also has sign-up and sign-in integrations with Facebook, Twitter, Google+, and LinkedIn.

Developed a functional website

The Beffers website tells users about the widget, its goals, and its main characteristics. Once a recruitment agency registers on Beffers, the website enables them to customize a widget to fit their agency’s website design. The widget allows agencies to handle incoming candidate applications and manage their own candidates. The Beffers website enables agencies to track job seekers from application to interview to employment. Agencies can also create custom posts for social media platforms, analyze the posts’ activity, and create accounts, and do even more.

User Roles

Freelance recruiter

Freelance recruiters can register on the website to refer jobseekers to vacancies and get paid for these referrals.

Recruitment agency consultant

Agency consultants can use Beffers to search for candidates, receive referrals from freelance recruiters, and track the recruiting activity for each candidate. Candidates are displayed along with their names, job titles, dates of referral, referrers, sources of referral, and candidate statuses (from New to Accepted an interview).

Recruitment agency administrator

Agency administrators have the same role as recruitment consultants but can also access information about all of an agency’s consultants: names, emails, number of jobs and referrals, and dates of registration. Agency administrators can also view all candidates assigned to each consultant, see emails sent from consultants to jobseekers, and manage payment records.

Developed a widget

The Beffers widget can be integrated with a single click into recruitment agency websites to optimize and manage the recruitment process. The widget offers a customizable interface that includes a search bar, filters for searching for employees (by category, location, work type), current vacancies, and an application form where candidates can fill in information and attach a CV. The widget scrapes CVs from large recruitment CRMs and displays vacancies and candidates on websites of recruitment agencies. This greatly extends an agency’s referral functionality, making the agency’s website comfortable and easy to use.

Widget features

Database integration. One of the most important features of the Beffers widget is its ability to integrate with the databases of recruitment agency websites like JobAdder, Breezy, bambooHR, Bullhorn, Bullhorn Jobscience, Level, Zoho Recruit, Workable, Vincere, Greenhouse, and Jobvite. The widget provides job and resume scraping, meaning it pulls lists of vacancies and candidates from all agencies registered with the platform. Changes to those lists are synchronized between the widget and the original database.

As the Beffers widget integrates with different websites, it’s important to keep it consistent with different designs. To solve this issue, we implemented agency branding settings, which are available from the Beffers website. There, recruitment agency administrators can upload their company logo and set corporate colors to adapt all elements of the product to their existing branding.

The widget can pull not only lists of vacancies and candidates but also filters used to sort job posts on the original website, such as categories, locations, and types of work.

On the Beffers website, vacancy management functionality depends  on the user’s role. All users can filter vacancies and view details. But only recruitment agency consultants can create custom vacancies (adding unique text and images) for social media sharing and edit posts.

Freelance recruiters can refer offers to candidates, place jobs in the Saved Jobs tab on the website, and apply to jobs themselves by filling out a small form. Freelance recruiters can also apply through LinkedIn.

Recruitment consultants can add main and alternative pictures to their user accounts, preview their profiles, and add tags to indicate areas of specialization.

The widget allows recruitment consultants to customize posts for sharing on LinkedIn and Twitter. Recruitment consultants can create unique content and set background images for each individual job post for each social network and monitor and analyze metrics for post shares.

Using the Beffers widget, a jobseeker can create their own filters and subscribe to job alerts. They can also subscribe to filters created by recruiters.

Beffers offers gamification features for recruiters – consultants receive award badges for their work on the platform.

Technology Stack

Python icon
React icon
Django icon
REST Framework icon
REST Framework