Alberto Guinda's Work | ContraWork by Alberto Guinda
Alberto Guinda

Alberto Guinda

AI Agent & Full-Stack Engineer ยท LangGraph ยท RAG ยท AI Apps

New to Contra

Alberto is ready for their next project!

Followed by LOGO D
Cover image for ๐Ÿš€ A multi-tenant booking SaaS
๐Ÿš€ 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.
2
238
Cover image for Recruiters sit on hundreds of
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.
3
371
Cover image for A conversational AI copilot that
A conversational AI copilot that takes a buyer from "I want to reserve" to contract and receipt. A LangGraph agent orchestrates 19 tools with human-in-the-loop confirmation before any payment, session memory, and RAG โ€” over a transactional backend with hard guarantees (no double-booking, Stripe + webhook reconciliation, full audit) and a 3D/BIM viewer with a first-person walkthrough. Stack: TypeScript, LangGraph.js, Hono, PostgreSQL/Drizzle, React 19, react-three-fiber. LangSmith observability with GDPR PII redaction.
1
369
Cover image for A health-tracking Android app for
A health-tracking Android app for logging blood pressure, oxygen, pulse, glucose and weight โ€” designed for elderly users first. Oversized one-digit-at-a-time keypad, high-contrast readings, and a one-tap printable report their doctor can actually read. Medication list that keeps withdrawn drugs visible in red instead of hiding them, so nobody takes one by mistake. Offline-first: the database lives on the device and never leaves it unless the user syncs it to their own LAN server. Built with Expo/React Native in strict TypeScript across 15 languages, with speech input, a marketing site in Astro on Cloudflare Pages behind a hash-pinned CSP, and a Hono + SQLite sync server with last-write-wins reconciliation.
1
341