Collaborative Email Journal

Project Overview

An automated system that uses AI to generate personalized questions, emails them to your contact list on a schedule, and captures responses to build a permanent archive of meaningful conversations. It eliminates the friction of maintaining consistent communication by handling question generation, delivery, and storage automatically, while ensuring each question is unique and tailored to your relationship history.


Why I Built This

My wife and I have had a couple's journal for a few years. Each week, we both answer the same question side by side in an Apple note. Seeing each other's responses to questions has generated lots of great discussions. We have loved maintaining this practice over the years.

But there are a few problems with our current approach: we had to find or create the weekly questions, and we had to remember to answer them. So, I originally built this project for us to use but have since generalized it.


How It Works

The system uses AI and email to create an automated journal for groups to use:

  1. AI Question Generation: On a schedule, Claude analyzes past questions and generates a new question
  2. Email Delivery: The question gets sent to all users with a simple subject line and reply address
  3. Response Collection: When users reply, answers automatically get stored in the database
  4. Archive Building: All answers are stored for review on their own and past questions are stored for use in future prompts

High-Level Architecture


The Magic is in the Context

Good questions aren't random - they should build on your shared history. Here's how I made that work:

def create_formatted_prompt(question_gen_prompt):
    """
    Create a formatted prompt for the Anthropic API.
    Inserts the retrieved questions into the prompt.
    """
    previous_questions, question_temp_id = format_questions()

    # Insert past year's questions into the prompt so Claude
    # can generate something truly unique
    formatted_prompt = question_gen_prompt.format(
        previous_questions=previous_questions
    )
    return formatted_prompt, question_temp_id

This means Claude isn't just generating questions. It's looking at everything discussed in the past year and creating something that builds on actual conversations and interests. The questions feel personal because they are personal.


Core Features

🤖 Intelligent Question Generation

AI creates personalized questions based on your specific relationships, interests, and communication style. No more generic templates.

🔄 Smart Variety Control

The system remembers past questions to ensure fresh, unique content that doesn't repeat previous topics from the past year.

📧 Automated Delivery

Set-and-forget email scheduling means consistent communication without the mental overhead of remembering to reach out.

🔒 Secure & Private

Only authorized contacts can participate, and answers are never shared with AI, ensuring your conversations remain private and meaningful.

💾 Permanent Archive

Every question and response is saved, creating a growing database of your relationship history that becomes more valuable over time.

⚙️ Fully Customizable

Easily adapt the system for different types of relationships, communication styles, and scheduling preferences.


Explore the Complete Project