Take applications with file uploads on your own domain and review them on one private page
Published 2026-11-05
Opening a role, a grant, a scholarship, or a spot in a program brings the same problem every time. People send a resume, a cover letter, or a portfolio by email, some reply to the wrong thread, and a few attach the wrong file. A week later the team is digging through inboxes to find who applied, which file belongs to whom, and who already said no. ChatGPT or Claude can write a clear posting and help you compare two applications you paste in. The chat cannot host a form that strangers fill out, hold their files, or keep a list your reviewers share.
What a chat cannot do alone
Collecting applications needs a public address that stays online, a place to put uploaded files, and a record that outlives the conversation. A chat has no URL for an applicant to visit and no storage that a teammate can open. It also cannot email each person to confirm their application arrived, which is the first thing most applicants want to know.
What your assistant builds with Sails
Sails is a coding agent you connect over MCP, with cloud deployment built in. Your assistant writes the code and Sails runs it in the cloud. For applications it builds a few small pieces.
A form on your own domain with the fields you choose, plus file uploads for a resume or portfolio. Size and type limits are checked before anything is saved, and a closing date shuts the form on its own.
A file store that keeps each upload under the applicant's record, so a file is never separated from the person who sent it. An applications table holds one row per person with contact details, answers, status, and reviewer notes.
A mailbox that sends each applicant a short confirmation the moment the form is submitted, and later sends the decision email you approve.
A private review page for your team. It lists every applicant, opens their files in one click, and lets each reviewer leave a score and a note. A scheduled job written as ordinary shell code with no model in the loop emails you a short count of new applications each morning while the form is open.
Why it works
Every application lands in the same shape, with its files attached to the right row, so nobody has to sort an inbox. Reviewers see the same list and each other's notes instead of forwarding threads. Because the records are stored, a later chat with your assistant can read the table and help you shortlist, draft decision emails, or reopen the form for the next round.
Hand it off
Copy this into your assistant:
Add Sails from https://sails.app/start. Set up an application form on my domain for an opening I will describe. Collect name, email, a few short answers, and file uploads for a resume and an optional portfolio, with size and type limits and a closing date. Store each file with the applicant and keep one row per applicant with status and reviewer notes. Email each applicant a confirmation from a mailbox on my domain as soon as they apply. Build a private review page where my team can open files, score, and comment. Write a scheduled job in plain shell code with no model involved that emails me each morning how many new applications came in. Ask me anything you need before you start.