{"ok":true,"site":{"host":"ratulhasanruhan.github.io","url":"https://ratulhasanruhan.github.io/","type":"live","desc":"Ratul Hasan Ruhan — award-winning software engineer in Dhaka, Bangladesh. Founder of Appibrium, creator of Ojogor (the first Bengali programming language). Expert in Flutter, cross-platform mobile…","tools":[{"name":"get_profile","kind":"answer","impl":"imperative","description":"Return Ratul Hasan Ruhan's full structured profile (schema.org Person JSON-LD): roles, education, credentials, awards, memberships/volunteering, publications, skills, research interests, media coverage.","title":"Get profile","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute"},{"name":"list_projects","kind":"answer","impl":"imperative","description":"List portfolio projects, optionally filtered by category (e.g. \"Mobile Apps\", \"Web Apps\", \"Library\", \"Compiler\", \"AI/ML\", \"Networking\", \"Desktop Apps\") and/or a free-text query matched against title and subtitle.","title":"List projects","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"category":{"type":"string","description":"Exact category label (case-insensitive). Omit for all."},"query":{"type":"string","description":"Case-insensitive substring to match in title or subtitle."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute"},{"name":"get_contact_info","kind":"answer","impl":"imperative","description":"Return ways to reach Ratul: email, WhatsApp, LinkedIn, GitHub, location, the meeting booking link, the resume PDF URL, and the contact-form page.","title":"Get contact info","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute"},{"name":"navigate","kind":"act","impl":"imperative","description":"Show one of the site's sections in the current tab: about, resume, projects, research, writings, recognition, or contact.","title":"Open a section","inputSchema":{"type":"object","properties":{"page":{"type":"string","enum":["about","resume","projects","research","writings","recognition","contact"]}},"required":["page"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute"},{"name":"show_projects","kind":"act","impl":"imperative","description":"Open the Projects section and apply a category filter in the UI (use \"All\" to clear).","title":"Show projects filtered","inputSchema":{"type":"object","properties":{"category":{"type":"string","description":"Category label as shown on the filter bar, or \"All\"."}},"required":["category"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute"},{"name":"prefill_contact_form","kind":"act","impl":"imperative","description":"Open the Contact section and fill in the message form (name, email, message). The form is NOT submitted — the user reviews and presses Send.","title":"Prefill contact form","inputSchema":{"type":"object","properties":{"fullname":{"type":"string","maxLength":200},"email":{"type":"string","format":"email","maxLength":200},"message":{"type":"string","maxLength":5000}},"required":["fullname","email","message"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute"},{"name":"open_booking_page","kind":"act","impl":"imperative","description":"Open the Google Calendar appointment page (\"Quick sync with Ratul\") in a new tab so the user can pick a slot.","title":"Book a meeting","annotations":{"consequentialHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute"},{"name":"download_resume","kind":"act","impl":"imperative","description":"Open the resume PDF in a new tab (the browser may download it).","title":"Download resume","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"polyfill","executable":true,"handlerField":"execute"}],"category":"Media & Personal","favicon":"/favicons/ratulhasanruhan.github.io.png","apiSurface":"polyfill","toolCount":8}}