Projects in ZaragozaProjects in Zaragoza🚀 A multi-tenant booking SaaS shown end-to-end
From the product site that sells it, to the white-label site each business gets, straight to the dashboard that runs it all.
🤖 How it works:
Customers book by chatting with an AI assistant in a messaging app. Every booking carries the channel it arrived through, turning chat conversations into a highly visible, organized agenda for the business owner.
📊 The Admin Panel:
Live Analytics: Complete with an occupancy heatmap.
Full Agenda Management: Create, reschedule, confirm, complete, or mark as no-show.
Smart Operations: An auto-built customer CRM (generated directly from bookings), catalogue & staff management, and bot-collected reviews.
Real-World Flexibility: The owner can force an appointment on top of another. Barbershops squeeze people in every day, and software that forbids it simply gets abandoned.
🛠 The Tech Stack:
Frontend: Vite + React 19 + HeroUI v3
Backend: FastAPI (Python 3.14) on PostgreSQL
Static Sites: Astro hosted on Cloudflare
Monetization: Stripe subscriptions with a 30-day trial
Data Integrity: No double-booking is guaranteed by a robust database exclusion constraint, rather than just relying on the interface.
🌍 Status:
Live in production and successfully taking real appointments for a barbershop in Zaragoza. Recruiters sit on hundreds of CVs they can't search. Keyword search misses the obvious — the candidate wrote "React", you searched "frontend", they never surface — and every AI tool that fixes that ships candidate data to a third-party API.
I built RecruitSecure AI to do the semantic search without the API call. The embedding model runs server-side through Transformers.js (quantized multilingual-e5-small, 384 dimensions, 100+ languages), so you can ask in Spanish and it finds CVs written in English — and nothing ever leaves the deployment.
Drop in PDFs or DOCX and it extracts name, email, skills and experience, indexes each CV as a vector, and answers plain-language queries like "frontend lead who has built a design system": ranked by relevance, each result showing the exact CV fragments behind the match, so the recruiter sees the reason and not just a score. Retrieval is hybrid — pgvector HNSW cosine fused with BM25 full-text through Reciprocal Rank Fusion, then re-ranked from the recruiter's own thumbs up/down.
Next.js 16, React 19, strict TypeScript, PostgreSQL + pgvector through Drizzle ORM, Auth.js, Stripe subscriptions, multi-tenant with AES-256-GCM encryption at rest and GDPR export and deletion. Built solo, end to end.
The video is the real application: ten synthetic CVs uploaded through the actual pipeline, extracted, embedded and searched. Nothing staged.