"Discover Yourself. Land Your Dream Job."
For development, you can expose the local application using Cloudflare tunnels:
npm run tunnelThis runs a local tunnel pointing to your active port, exposing the site via a dynamically generated Cloudflare URL. You should configure this generated URL as SITE_URL in your .env configuration file so that LinkedIn share links, verification emails, and other absolute URLs redirect correctly.
Be Your is a next-generation AI-powered career platform designed to bridge the gap between human potential and industry expectations. It intelligently analyzes user profiles against market demands to generate personalized roadmaps, dynamic cover letters, and actionable feedback. By integrating advanced natural language processing with a sleek, distraction-free interface, it serves as the ultimate ecosystem for job seekers and recruiters alike.
π§ AI Intelligence
- Resume Scoring: Instantly evaluate resumes against job requirements.
- Skill Gap Analysis: Identify exactly what skills you're missing for a role.
- Job Matching: Intelligent recommendation engine matching your profile.
- Cover Letter: Automatically generate highly-tailored cover letters.
π Career Growth
- Career Roadmap: Step-by-step, 10-phase learning paths for specific roles.
- Mock Interview: AI-driven aptitude, behavioral, and technical interviews.
- Code Playground: Real-time problem solving with AI solution analysis.
- Portfolio Analyzer: Deep analysis of GitHub projects for credibility.
π’ Platform Features
- Recruiter Dashboard: Seamlessly post, manage, and view job applications.
- Admin Panel: Complete system oversight, logs, and CSV reporting.
- Badge System: Earn exclusive badges by acing interviews and building portfolios.
- Notifications: Real-time alerts for application status updates.
π Security & Reliability
- Authentication: Secure local auth + Google OAuth2 integration.
- Rate Limiting: Protection against spam and brute-force attacks.
- CSP Headers: Strict content security policies applied platform-wide.
- Role-Based Access: Isolated routes for Seekers, Recruiters, and Admins.
| Landing Page | Seeker Dashboard |
|---|---|
![]() |
![]() |
| AI Career Roadmap | Job Listings |
![]() |
![]() |
| Recruiter Dashboard | AI Mock Interview |
![]() |
![]() |
| Portfolio Analyzer | Daily Sprint |
![]() |
![]() |
Be Your supports three distinct user journeys, each with its own tailored experience:
Sign up β Upload resume β Get AI-powered resume analysis β Generate a personalized career roadmap for your target role β Track daily learning progress with Daily Sprint streaks β Practice with AI mock interviews β Apply to jobs with auto-generated cover letters β Showcase your portfolio analyzed by AI.
Sign up as recruiter β Post jobs with detailed requirements β View ranked applicants sorted by AI match score β Filter by skills, experience, and portfolio strength β Access deep analytics on applicant trends β Communicate with candidates through built-in notifications.
Oversee the entire platform with role-based dashboards β Manage users and recruiter accounts β Moderate job postings β View system logs and audit trails β Export CSV reports for analysis.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Browser / Client β
ββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββ
β HTTPS
ββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββββββ
β Flask Application (Gunicorn) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Routes Layer: β
β /auth /user /jobs /recruiter /admin /ai /sprint β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Services Layer: β
β AIService Β· MatchService Β· ResumeService β
β PortfolioService Β· SprintService Β· NotifyService β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Models Layer (SQLAlchemy ORM): β
β User Β· Job Β· Application Β· Roadmap Β· Interview β
β Portfolio Β· Sprint Β· Notification β
ββββββββ¬ββββββββββββββββ¬βββββββββββββββ¬ββββββββββββββββββββ
β β β
βΌ βΌ βΌ
ββββββββββββ βββββββββββββββ βββββββββββββββββββ
βPostgreSQLβ β Gemini AI β β External APIs β
β Database β β (Roadmaps, β β GitHub Β· SMTP β
β β β Interview) β β Google OAuth β
ββββββββββββ βββββββββββββββ βββββββββββββββββββ
Key Design Decisions:
- Role-based access control with
@role_requireddecorator on every protected route β seeker, recruiter, and admin routes are fully isolated - AI fallback strategy β Gemini API for dynamic roadmaps with hardcoded cache for popular roles to reduce cost
- Async email via Flask-Mail with threading
- JSONB columns for flexible storage of roadmap progress and AI outputs
| Category | Technology | Purpose |
|---|---|---|
| Backend | Python 3.11, Flask | Core server + REST API |
| Database | PostgreSQL, SQLAlchemy | Relational data + ORM |
| AI/ML | scikit-learn, TF-IDF | Matching + scoring engine |
| Auth | Flask-Login, Authlib | Sessions + Google OAuth2 |
| Frontend | Tailwind CSS, Vanilla JS | Dark glassmorphism UI |
| File Handling | pdfplumber, python-docx | Resume text extraction |
| DevOps | Gunicorn, Render | WSGI + cloud deployment |
| Testing | pytest | 18+ automated tests |
be_your/
βββ app/
β βββ routes/ (9 blueprints: auth, user, jobs, recruiter, admin, ai, portfolio, resume, playground)
β βββ models/ (11 SQLAlchemy models)
β βββ services/ (8 service classes)
β βββ utils/ (decorators, email, validators, resume_parser, notify)
β βββ templates/ (33 Jinja2 templates)
βββ tests/ (conftest + 3 test files, 18 tests)
βββ migrations/
βββ requirements.txt
βββ Procfile
βββ README.md
Step 1 β Clone:
git clone https://github.com/VishalBHANOPIYA/Be_your-.git
cd Be_your-Step 2 β Virtual environment (IMPORTANT: do NOT use Anaconda):
python -m venv venv
venv\Scripts\activate # Windows
source venv/bin/activate # Mac/LinuxStep 3 β Install dependencies:
pip install -r requirements.txtStep 4 β Environment setup:
cp .env.example .env
# Edit .env with your values (see Environment Variables section below)Step 5 β Database setup:
# Make sure PostgreSQL is running locally
flask db upgrade
python seed.py # Creates test data
python seed_jobs.py # Seeds sample jobsStep 6 β Run:
flask run
# Open http://localhost:5000| Variable | Description | Required |
|---|---|---|
SECRET_KEY |
Flask secret key (random string) | Yes |
JWT_SECRET_KEY |
JWT signing key | Yes |
GEMINI_API_KEY |
Google Gemini API key for AI roadmap generation. Get free key at https://aistudio.google.com/app/apikey | Yes |
DATABASE_URL |
postgresql://user:pass@localhost/be_your |
Yes |
GOOGLE_CLIENT_ID |
Google OAuth (console.cloud.google.com) | Optional |
GOOGLE_CLIENT_SECRET |
Google OAuth secret | Optional |
MAIL_USERNAME |
Gmail address for sending emails | Optional |
MAIL_PASSWORD |
Gmail App Password (not your real password) | Optional |
UPLOAD_FOLDER |
Path for resume uploads (app/static/uploads/resumes) |
Yes |
| Role | Password | |
|---|---|---|
| Job Seeker | seeker@example.com |
Seeker@123 |
| Recruiter | recruiter@example.com |
Recruiter@123 |
| Admin | Create manually (see below) | β |
Create admin user manually:
flask shell
>>> from app.models.user import User; from app.extensions import db
>>> u = User(name="Admin", email="admin@beyour.com", role="admin")
>>> u.set_password("Admin@1234"); u.is_verified = True
>>> db.session.add(u); db.session.commit()| Method | Endpoint | Description | Auth |
|---|---|---|---|
| POST | /auth/register |
Create account | No |
| POST | /auth/login |
Login | No |
| GET | /jobs/ |
List all active jobs | No |
| POST | /jobs/<id>/apply |
Apply to a job | Seeker |
| GET | /ai/recommendations |
AI job recommendations | Seeker |
| GET | /ai/interview/start |
Start mock interview | Seeker |
| POST | /ai/cover-letter/generate |
Generate cover letter | Seeker |
| GET | /portfolio/dashboard |
Portfolio analyzer | Seeker |
| GET | /playground/playground |
Code challenges | Seeker |
| GET | /admin/dashboard |
Admin overview | Admin |
| GET | /admin/reports/export |
Download users CSV | Admin |
pytest tests/ -v
pytest tests/test_ai.py -v # AI engine only
pytest tests/test_auth.py -v # Auth only- Push to GitHub (make sure
.envis in.gitignore) - Go to render.com β New Web Service
- Connect your GitHub repo
- Build command:
pip install -r requirements.txt - Start command:
gunicorn run:app(already inProcfile) - Add Environment Variables in Render dashboard
- Add PostgreSQL database in Render β copy
DATABASE_URL - Deploy β wait ~2 mins β live!
- 11 database models Β· 9 Flask blueprints Β· 33 templates
- 12 AI methods Β· 18+ automated tests Β· 704-line AI engine
Vishal Bhanopiya | LinkedIn | GitHub
Contributions are welcome! Here's how:
- Fork the repository
- Create your feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add some amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
Please make sure your code:
- Follows existing patterns (Flask blueprints, service layer)
- Includes tests for new features
- Passes existing tests:
pytest - Uses proper logging instead of print statements
MIT β feel free to use, modify, and build on this project.







