An in-depth retrospective
A talent management app that connects agents with background actors and casting professionals. With over 1800 active users, the application enables agents and casting directors to search and discover new talent, share talent profiles (including measurements and photos), communicate via email in-app, and it offers a self-serve shop for talent to keep their profiles up-to-date.
Twins Talent Agency is one of the founding members of the Toronto Talent Agent Association and is recognized as one of Toronto’s top background agencies, responsible for finding work for professional film, video and new media performers.
Early 2015, the Founder of Twins Talent Agency witnessed a profound change in the industry. Agents alike had begun outsourcing and investing in the development of talent management applications for the web. Why?
Microsoft Access simply wasn't cutting it anymore. Being the industry standard database, it was the source of talent data. Although it was inexpensive, it did require some degree of technical proficiency to setup and customize. However, it soon became clear that it was not very conducive for scaling or maintaining. Talent attributes and other details needed to be updated on a regular basis, which was very cumbersome and time-consuming. More often than not, data requested by the Casting Directors was incorrect or outdated. Lastly, it lived on the desktop and wasn’t mobile.
Since our client recognized how vital this component was to running her business efficiently, it was time to go digital, where data could be stored in the cloud, accessible anywhere at any time and presented in a visually appealing manner.
Through the ideation process, we met with our client several times to understand her vision, requirements for the project and how we could differentiate ourselves. While capturing her thoughts, we (my back-end developer and I) set out to re-define the current process to eliminate significant pain points.
Background actors should be able to register and upload profiles, this way they can maintain and update their own information.
Casting Directors have the freedom to be proactive - let them search and discover background actors that fit the criteria they seek.
As the owner and super user, our client should be able to quickly find and share talent photos, measurements and attributes with Casting Directors upon request.
Once we understood the scope of the project and the direction we wanted to take, we drafted a proposal and quote outlining our pay structure, responsibilities, phases and timelines.
After an agreement was reached, we prioritized the feature backlog into phases and I began crafting hi-fidelity mockups. In order to visualize the user experience, I turned the static assets into a clickable prototype in Moqups. Before writing code, this would give our client an idea of the user flow how each feature would work to ensure our approach was simplistic and intuitive. Once we received the green light, we began coding.
For the first phase, we focused on user authentication and the registration form. For the signup / login component, we knew we needed to validate 3 user types. For the administrator, our client, an email and password would suffice. For the Casting Director, we concluded that it would be ideal to know their first and last names, so we included these as required fields on sign up. For the background actor, they would need to complete the registration form - this data would populate our database with their measurements, personal details, photos and other attributes.
In terms of the registration form, we wanted to simplify the process. Other agencies had lengthy single page forms. I felt we needed to determine meaningful relationships between the fields and their degree of interrelatedness. Upon doing so, we then grouped them into steps. This way, the form would seem less daunting the cognitive effort to complete it would be reduced.
Due to the substantial amount of information required, we felt a preview profile screen would be well received as it would present a consolidated view of your data and photos and allow you to make any last minute changes before submission.
Due to the nature of the form fields, we quickly realized values were prone to change over time. As such, we created a dashboard for customizing the registration form. This content management component would allow her to update, add or delete form values. This was especially important for special skills and cars.
Being able to control who had access to the app after signing up or registering was a necessity for our client. This would not only give her total visibility of all users, but it would allow her to preview individual profiles a lot faster. For this requirement, we created the approvals page where our client could preview all pending registrants, approve or delete them, filter search for profiles, delete profiles, and even email talent.
The next major component was search. The purpose of the search page is to find, discover and share talent photos and measurements. With search, we wanted to create a seamless and fluid experience.
In our initial brainstorming sessions, I came up with the idea of creating ‘talent cards’ that would be selectable, like adding a product to a cart in an e-commerce store. These cards would also display valuable high-level information and act as a gateway to an individual’s full profile. I also didn’t want to take the user away from the search page just to view someone’s profile. That would involve many HTTP requests. More often than not, our client or a Casting Director would want to view many profiles before choosing to share one. In order to reduce the amount of clicks, I decided to use fullscreen modals to view profiles. This way, Ajax could do the heavy lifting and the experience would be snappier.
Secondly, we knew that the agency had a large user base. With that in mind, we applied infinite scroll to the search results instead of pagination. This would append more results as the user scrolled, like the Facebook News Feed.
Due to this decision, we realized that you could scroll past many talent cards, and after selecting the individual's you wanted, completely forget how many and whom you selected. Therefore, we created a counter to indicate the number of talent cards selected and a filter, that when toggled, would only display those individuals you selected while hiding the remainder.
The next feature we implemented was the ability to share photos and measurements. Dozens of times a day, our client is asked by Casting to provide measurements and photos of suitable background candidates. Therefore, once a talent card is selected, our client can share via email, in-app, their measurements. For photos, we gave our client the flexbility to choose which to share, since background actors could upload up to 4 images.
Since sharing was a frequently used feature, we wanted to ensure the output was just as elegant in email clients as it was in the browser. As such, I designed beautiful HTML emails to display the data that was being shared. This way, measurements and photos could be easily identified, and decisions could be made without hesitation.
Once we began scaling, we experienced performance issues. As a result, we installed a tool called Logentries (log management application) that sends email notifications, identifying the severity and error type. After some investigation, it was clear that we needed to have more concurrent users. To resolve the problem, we fine tuned our configuration in Heroku (our web host).
We also had an issue with our Postgres database. As more and more background actors signed up, we quickly reached the enforced row limit of entries or records. At this point, we needed to rectify the issue or we'd lose all read, write and delete privileges. Quickly addressing the problem, we determined which upgraded tier made most sense for our client and successfully completed the migration.
We also came across an unforeseen circumstance. Mandrill by MailChimp, our provider for delivering email notifications to users, would no longer be a free independent service. It would become a paid MailChimp add-on. Searching for an alternative solution, we decided to switch to a service called SparkPost. SparkPost was free and even delivered 8X the number of emails per month. Having less than a week to migrate before our client was charged by MailChimp, we managed to complete the task under an hour.
In October 2015, we piloted with 10 hand picked individuals. This allowed us to do further testing and squash any outstanding bugs. Once we were confident in the stability of the platform, our client began onboarding her team in batches, to ensure any questions or concerns were taken cared of. To date, there are 1897 registered users, over 7,000 photos and on average, 2,000 profiles are shared per month.