Recruit Me — an open-source portfolio × game × challenge framework.
Recruiters complete challenges, developers explore projects, and contributors extend the platform.
Recruit Me turns a developer portfolio into an interactive experience. Instead of a static resume, visitors play, solve, and explore to unlock your work.
It's built for three audiences:
| Audience | Experience |
|---|---|
| 🧑 Recruiter | Complete challenges to prove tech aptitude, then unlock resume, projects, and contact |
| 👨💻 Developer | Browse the source, add new challenge types, themes, and animations |
| 🎮 Explorer | Browse projects, skills, timeline, and milestones without playing challenges |
Instead of scrolling a PDF, recruiters see a mission briefing:
- Mission: Evaluate the candidate's stack
- Difficulty: Configurable easy / medium / hard
- Estimated Time: ~3 minutes
Then they complete real technical challenges:
- Learn About Me — quiz questions about tech preferences and experience
- Fix My Deployment — rearrange a broken CI/CD pipeline
- Match Technologies — drag-and-drop tools to categories (Docker → Containerization, etc.)
- Bug Hunt — spot the issue in a real GitHub Actions snippet
- Unlock Portfolio — reveal resume, GitHub, LinkedIn, projects, and contact info
This is where open source thrives. Developers can:
- Add new challenge types (quiz, drag-and-drop, terminal, code review, puzzle)
- Create new themes (Terminal, Retro Arcade, Cyberpunk, Minimal, VS Code)
- Improve animations and accessibility
- Translate the interface
- Add docs, tests, and CI workflows
Visitors simply browse:
- Projects
- Skills
- Timeline
- Certifications
- Blog
No challenge required.
- Multiple Paths: Recruiter, Developer, and Explorer modes
- Challenge Engine: Pluggable challenge system with scoring and achievements
- Theme System: Terminal, Retro Arcade, Cyberpunk, Minimal, and custom themes
- Gamification: Achievements like Bug Hunter, CI/CD Master, Cloud Explorer
- Responsive: Works on desktop and mobile
- No Build Step: Vanilla HTML/CSS/JS for the demo app
- Optional Backend: Express + MongoDB for storing results and analytics
apps/
├── demo-portfolio/ # Working portfolio demo (clone this)
│ ├── config.js # Edit this for your own portfolio
│ ├── index.html
│ ├── style.css
│ └── app.mjs
│
packages/
├── challenge-engine/ # Core runtime: registry, scoring, flow
├── ui/ # Shared UI primitives
├── animations/ # Reusable animation presets
└── themes/ # Theme tokens and switch logic
│
challenges/
├── quiz/ # Multiple-choice challenges
├── drag-drop/ # Drag and drop matching
├── terminal/ # Terminal simulator
├── code-review/ # Spot the bug snippets
├── puzzle/ # General puzzle template
├── memory-game/ # Memory card mini-game
└── example/ # Template for new challenge types
│
docs/
├── architecture.md # Contribution areas and roadmap
└── examples/ # Example challenge combinations
templates/
└── portfolio-config.example.json
server/ # Optional backend API
# Clone the repository
git clone https://github.com/Dasmat13/recruit-me.git
cd recruit-me
# Serve the demo portfolio
cd apps/demo-portfolio
python3 -m http.server 8000
# Open http://localhost:8000# Start the API for storing results
cd recruit-me/server
npm install
npm run devdocker-compose up --buildMake this portfolio your own in 4 steps:
- Fork the repo
- Edit
apps/demo-portfolio/config.js - Update
apps/demo-portfolio/index.htmlwith your projects and bio - Deploy to Vercel, Netlify, or any static host
// config.js example
window.RECRUIT_ME_CONFIG = {
candidateName: 'Your Name',
candidateRole: 'Full Stack Developer',
skills: ['JavaScript', 'Node.js', 'Docker', 'AWS'],
contact: {
email: 'you@example.com',
github: 'https://github.com/your-username',
linkedin: 'https://linkedin.com/in/your-profile',
},
theme: 'retro',
difficulty: 'medium',
};No build step required.
Contributors can build reusable challenge modules:
| Type | Description | Example |
|---|---|---|
| ✅ Quiz | Multiple-choice questions | Tech stack preferences |
| ✅ Drag & Drop | Match items to categories | Tools → categories |
| ✅ Terminal | Command-line simulator | Git commands |
| ✅ Code Review | Spot the bug | Broken CI pipeline |
| ✅ Memory Game | Card matching | DevOps icon pairs |
| ✅ Puzzle | Cross-domain puzzles | Coming soon |
| 🚀 Escape Room | Multi-step puzzle chain | Wanted |
| 🚀 SQL Challenge | Write the correct query | Wanted |
| 🚀 Kubernetes Puzzle | Fix the manifest | Wanted |
Every challenge is a self-contained module in challenges/*/index.js.
- Core recruiter evaluation flow
- Challenge engine scaffold with registry and scoring
- Starter challenge modules (quiz, drag-drop, terminal, code-review)
- Theme system with terminal and retro presets
- Ship challenge-engine v1 with full test coverage
- Add 10+ community challenge modules
- Theme marketplace for community themes
- Recruiter analytics (privacy-conscious, optional)
- Mobile-optimized challenge interactions
- Multi-language support (i18n)
- AI-generated interview challenge hints
- One-click resume PDF export
- Leaderboard for completed assessments
- Challenge authoring CLI/tooling
We welcome all kinds of contributions:
- Frontend — UI polish, new themes, responsive fixes
- Challenges — build new challenge modules under
challenges/* - Backend — API endpoints, tests, CI improvements
- Docs — guides, architecture notes, example portfolios
- Design — icons, illustrations, theme concepts
- Beginners — bug fixes, typos, small enhancements
- Check open issues for
good first issueorhelp wanted - Fork and branch from
main - Make your changes
- Open a PR referencing the issue (e.g.
Closes #4)
Every challenge is a module exporting init(container).
// challenges/example/index.js
export function init(container) {
container.innerHTML = '<h3>Your challenge here</h3>';
}See challenges/example/ for a full template, and CONTRIBUTING.md for guidelines.
- HTML5, CSS3, Vanilla JavaScript (ES6+)
- Google Fonts: Space Grotesk, JetBrains Mono
- jsPDF for PDF generation
- Node.js + Express
- MongoDB + Mongoose
- Jest + Supertest
- Docker Compose
challenge-engine— registry, scoring, flow controlui— shared UI helpersanimations— fade/slide presetsthemes— theme tokens and runtime switching
If this project helps you or inspires your own portfolio, consider starring the repo. It helps others find it.
Distributed under the MIT License. See LICENSE for more information.