Inspiration
As a student filmmaker, I have seen how difficult it can be for writers, directors, and actors to find one another outside of the people they already know. Casting often becomes a scramble through group chats, vague posts, and word of mouth. That can leave actors without access to roles that suit them and filmmakers without a clear way to discover collaborators beyond their immediate circle.
I wanted to build something that treats casting as a creative-fit problem, not just a list of names or follower counts.
What it does
SetMatch is an AI-assisted casting platform for student film communities.
A filmmaker creates a brief describing a role, its tone, needed skills, genre, and shoot availability. SetMatch then ranks fictional demo actor profiles by creative fit and explains the reasons behind each suggestion. Filmmakers can swipe through profiles, pass, or send an invitation. Actors can review the full project brief before accepting or declining.
The goal is not to let AI choose a cast. It is to make the first stage of collaboration more thoughtful, discoverable, and transparent.
How I built it
I built SetMatch as a responsive HTML, CSS, and JavaScript web application.
For semantic matching, the app uses Transformers.js with a quantized pretrained all-MiniLM-L6-v2 sentence-embedding model. The model runs locally in the browser and converts each role brief and actor profile into embeddings. SetMatch compares those embeddings with cosine similarity, allowing it to recognize related ideas even when the same exact words are not used.
The final ranking combines:
- 70% semantic similarity
- 15% shared genre interests
- 15% shared skills
Availability is used as a hard filter. Every recommendation also includes visible reasons, such as shared genres, skills, or schedule compatibility. If the model cannot load, the app falls back to local TF-IDF text matching so the prototype remains usable.
Challenges I ran into
The largest challenge was making the AI component useful without making it feel like an opaque score. A profile should not be judged solely by how well it is written, and a numerical fit score should not be mistaken for a prediction of acting ability.
I addressed this by keeping human judgment central: the score is only a sorting aid, the matching reasons are visible, filmmakers make the invitation decision, and actors choose whether to respond. I also avoided using sensitive information, audition-video analysis, appearance, age, or real student data. All profiles in the prototype are fictional.
A second challenge was building a polished experience that still worked as a solo project. I designed the interactive landing sequence, editable role and profile forms, local state storage, swiping interactions, invitation flow, and the on-device matching system within the hackathon period.
Accomplishments that I'm proud of
I am proud that SetMatch is more than a static mockup. It has a functioning matching engine, editable profiles, a working invite flow, actor and filmmaker views, swipe interactions, explanation-based recommendations, and a fallback when the semantic model is unavailable.
I am also proud that the AI runs on-device. That keeps the prototype free to use, avoids requiring an API key, and gives students more control over their information.
What I learned
I learned that adding AI to a product is not the same as making a product AI-powered in a meaningful way. The model had to solve a real part of the experience: interpreting the creative language in role briefs and profiles.
I also learned that recommendation systems need context and limits. A good recommendation is not simply one with a high score; it is one a person can understand, question, and use as a starting point for a decision.
What's next for SETMATCH
The next step would be testing SetMatch with actual student filmmakers and actors, beginning with feedback from my Digital Cinema Production program and the school acting program.
Future versions could add consent-based portfolios, audition availability, project-team messaging, better profile controls, and a school-verified community. Before using real student information, I would add secure accounts, moderation tools, clear consent settings, and stronger privacy protections.
Built With
- css
- html
- hugging-face
- javascript
- local-storage
- onnx
- semantic-search
- sentence-embeddings
- tf-idf
- transformers.js
Log in or sign up for Devpost to join the conversation.