Almost none of this work looks like recruitment from the outside. Then you watch a youth NGO run a call for participants and it is a recruitment funnel with a funder standing behind it. An opening gets announced. Applications arrive. Somebody picks people and has to be able to explain why. The people who were picked travel, spend their own money getting there, and want it back.
I build recruitment systems, so when Youth for Change described their year, I recognised most of it. The vocabulary is different. The shape is not.
One thing to get out of the way first, because it is theirs and not mine: yfch.org, the public site, was built by Pelmo. This post is about the system behind it.
The cycle the whole thing has to serve
Every mobility they run is the same loop.
- A project is set up with dates, a host organisation and a number of places.
- A call for participants goes out.
- Applications come in, some of them from people under eighteen.
- Reviewers score them and a selection gets made.
- Confirmed participants travel.
- They submit receipts, in denars, against a grant that arrived in euros.
Each of those steps is easy on its own. The reason a system pays for itself is that the steps have to still line up eighteen months later, when somebody asks how a particular person ended up on a particular trip.
The project record carries what a call for participants has to state
The project is the spine. The project record has fields for the host organisation, the reference number, start and end dates, travel days, the number of places, the age range and the application deadline, because those are the things a call has to say out loud before anyone can apply. Fourteen projects are loaded today, from courses run in Croatia, France, Romania and Poland in 2024 and 2025 through to the mobility going out in October.
The application form belongs to the project, not to the organisation
Forms are built per project rather than once for the organisation, and questions can be conditional: a question appears only if an earlier answer calls for it. Each question also carries a flag for whether it counts toward the score, which means the form and the scoring sheet are the same object instead of two documents that drift apart.
That is the part a generic form tool gets wrong. A question about a legal guardian is meaningless for a 24 year old and mandatory for a 16 year old. Ask everyone and you have collected personal data you had no reason to hold, which is the same mistake recruitment application forms make when they ask for everything up front.
Guardian consent is a field with a timestamp, not a reply in an inbox
A share of applicants to youth exchanges are minors, so the application record has room for the guardian's name, their contact, and the moment consent was given. It sits on the application itself, not beside it.
The reason is boring and it is the whole point. Consent that lives in somebody's email is not a record you can produce two years later when the person who received it has left. A field with a timestamp is.
Scoring is per reviewer, so a decision leaves a trail
One score and one note per reviewer per application, enforced as one row each. Not a single number that somebody typed in after a conversation.
Any recruiter who has had to explain a shortlist to a client knows why. A selection that lives in one person's head is fine right up to the moment it is questioned, and then it is worth nothing. Public money raises the odds of being asked, but it does not change the fix.
Reimbursement is where two currencies collide
Receipts attach to a participant, the amount is recorded in denars, and the euro rate used for that person is stored on that person. Not a global rate on a settings page.
This is the detail I would defend hardest. A single organisation-wide exchange rate is the kind of shortcut that looks harmless for a year and then quietly makes two participants on the same trip irreconcilable in the books, because they were paid in different months. Storing the rate against the person costs one column and removes the whole class of problem.
The CRM also publishes
Posts about finished projects are written in the system, with photos, a summary and the EU programme badge, and they come out on the public site. Same reason we do this for recruitment clients: the people who run the work are the ones who know what happened, and they should not need a developer to say so.
What has actually gone through it so far
Here is the honest state as of today, because a build note that only lists features is advertising.
Fourteen projects are loaded. One mobility is live, the one going out in October, with three confirmed participants, each with a private link generated for them. One project write-up has been published with five photos.
The application form, the conditional questions, the scoring and the reimbursement side are built and have not been used in anger yet. No application has been submitted through the public form, and no receipt has been reimbursed through the system. The next open call is what exercises that half. Until then I am not going to put a number on this page that the database cannot back, and when there is one it will go on the case study.
Why this sits on a recruitment site at all
Because it is the same work. A call for participants is a job opening. An application form that adapts to the applicant is a screening form. Scoring per reviewer is a shortlist you can defend. Receipts against a grant are contractor payments across a border. Change six nouns and this is a staffing desk.
It is also the honest answer to a question I get asked, which is whether a small organisation with an unusual process should expect software to fit it. The unusual part is rarely the process. It is that nobody built for it, because the market is small and a generic tool sells to more people.
If your process is the awkward part, that is the normal case.
Most desks we build for have one or two steps that no product models properly, and everything else is ordinary. That awkward step is usually the whole reason a build is worth doing. Tell me which one yours is and I will tell you straight whether it needs a system or just a process nobody has written down. Your data stays in your own tenant either way.
Tell me your awkward step →