All case studies

A management consultancy

Ongoing

Recovering, migrating and extending a recruitment platform

Access to a platform holding millions of candidate records brought back into the client's hands, migrated to stronger hosting, then extended with the features they had been waiting on.

Existing Django application

models.py
views.py
urls.py
templates/
urlpatterns = [
path("candidates/", views.list),
path("candidates/<id>/", views.detail),
+ path("new-feature/", views.new_feature),
+ path("new-report/", views.new_report),
]
Extended in place. No rewrite.

Simulated interface. Not client data.

How the work ran.

Infrastructure access

Credentials
Server access
Ownership confirmed

Back in the client's hands

Step 01

Recover.

Access to their own infrastructure brought back into their hands.

Platform migration

Previous hosting

Application, data and configuration

New hosting
Stronger security posture

Step 02

Migrate.

The platform moved onto hosting with a stronger security posture.

Existing Django application

models.py
views.py
urls.py
templates/
urlpatterns = [
path("candidates/", views.list),
path("candidates/<id>/", views.detail),
+ path("new-feature/", views.new_feature),
+ path("new-report/", views.new_report),
]
Extended in place. No rewrite.

Step 03

Extend.

New features built inside their existing Python Django application.

Simulated interface. Not client data.

The challenge
A consultancy that helps people find work, holding millions of candidate records, and without full access to the server those records lived on. Before anything could be built, the estate had to be back in their hands.
What we built
Recovered access to their own infrastructure and migrated the platform onto hosting with a stronger security posture. With the estate stable, we extended their existing Python Django application with the features they had been waiting on.
Technology
Their existing Python Django application.

Delivery note

We did not propose a rewrite. Their codebase was sound, so we worked inside it rather than around it. Taking over software somebody else wrote is ordinary work here, and it is almost always cheaper for the client than starting again.

Ongoing engagement. The client is not named at their request.

Start with one process.

Tell us the process that takes up your team's time and the systems it touches. We will show you how an agent or automation would handle it.