The agent was built around a single Gmail trigger, with AI judgment layered in at every point where a real decision needed to be made rather than a fixed rule.
๐ง๐ฟ๐ถ๐ด๐ด๐ฒ๐ฟ: A Gmail node fires on every new incoming email, starting the workflow in real time as messages arrive.
๐๐ฎ๐๐ฎ ๐ฒ๐
๐๐ฟ๐ฎ๐ฐ๐๐ถ๐ผ๐ป (๐ณ๐ถ๐
๐ฒ๐ฑ ๐น๐ผ๐ด๐ถ๐ฐ): An Extract Email Data step parses the raw email into structured fields the rest of the workflow can use.
๐๐ ๐ฐ๐ฎ๐๐ฒ๐ด๐ผ๐ฟ๐ ๐ฐ๐น๐ฎ๐๐๐ถ๐ณ๐ถ๐ฐ๐ฎ๐๐ถ๐ผ๐ป: A "DM: Category Allocator" AI node, equipped with its own tool access, reads the email content and classifies it into a category such as job posting, interview scheduling, generic message, or newsletter. This is a genuine AI judgment call, not a keyword match.
๐๐ถ๐
๐ฒ๐ฑ ๐ฟ๐๐น๐ฒ-๐ฏ๐ฎ๐๐ฒ๐ฑ ๐ฟ๐ผ๐๐๐ถ๐ป๐ด: A JSON formatting step feeds a Route By Category router running in strict rules mode, which sends the email down one of four paths purely based on the AI's classification output.
๐๐ผ๐ฏ ๐ฝ๐ผ๐๐๐ถ๐ป๐ด ๐ฝ๐ฎ๐๐ต (๐๐ ๐๐ฐ๐ผ๐ฟ๐ถ๐ป๐ด): For job-related emails, the agent fetches the full job page, extracts the job description, and combines it with candidate context before a "DM: Job Matching" AI node, also with tool access, scores how well the role matches the user's profile.
๐๐ถ๐
๐ฒ๐ฑ ๐๐ต๐ฟ๐ฒ๐๐ต๐ผ๐น๐ฑ ๐ฑ๐ฒ๐ฐ๐ถ๐๐ถ๐ผ๐ป: An Extract Score step pulls the numeric score, and a fixed rule checks whether it clears a match threshold, splitting into a high-match and low-match path.
๐๐ป๐๐ฒ๐ฟ๐๐ถ๐ฒ๐ ๐๐ฐ๐ต๐ฒ๐ฑ๐๐น๐ถ๐ป๐ด ๐ฝ๐ฎ๐๐ต (๐๐ ๐ถ๐ป๐๐ฒ๐ฟ๐ฝ๐ฟ๐ฒ๐๐ฎ๐๐ถ๐ผ๐ป): A "DM: Interview Scheduled" AI node reads interview-related emails and generates a real-time WhatsApp notification summarizing key details.
๐๐ฒ๐ป๐ฒ๐ฟ๐ถ๐ฐ ๐ฎ๐ป๐ฑ ๐ป๐ฒ๐๐๐น๐ฒ๐๐๐ฒ๐ฟ ๐ฝ๐ฎ๐๐ต๐ (๐๐ ๐๐๐บ๐บ๐ฎ๐ฟ๐ถ๐๐ฎ๐๐ถ๐ผ๐ป ๐ฎ๐ป๐ฑ ๐ณ๐ถ๐น๐๐ฒ๐ฟ๐ถ๐ป๐ด): A "DM: Generic" AI node handles miscellaneous messages, while a separate skip-list check and a "DM: Important News" AI node filter newsletters, deciding which ones are worth logging as a digest versus silently skipped.
๐ฆ๐๐ฟ๐๐ฐ๐๐๐ฟ๐ฒ๐ฑ ๐น๐ผ๐ด๐ด๐ถ๐ป๐ด ๐ฎ๐ป๐ฑ ๐ฎ๐น๐ฒ๐ฟ๐๐ถ๐ป๐ด (๐บ๐ถ๐
๐ฒ๐ฑ ๐๐ ๐ฎ๐ป๐ฑ ๐ณ๐ถ๐
๐ฒ๐ฑ ๐น๐ผ๐ด๐ถ๐ฐ): Every branch ends in either a Supabase insert for structured record-keeping or a WhatsApp notification for anything requiring immediate human attention.