OnSkillDemand
See the skills. Recognize the potential.
OnSkillDemand is an AI-assisted hiring workspace released on Apple’s App Store and Google Play, built with Kotlin Multiplatform and Compose Multiplatform, and monetized through RevenueCat.
It connects companies, vacancies, candidates, interview preparation, evidence capture, and shareable evaluation reports in one mobile workflow.
At its heart is a simple idea: better questions give recruiters a clearer understanding of people—and give candidates more room to demonstrate what they know.
Explore the product at onskilldemand.com.
Inspiration
Behind every vacancy is a team trying to solve a problem. Behind every application is a person whose capabilities cannot be fully expressed through keywords alone.
Yet hiring often separates the information that belongs together: vacancy requirements, candidate profiles, question lists, interviewer notes, and evaluation reports. The context gets lost between preparation, conversation, and decision.
We built OnSkillDemand to connect that journey.
Our ambition reaches beyond one market. We want independent recruiters, hiring teams, and technical specialists around the world to benefit from better preparation and more meaningful conversations.
What we completed
Our Shipaton submission brings together a shipped application, a working service layer, and a real subscription experience:
- Android and iOS: applications released on Google Play and Apple’s App Store.
- Connected hiring workflow: companies, vacancies, reusable candidate profiles, assignments, interview rounds, questions, scores, and reports.
- AI assistance: vacancy drafts, interview plans, role-aware questions, and suggested-answer hints.
- Backend: authenticated APIs, persistent application data, and server-side AI orchestration.
- RevenueCat integration: native purchases, restoration, and entitlement synchronization. The production purchase flow has recorded its first paid subscription.
- Product support: a live website, contextual advice, Help & Support, and practical tutorial videos.
The first paid subscription is an early milestone. Our next task is to learn from usage and build on that beginning.
What the mobile product does
OnSkillDemand organizes the hiring process around the vacancy:
- Define the opportunity. Create a company and vacancy manually or generate an AI-assisted draft, review the requirements, and share the opening.
- Connect the candidates. Create and share reusable profiles, then assign one or more candidates to a vacancy.
- Prepare the conversation. Create or generate interview rounds, questions, and suggested-answer hints.
- Make the interview your own. Review, edit, replace, remove, and reorder generated content.
- Capture evidence. Conduct the interview, record notes, and assign structured 0–5 scores.
- Review and share the outcome. Create individual evaluation reports or export all ready round reports for a candidate within the selected vacancy.
Dashboard Overview and Pipeline views keep the role, interview stages, candidate progress, and reports connected.
The core innovation: the Vacancy-Sense Question Engine
The core of OnSkillDemand is the Vacancy-Sense Question Engine: our custom question-orchestration algorithm that turns vacancy context into a purposeful interview sequence.
It combines the vacancy title, description, and required skills with the round’s stage, name, duration, and requested question count. It then applies stage-specific focus, timing, and sequencing rules around AI generation.
Different stages serve different purposes:
- Screening: relevant experience, motivation, communication, collaboration, and expectations.
- Technical: practical problems, realistic scenarios, design decisions, and trade-offs grounded in the role.
- Final: ownership, judgment, ways of working, and broader technical thinking.
- Offer: alignment, logistics, expectations, and remaining questions.
The sequence is designed to move from accessible openings toward deeper exploration, allowing time for thinking and discussion rather than simply maximizing the number of questions.
This is the distinctive intention behind our algorithm: help candidates think deeply, speak openly about their experience, and demonstrate a wider range of relevant knowledge.
Instead of stopping at whether someone knows a concept, questions can explore how they applied it, why they chose an approach, what happened, and what they learned. That creates opportunities to connect technical knowledge with real decisions and personal contribution.
These are design goals, not claims that an algorithm can reveal everything a person knows. Every generated question remains an editable draft, and the interviewer guides the conversation.
Why it is different
OnSkillDemand connects preparation to what happens afterward.
Generated questions become structured application data. They belong to interview rounds, are used with assigned candidates, and remain connected to notes, scores, and reports. The context does not disappear when generation finishes.
Human control is part of that workflow:
- Interviewers review and change the questions.
- Suggested-answer hints support preparation; they are not candidate responses or automatic scores.
- People record evidence, assign evaluations, and make hiring decisions.
OnSkillDemand does not autonomously hire or reject candidates. Its role is to support a more organized and thoughtful human process.
How we built it
Kotlin Multiplatform and Compose Multiplatform share application behavior, interface components, and domain models across Android and iOS. Platform-specific integrations handle native purchases and application lifecycle requirements.
A Ktor backend provides authenticated APIs and AI orchestration. PostgreSQL stores application data, while Keycloak supports authentication and account lifecycle. AI provider credentials remain on the server.
RevenueCat is the subscription layer connecting the mobile experience to Google Play Billing and Apple In-App Purchase. Free, Standard, and Premium plans provide different resource limits and AI allowances.
After purchases or restoration, the application synchronizes subscription access with the backend. The server uses RevenueCat entitlement information and webhook events to apply the appropriate access policy, rather than relying only on a client-side purchase confirmation.
The website, help content, and tutorials complete the discovery and learning experience around the application.
Challenges
Turning broad AI output into useful product behavior
We needed to define which vacancy and round context should shape generation, then turn the result into structured, editable content that could be used throughout an interview.
Preserving human control
Review, editing, scoring, and report completion needed to be explicit user actions. Human control had to be implemented in the workflow, not just described in a disclaimer.
Shipping one coherent product across Android and iOS
Shared code helped maintain consistency, but native purchases, application lifecycle, testing, and distribution still required attention on each platform.
Implementing a real subscription lifecycle
Displaying a paywall was only the beginning. Purchases, restoration, entitlement updates, and server-side access needed to remain connected.
Completing the product around the application
Store materials, tutorials, support, and demonstration content needed to explain the same real workflows that users could perform in the application.
What we learned
- Relevant context gives AI assistance a useful purpose.
- Questions should leave room for reasoning, reflection, and experience.
- Generated content becomes more valuable when it remains editable and connected to subsequent work.
- Human control is a product-design responsibility.
- Cross-platform development works best when shared behavior and platform-specific requirements are both respected.
- Monetization, onboarding, and support are part of shipping—not finishing touches.
What is next
With both mobile applications released, our immediate focus is improving onboarding, learning from real usage, and making the vacancy-to-interview journey easier to complete.
Our longer-term roadmap extends toward candidate preparation, education, and in-app assistance:
- Role-specific practice and guided mock interviews.
- Reflection and feedback that help candidates explain their knowledge and experience.
- Educational resources and practice activities for skills they want to strengthen.
- Expanded contextual guidance, tutorials, and support.
- Accessibility and localization improvements for a broader international audience.
These are future directions, separate from the capabilities delivered today.
We want preparation to build genuine understanding and confidence—not simply teach people to memorize answers.
Our vision is to help recruiters understand people more deeply and help people demonstrate what they can truly contribute.
Ask with purpose. Listen for evidence. Recognize the potential.
Built With
- android
- apple-in-app-purchase
- compose-multiplatform
- decompose
- google-play-billing
- gradle
- ios
- jetbrains-exposed
- keycloak
- kimi-ai
- koin
- kotlin
- kotlin-multiplatform
- ktor
- postgresql
- railway
- rest-api
- revenuecat
Log in or sign up for Devpost to join the conversation.