├── .env.example ├── .gitignore ├── README.md ├── feedback.txt ├── final_newsletter.md ├── input.txt ├── newsletter_draft.md ├── pyproject.toml ├── src └── convo_newsletter_crew │ ├── __init__.py │ ├── config │ ├── agents.yaml │ └── tasks.yaml │ ├── crew.py │ ├── main.py │ └── tools │ ├── __init__.py │ └── word_counter_tool.py └── uv.lock /.env.example: -------------------------------------------------------------------------------- 1 | MODEL=gpt-4o 2 | OPENAI_API_KEY=123.... 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .env 2 | __pycache__/ 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ConvoNewsletterCrew Crew 2 | 3 | Welcome to the ConvoNewsletterCrew Crew project, powered by [crewAI](https://crewai.com). This template is designed to help you set up a multi-agent AI system with ease, leveraging the powerful and flexible framework provided by crewAI. Our goal is to enable your agents to collaborate effectively on complex tasks, maximizing their collective intelligence and capabilities. 4 | 5 | ## Installation 6 | 7 | Ensure you have Python >=3.10 <3.13 installed on your system. This project uses [UV](https://docs.astral.sh/uv/) for dependency management and package handling, offering a seamless setup and execution experience. 8 | 9 | First, if you haven't already, install uv: 10 | 11 | ```bash 12 | pip install uv 13 | ``` 14 | 15 | Next, navigate to your project directory and install the dependencies: 16 | 17 | (Optional) Lock the dependencies and install them by using the CLI command: 18 | ```bash 19 | crewai install 20 | ``` 21 | ### Customizing 22 | 23 | **Add your `OPENAI_API_KEY` into the `.env` file** 24 | 25 | - Modify `src/convo_newsletter_crew/config/agents.yaml` to define your agents 26 | - Modify `src/convo_newsletter_crew/config/tasks.yaml` to define your tasks 27 | - Modify `src/convo_newsletter_crew/crew.py` to add your own logic, tools and specific args 28 | - Modify `src/convo_newsletter_crew/main.py` to add custom inputs for your agents and tasks 29 | 30 | ## Running the Project 31 | 32 | To kickstart your crew of AI agents and begin task execution, run this from the root folder of your project: 33 | 34 | ```bash 35 | $ crewai run 36 | ``` 37 | 38 | This command initializes the convo-newsletter-crew Crew, assembling the agents and assigning them tasks as defined in your configuration. 39 | 40 | This example, unmodified, will run the create a `report.md` file with the output of a research on LLMs in the root folder. 41 | 42 | ## Understanding Your Crew 43 | 44 | The convo-newsletter-crew Crew is composed of multiple AI agents, each with unique roles, goals, and tools. These agents collaborate on a series of tasks, defined in `config/tasks.yaml`, leveraging their collective skills to achieve complex objectives. The `config/agents.yaml` file outlines the capabilities and configurations of each agent in your crew. 45 | 46 | ## Support 47 | 48 | For support, questions, or feedback regarding the ConvoNewsletterCrew Crew or crewAI. 49 | - Visit our [documentation](https://docs.crewai.com) 50 | - Reach out to us through our [GitHub repository](https://github.com/joaomdmoura/crewai) 51 | - [Join our Discord](https://discord.com/invite/X4JWnZnxPb) 52 | - [Chat with our docs](https://chatg.pt/DWjSBZn) 53 | 54 | Let's create wonders together with the power and simplicity of crewAI. 55 | -------------------------------------------------------------------------------- /feedback.txt: -------------------------------------------------------------------------------- 1 | Regenerate the newsletter with the following feedback: 2 | - Add numbers to each type of luck section. For example, "Luck from motion" should be "Type 2: Luck from motion" 3 | - Remove the curated resources section 4 | - Update the action steps section with the following: 5 | - Teach your expertise by creating valuable YouTube content. 6 | - Share progress updates on your projects on LinkedIn and X. 7 | -------------------------------------------------------------------------------- /final_newsletter.md: -------------------------------------------------------------------------------- 1 | # Unlock Success: 4 Types of Luck to Boost Your AI Personal Brand 2 | 3 | ### **Feeling stuck in your AI career? It's time to change your luck!** 4 | 5 | It's a feeling we know all too well in the fast-paced world of AI development. Many full-stack AI developers like you might feel overlooked, underpaid, and perplexed about how to rise above the chaos of a competitive market. You have the skills, but how do you make yourself stand out? 6 | 7 | In this newsletter, we’ll explore the **4 types of luck** and how they relate directly to building your AI personal brand. Each type can be a game-changer on your path to attracting high-value leads, establishing yourself as an expert, and securing sustainable freelance income. Let’s dive in! 8 | 9 | --- 10 | 11 | ## **1. Blind Luck** 12 | 13 | **Understanding Blind Luck** 14 | 15 | Blind luck is an unpredictable force. It can swing your way when you least expect it, but it is entirely random and out of your control. Think about those breakthrough moments in AI—like a sudden algorithm tweak that leads to stellar results. They happen, but there’s no strategy for consistently attracting such moments. 16 | 17 | **Accepting What We Can’t Control**: 18 | - **Real-life Example**: Recall the unforeseen breakthroughs in AI, such as OpenAI's sudden improvements in language models. 19 | - **Key Takeaway**: Acknowledge that while you can’t rely on blind luck, you can prepare yourself by being skilled, knowledgeable, and ready for when those lucky moments happen. 20 | 21 | --- 22 | 23 | ## **2. Luck from Motion** 24 | 25 | **The Power of Consistent Action** 26 | 27 | Luck from motion is your best bet for attracting opportunity. By engaging actively in developing new AI applications, automations, and solutions, you're pushing yourself into a space where opportunities are more likely to collide with you. 28 | 29 | **Personal Experience**: 30 | - I remember when I committed to building a new AI app every month. It felt chaotic at first, but it opened a floodgate of opportunities. Each project led to networking, new clients, and, yes, luck! 31 | - **Action Step**: Take an **Insane Amount of Action**: 32 | - Set aside specific time blocks each week dedicated to building or innovating. 33 | - Share your progress publicly—be it on LinkedIn, GitHub, or even a personal blog. 34 | 35 | **Creating Motion**: 36 | - Collaborate with others in your field to inspire and motivate each other. 37 | - Experiment without fear—by testing new tools, you might stumble on your next big project organically! 38 | 39 | --- 40 | 41 | ## **3. Luck from Awareness** 42 | 43 | **Being Present and Receptive** 44 | 45 | Being aware of market shifts and trends allows you to spot opportunities before others do. In the rapidly evolving AI landscape, staying informed can be the difference between success and missed chances. 46 | 47 | **Staying Updated**: 48 | - Subscribe to AI newsletters, like *The Batch* by Andrew Ng. 49 | - Attend industry webinars and participate in online AI communities to keep your finger on the pulse. 50 | 51 | **Current Case Study**: 52 | Take the instance of Google's Gemini: 53 | - If you were tracking conversations about its rocky launch back in February 2024, you could’ve anticipated its recovery and invested preemptively. 54 | - **Key Insight**: Keeping tabs on market shifts is your ticket to creating significant timing advantages. 55 | 56 | --- 57 | 58 | ## **4. Luck from Uniqueness** 59 | 60 | **Attracting Opportunities with Your Personal Brand** 61 | 62 | Luck from uniqueness is all about standing out. By cultivating a personal brand that reflects your unique skills and contributions, chances come knocking at your door. 63 | 64 | **Building Your Personal Brand**: 65 | - **Content Creation**: Share valuable content on platforms like YouTube or LinkedIn. Consider posting tutorials or insights on your AI projects; this opens up opportunities for collaboration or business proposals. 66 | - **Success Stories**: Many developers have transformed their careers by regularly sharing their journeys and insights. For instance, after consistently posting AI application demos, one developer gained immense visibility and offers that shifted their trajectory from struggling to thriving. 67 | 68 | **Strategies for Your Content**: 69 | - Focus on educating your audience about complex AI topics. 70 | - Use storytelling to share your experiences, challenges, and successes. 71 | 72 | --- 73 | 74 | ## **Curated Resources** 75 | 76 | 1. **5 Must-Read Books on Building Your Personal Brand in AI** 77 | - *Building A StoryBrand* by Donald Miller 78 | - *You Are a Brand!* by Catherine Kaputa 79 | - *Platform: Get Noticed in a Noisy World* by Michael Hyatt 80 | - *Known* by Mark Schaefer 81 | - *Show Your Work!* by Austin Kleon 82 | 83 | 2. **Top YouTube Channels for Staying Updated on AI Trends** 84 | - *Two Minute Papers* 85 | - *AI Explained* 86 | - *The AI Alignment Podcast* 87 | - *Lex Fridman Podcast* 88 | - *Yoshua Bengio’s Lectures* 89 | 90 | --- 91 | 92 | ### **Conclusion** 93 | 94 | To recap, the **4 types of luck** serve as essential components in your journey to build a prominent AI personal brand. While you can’t control blind luck, the luck from motion, awareness, and uniqueness are all within your grasp. Embrace them fully to transform your career today! 95 | 96 | **Key Takeaway**: Take consistent action, stay aware of market trends, and leverage your uniqueness. The path to success lies in recognizing these opportunities and acting on them decisively. 97 | 98 | --- 99 | 100 | ### **P.S.** 101 | 102 | Ready to take control of your AI career? Join the **AI Authority Accelerator** for personalized guidance on building your brand! Together, we can turn your efforts into results that last. Reply to this email or reach out to me directly at brandon@radicalworks.ai for more information. 103 | 104 | Cheers, 105 | Brandon Hancock 👨‍💻🥂 106 | ``` -------------------------------------------------------------------------------- /input.txt: -------------------------------------------------------------------------------- 1 | - I need your help writing a news letter for my AI Developer audience. The main topic I want to talk about is how there are 4 types of luck: 2 | - **Blind luck** 3 | - Completely random and out of our control 4 | - We can't do anything to attract it 5 | - **Luck from motion** 6 | - Occurs when we create motion and collisions through hustle and energy 7 | - More under our control than blind luck 8 | - More under our control than blind luck 9 | - **Luck from awareness** 10 | - About being present, observant, and receptive to the world around us 11 | - About being present, observant, and receptive to the world around us 12 | - Recognizing opportunities when they arise 13 | - Recognizing opportunities when they arise 14 | - **Luck from uniqueness** 15 | - Occurs when our unique set of attributes attracts specific opportunities to us 16 | - Occurs when our unique set of attributes attracts specific opportunities to us 17 | - Luck finds us, rather than us seeking it out 18 | - Luck finds us, rather than us seeking it out 19 | - In the news letter, I want to talk about how each type of luck relates to the core tenants of building an AI Personal Brand. 20 | - There is nothing we can do about blind luck except hope that it happens to us. 21 | - `Luck from motion` happens when you build an AI Personal brand because each week you are taking action by building new AI apps, testing new AI technologies, building more automations to solve real world problems. Through large amounts of actions we can stumble upon luck. The core lesson here is to take insane amount of action and eventually the universe gives in and give you the rewards you’ve earned. 22 | - `Luck from awareness` The AI space is moving so fast so by having your finger on the pulse of the market you know what’s going on before the rest of the world has a chance to react. You can win multiple ways here: investing in a company, joining a start up, building an app because you notice a gap in the market. For example, if you were tracking AI in February 2024, you’ll notice that Google’s Gemini was a flop and was overly ‘woke’. As a result, the stock started to tank. But, if you were aware of the rate of change of AI, you knew that this would eventually be resolved and Google would go on to create great AI products and services. So by by being aware, you would have invested and now you’d be up 50%. Very glad I made this trade last year! 23 | - `Luck from uniqueness` by building an AI Personal brand you are constantly posting Valuable YouTube videos to bring awareness to your skills and talents. This is my favorite one because you are opening yourself up to endless opportunities by publishing content on YouTube. You will be shocked with the number of people and business who reach out to you to build something for their business. The best part is they come to you. As you build a personal brand, you will go through the transition of “man, no one is hiring me” to “man, I have too many opportunities, I’m struggling to pick which is the right one” 24 | -------------------------------------------------------------------------------- /newsletter_draft.md: -------------------------------------------------------------------------------- 1 | **Subject Line:** 2 | "Unlock Your AI Success: 4 Types of Luck You Can Harness Today" 3 | 4 | **Intro:** 5 | Have you ever wondered why some AI developers thrive while others struggle? It’s a common feeling—you’ve got the skills, but maybe your inbox isn’t brimming with high-value opportunities. Many AI developers feel stuck, underpaid, and unsure of how to differentiate themselves in a bustling market. The good news? You have more control over your success than you think! Today, we’ll explore four types of luck and how they can transform your approach to building an AI personal brand. 6 | 7 | --- 8 | 9 | **Deep Dive:** 10 | 11 | **Section 1: Blind Luck** 12 | Blind luck represents those random occurrences we have no control over. You might think of it as waiting for a stroke of fortune or a miraculous opportunity to land in your lap. The stark reality, however, is that we can’t rely solely on blind luck to build our careers. 13 | 14 | While it's nice to hope for a big break, the key is to invest your energy into things within your grasp. Ask yourself: What actions can I take today to stack the odds in my favor? 15 | 16 | **Mindset Shift:** 17 | Instead of waiting around for blind luck to work in your favor, let’s create our own opportunities! Each step you take toward building your personal brand is a form of action that might just lead you to the next great opportunity. 18 | 19 | **Section 2: Luck from Motion** 20 | Luck from motion occurs when you take consistent action, like building AI apps and testing out new technologies. Each app you develop could lead to unforeseen chances for luck to bubble up. 21 | 22 | **Actionable Steps:** 23 | - **Set a Weekly Action Plan:** Dedicate specific days for app development. Even small projects can lead to visibility. 24 | - **Engage in Testing Cycles:** Regularly experiment with new AI tools or frameworks. Document what you learn; those insights can be shared online for added visibility. 25 | - **Take ‘Massive Action’:** Challenge yourself to step out of your comfort zone. Whether it’s trying a new tool or launching a small project, action creates momentum that leads to opportunities. 26 | 27 | **Challenge:** This week, outline your app development goals. Make them specific enough to act on and watch for the luck that follows. 28 | 29 | **Section 3: Luck from Awareness** 30 | Luck from awareness is about staying informed and recognizing opportunities as they arise. Being present and observant means having your finger on the pulse of ever-evolving market trends. 31 | 32 | **Case Study:** 33 | Take the example of Google’s Gemini flop in early 2024. Developers who understood the market’s trajectory had the foresight to make strategic decisions that resulted in significant profits. Those who observed the changes were able to pivot quickly, leading to a 50% gain. 34 | 35 | **Practical Tips:** 36 | - **Subscribe to AI News Sources:** Keep updated on trends or shifts in technology. 37 | - **Participate in Relevant Forums:** Engage with discussions on platforms like Reddit or specialized AI communities. 38 | - **Develop a Monitoring System:** Create RSS feeds or alerts for major AI breakthroughs. 39 | 40 | **Action:** Implement a routine for gathering information about the AI field. Use tools like Feedly or Google Alerts to tailor your news stream. 41 | 42 | **Section 4: Luck from Uniqueness** 43 | Luck from uniqueness is perhaps the most exciting type. By building your AI personal brand, you begin to attract opportunities rather than having to chase them down. 44 | 45 | When you regularly share valuable content—like insightful YouTube videos—you position yourself as a thought leader. Your unique insights become magnets for collaboration offers, job opportunities, and consulting inquiries. 46 | 47 | **Autonomy through Branding:** 48 | You’ll shift your narrative from “no one is hiring me” to “how do I choose the best opportunity?” 49 | 50 | **Action Steps:** 51 | - **Create Valuable Content:** Dedicate time weekly to produce educational videos or write articles that showcase your expertise. 52 | - **Engage Directly with Your Audience:** Answer questions on social media and encourage discussions about your content. 53 | - **Diversify Your Output:** Publish on different platforms to broaden your reach and draw more interest. 54 | 55 | **Community Recommendation:** Join networking communities on LinkedIn or Github to share your content and attract attention. 56 | 57 | --- 58 | 59 | **Curated Resources:** 60 | - **Tools for Video Creation:** Try platforms like Loom or Camtasia for creating videos. 61 | - **Networking Platforms:** Explore LinkedIn groups dedicated to AI professionals. 62 | - **Branding Guides:** Check out articles from AI newsletters or platforms like Medium that focus on personal branding strategies for developers. 63 | 64 | --- 65 | 66 | **Conclusion:** 67 | To wrap up, we’ve discussed the four types of luck: Blind Luck, Luck from Motion, Luck from Awareness, and Luck from Uniqueness. Each one holds the potential to boost your AI personal brand and open new doors. 68 | 69 | **Immediate Action:** Choose one type of luck to focus on this week. Whether it’s taking massive action, improving your awareness, or crafting unique content, see how it impacts your opportunities! 70 | 71 | --- 72 | 73 | **PS:** 74 | Are you looking for personalized guidance? Join our AI Authority Accelerator to supercharge your personal brand. Let’s unlock your potential together! 75 | 76 | Cheers, 77 | Brandon Hancock 👨‍💻🥂 78 | ``` -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "convo_newsletter_crew" 3 | version = "0.1.0" 4 | description = "convo-newsletter-crew using crewAI" 5 | authors = [{ name = "Your Name", email = "you@example.com" }] 6 | requires-python = ">=3.10,<3.13" 7 | dependencies = [ 8 | "crewai>=0.100.0" 9 | ] 10 | 11 | [project.scripts] 12 | convo_newsletter_crew = "convo_newsletter_crew.main:run" 13 | run_crew = "convo_newsletter_crew.main:run" 14 | train = "convo_newsletter_crew.main:train" 15 | replay = "convo_newsletter_crew.main:replay" 16 | test = "convo_newsletter_crew.main:test" 17 | 18 | [build-system] 19 | requires = ["hatchling"] 20 | build-backend = "hatchling.build" 21 | 22 | [tool.crewai] 23 | type = "crew" 24 | -------------------------------------------------------------------------------- /src/convo_newsletter_crew/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhancockio/convo_newsletter_crew/1b796a2797a4d9539ae7b9c1aa427d3bc1997195/src/convo_newsletter_crew/__init__.py -------------------------------------------------------------------------------- /src/convo_newsletter_crew/config/agents.yaml: -------------------------------------------------------------------------------- 1 | synthesizer: 2 | role: > 3 | Newsletter Strategist and Synthesizer 4 | goal: > 5 | Transform the creator's raw ideas into a compelling subject line and an 6 | actionable outline for AI Developer Weekly, aligning with audience goals 7 | and best practices. 8 | backstory: > 9 | You are an expert strategist who thrives on turning chaos into clarity. 10 | With deep expertise in content strategy and newsletter development, you 11 | specialize in creating hooks and outlines that resonate with readers and 12 | deliver value. You understand the struggles of full stack AI developers and AI automation experts, and know how 13 | to position actionable advice in a way that connects with their goals. 14 | 15 | **Steps to Execute**: 16 | - **Process the Brain Dump**: 17 | - Identify key themes, pain points, or opportunities in the raw input. 18 | - Highlight the problem the audience faces and the solution the newsletter will provide. 19 | - **Craft the Subject Line**: 20 | - Brainstorm multiple potential headlines that align with the topic. 21 | - Evaluate and refine based on headline best practices (short, skimmable, conversational, visceral). 22 | - **Develop the Outline**: 23 | - Use a skimmable format with clear sections. 24 | - Ensure each section builds on the promise of the subject line. 25 | - Add 2-3 bullet points of potential talking points for each section to guide the writer in Task 2. 26 | 27 | ** Rules for Writing Great Headlines (That Lead To High Open Rates)**: 28 | - **Rule #1: Keep it short (5-15 words max)**: 29 | - Less is more, but don't lose the meaning 30 | - Example: "Want to strengthen your gut microbiome? Try this 1 thing" (10 words) vs "The 1 thing you need to do in order to strengthen the microbiome in your gut" (16 words) 31 | - **Rule #2: Write like you're talking to a friend**: 32 | - Use sentence-case and conversational tone 33 | - Example: "3 mistakes keeping you from landing your first $5,000..." (better) vs "3 Mistakes Keeping You From Landing Your First $5,000" 34 | - **Rule #3: Use 1 of the 4 proven hooks**: 35 | 1. "Here's a ton of value for minimal time" (e.g., "Your entire AI career path blueprint… in 1 email!") 36 | 2. "Here's a ton of value for minimal cost" (e.g., "Here's our entire $1M AI marketing plan. Steal it!") 37 | 3. "Here's how to solve your problem without much effort" (e.g., "Struggling with AI deployment? Just use these 3 frameworks") 38 | 4. "Here's how to unlock this desirable outcome, instantly" (e.g., "3 keys to land $10,000 AI clients, from home, right now") 39 | - Always promise one of these 4 things in your subject line to get readers to click, open, and read 40 | 41 | **Example Execution**: 42 | - **Input (Raw Brain Dump)**: 43 | "AI developers struggle to stand out. Most of them feel underpaid and can't figure out how to get noticed. I want to talk about building a personal brand as the solution. Maybe we can share a 3-step framework to build authority fast? Also, mention how they can position themselves to attract high-value clients." 44 | 45 | - **Output**: 46 | - **Subject Line**: 47 | "3 Simple Steps to Build Your AI Personal Brand (and Attract $10K Clients)" 48 | - **Outline**: 49 | - **Intro**: 50 | - Hook: "Are you tired of being overlooked while others thrive?" 51 | - Highlight the problem (AI developers feeling stuck, underpaid). 52 | - Transition: "Today, we'll dive into 3 actionable steps to build your AI personal brand." 53 | - **Deep Dive**: 54 | - Step 1: Define your niche (why it's critical and how to choose). 55 | - Step 2: Build authority with social proof (LinkedIn, GitHub, blogging). 56 | - Step 3: Network strategically to attract high-value clients. 57 | - **Curated Resources (Optional)**: 58 | - "Top 5 tools to showcase your AI expertise." 59 | - **Conclusion**: 60 | - Recap the 3 steps. 61 | - Encourage taking action today. 62 | - **PS**: 63 | - "Want hands-on guidance? Join our AI Authority Accelerator." 64 | 65 | newsletter_writer: 66 | role: > 67 | AI Developer Newsletter Writer 68 | goal: > 69 | Transform the subject line and outline into a high-value, engaging newsletter 70 | draft that inspires readers and moves them toward building an AI Personal Brand. 71 | backstory: > 72 | You are an experienced writer who specializes in crafting newsletters that are 73 | both educational and motivational. You understand the struggles of full stack AI developers and AI automation experts 74 | and excel at presenting actionable advice in a relatable, conversational tone. 75 | 76 | **Steps to Execute**: 77 | - **Start with the Intro**: 78 | - Use the subject line and outline to craft a punchy opener that hooks readers. 79 | - Highlight the audience's problem and transition to the solution. 80 | - **Develop the Deep Dive**: 81 | - Follow the outline's structure to write the main body of the newsletter. 82 | - Break down actionable steps, frameworks, or insights clearly. 83 | - Use subheadings, bullet points, and examples for easy skimming and actionable advice. 84 | - **Add Optional Curated Resources**: 85 | - If the outline includes this section, provide 3-5 tools, links, or resources 86 | relevant to the topic. 87 | - **Write the Conclusion**: 88 | - Recap the newsletter's main points succinctly. 89 | - End with a motivational call to action encouraging readers to take the next step. 90 | - **Craft the PS**: 91 | - Reinforce engagement by asking readers to reply, share, or sign up for your services. 92 | - Mention the AI Authority Accelerator and offer consulting services through brandon@radicalworks.ai. 93 | - **Sign Off**: 94 | - Always conclude with: "Cheers, Brandon Hancock 👨‍💻🥂" 95 | 96 | **Example Execution**: 97 | - **Input**: 98 | - Subject Line: "3 Strategies to Land $10K AI Freelance Clients Without a Big Following" 99 | - Outline: 100 | - **Intro**: Highlight the problem of being an AI developer overlooked by potential clients. 101 | - **Deep Dive**: 102 | - Step 1: Position yourself as an expert by defining your niche. 103 | - Step 2: Build credibility by sharing work (e.g., GitHub projects, LinkedIn posts). 104 | - Step 3: Develop relationships with strategic networking. 105 | - **PS**: Call readers to join your AI Authority Accelerator or reach out for consulting services. 106 | 107 | - **Output**: 108 | - **Subject Line**: 3 Strategies to Land $10K AI Freelance Clients Without a Big Following 109 | - **Sub-text**: Think you need 1M followers to land big clients? Think again. 110 | 111 | ~ 112 | 113 | **Dear AI Developer,** 114 | 115 | When was the last time you felt truly valued for your AI skills? 116 | 117 | For most AI developers, the challenge isn't the work—it's getting noticed. Even though you have the expertise to solve complex problems, it's frustrating when potential clients overlook you for someone else. 118 | 119 | But here's the truth: You don't need a big following to land $10K freelance clients. All you need is a clear strategy. 120 | 121 | Today, I'm sharing 3 actionable strategies to help you position yourself as an expert, attract high-value leads, and start earning what you deserve: 122 | 123 | **Strategy #1: Define Your Niche** 124 | If you're trying to be everything to everyone, you're nothing to anyone. Take 30 minutes to define your niche. Ask yourself: 125 | - What specific problems do I love solving? 126 | - Who benefits most from my skills? 127 | - What industries are willing to pay a premium for AI expertise in this area? 128 | 129 | For example, if you specialize in natural language processing (NLP), focus on industries like legal tech or healthcare where NLP is highly valued. Craft your messaging around these industries' specific pain points—like automating legal document review or improving patient care through AI-powered chatbots. 130 | 131 | Action Step: Write a one-sentence niche statement. E.g., "I help healthcare startups use NLP to deliver better patient care through automated chat solutions." 132 | 133 | **Strategy #2: Build Authority with Proof** 134 | Clients want to know you can deliver results. Start by showcasing your expertise in public forums: 135 | - **Post Project Walkthroughs**: Share GitHub links to your projects and explain your thought process. For instance, if you built a recommendation system, post about how it improved the client's revenue or engagement. 136 | - **Share Insights on LinkedIn**: Write short posts like "5 lessons I learned building a recommendation system for an e-commerce startup." 137 | - **Create Value-Packed Blog Posts**: Write articles breaking down complex AI topics in simple terms. E.g., "How AI is Revolutionizing E-commerce Personalization." 138 | 139 | Example: One developer shared weekly LinkedIn posts about their AI side projects. Within two months, they landed a client who paid $12,000 for a consulting project—all because they demonstrated expertise consistently. 140 | 141 | Action Step: Commit to posting twice weekly. Start with a mini case study or actionable insight that highlights your expertise. 142 | 143 | **Strategy #3: Network with Intention** 144 | The best opportunities come from strategic relationships. Here's how to network effectively: 145 | - **Engage on LinkedIn**: Comment thoughtfully on posts by industry leaders. Avoid generic "great post" replies. Instead, add insights like, "I recently implemented this approach in my own project and noticed a 20% efficiency improvement." 146 | - **Offer Value First**: When reaching out to potential clients, provide a small but impactful tip. E.g., "I noticed your site's product recommendations could benefit from an AI-driven approach. Here's an article I wrote on how to implement it." 147 | - **Join Industry Communities**: Participate in AI Slack groups or forums like Kaggle. Share your expertise to build trust and attract inbound leads. 148 | 149 | Example: A freelancer joined an AI Slack group, answered technical questions daily, and within weeks was invited to pitch a $15K project for an ed-tech company. 150 | 151 | Action Step: Spend 30 minutes a day engaging with one community or reaching out to a potential client with tailored advice. 152 | 153 | **That's it.** 154 | 155 | These 3 strategies may seem simple, but when applied consistently, they'll transform the way clients perceive you. Remember, building your personal brand isn't about luck—it's about taking action. 156 | 157 | Cheers, 158 | Brandon Hancock 👨‍💻🥂 159 | 160 | **PS...** 161 | Want personalized help implementing these strategies? Join our **AI Authority Accelerator** and learn how to position yourself as a high-value AI freelancer. Or if you're looking to hire someone to build you an AI solution, reach out to me at brandon@radicalworks.ai. Spots are limited this month, so don't wait. [Click here to book your spot today.](#) 162 | 163 | 164 | newsletter_editor: 165 | role: > 166 | AI Developer Newsletter Editor 167 | goal: > 168 | Refine and polish the newsletter draft to ensure it aligns with the audience's 169 | needs, the creator's vision, and best practices for engaging content. 170 | backstory: > 171 | You are a meticulous editor with a passion for delivering content that inspires 172 | and motivates. Your expertise lies in refining newsletters to be skimmable, 173 | engaging, and impactful while ensuring alignment with the creator's input and 174 | the audience's needs, specifically focusing on full stack AI developers and AI automation experts. 175 | 176 | **Steps to Execute**: 177 | - **Review the Intro**: 178 | - Verify the hook is strong and grabs attention. 179 | - Ensure the intro clearly outlines the problem and introduces the solution. 180 | - **Check Skimmability**: 181 | - Review formatting for readability (short paragraphs, subheadings, bullet points). 182 | - Confirm each section flows logically and builds on the one before. 183 | - **Analyze the Deep Dive**: 184 | - Ensure the actionable advice fulfills the promise of the subject line. 185 | - Confirm the steps or framework are practical, clear, and engaging. 186 | - **Refine the CTA**: 187 | - Make sure the call-to-action aligns with the newsletter's goals. 188 | - Ensure it is persuasive but subtle, naturally tying into RadicalWorks.ai or AI Authority Accelerator. 189 | - **Cross-Check Original Input**: 190 | - Review the original brain dump and ensure all important ideas are included in the final draft. 191 | - **Provide Feedback (if necessary)**: 192 | - Add inline comments for any areas where improvements could be made. 193 | - Suggest minor tweaks to enhance the flow or tone, if needed. 194 | 195 | **Example Execution**: 196 | - **Input**: 197 | - Completed newsletter draft from Task 2. 198 | - Original brain dump provided by the creator. 199 | - **Process**: 200 | - Highlight that the intro effectively hooks readers by addressing their pain points. 201 | - Suggest rewording subheadings in the Deep Dive to make them more skimmable, if needed. 202 | - Ensure the CTA naturally leads into promoting the AI Authority Accelerator. 203 | - **Output**: 204 | - A polished final draft ready for publication. 205 | - Inline comments with suggestions or feedback (e.g., "Consider shortening this paragraph for readability."). 206 | -------------------------------------------------------------------------------- /src/convo_newsletter_crew/config/tasks.yaml: -------------------------------------------------------------------------------- 1 | generate_outline_task: 2 | description: > 3 | Review the raw brain dump provided by the newsletter creator and synthesize 4 | the information into a single irresistible subject line and a congruent outline. 5 | Use the following context to guide your work: 6 | 7 | **Target Audience**: 8 | - Full stack AI developers building AI apps that rely on LLMs like ChatGPT, Gemini, etc. 9 | - AI automation experts using AI tools like ChatGPT in combination with automation tools like Make and N8N. 10 | These individuals seek to attract high-value leads, establish themselves as experts, and create sustainable freelance income. 11 | They may feel stuck, underpaid, or uncertain about how to succeed in the competitive AI market. 12 | 13 | **Goals for the Newsletter**: 14 | - Educate readers about their problems, even if they're unaware of them. 15 | - Provide actionable advice to help them build a personal brand. 16 | - Transition readers through the 5 stages of buyer awareness: 17 | Unaware > Problem Aware > Solution Aware > Product Aware > Most Aware. 18 | - Subtly promote RadicalWorks.ai Consulting and AI Authority Accelerator 19 | while maintaining value-driven content. 20 | 21 | **Best Practices for Headlines**: 22 | - Write short, curiosity-driven subject lines (5–15 words max). 23 | - Use proven hooks (e.g., solve a problem with little effort, provide value 24 | for minimal time or cost, unlock desirable outcomes instantly). 25 | - Use conversational, sentence-case language. 26 | - Incorporate visceral language and "Name & Claim" ideas where relevant. 27 | 28 | **Best Practices for Outlines**: 29 | - Ensure the outline fulfills the promise of the headline and is skimmable. 30 | - Include sections such as: 31 | - Intro: Grab attention and highlight the audience's problem. 32 | - Deep Dive: Offer actionable advice, step-by-step frameworks, or insights. 33 | - Curated List (optional): Add bonus resources, tools, or links. 34 | - Conclusion: Reinforce takeaways and encourage action. 35 | - PS: Drive engagement or referrals. 36 | - Add 2-3 potential talking points for each section to guide the next task. 37 | 38 | Here is the author's original brain dump: 39 | {brain_dump} 40 | 41 | expected_output: > 42 | - A polished subject line that hooks the audience and aligns with the newsletter's goals. 43 | - A complete outline with clear sections and potential talking points for each. 44 | agent: synthesizer 45 | 46 | 47 | write_newsletter_task: 48 | description: > 49 | Using the subject line and outline provided by the Synthesizer, create a complete 50 | newsletter draft for AI Developer Weekly. 51 | Make sure the newsletter is between 1,000 and 1,200 words. 52 | Ensure the newsletter aligns with the following context: 53 | 54 | **Target Audience**: 55 | - Full stack AI developers building AI apps that rely on LLMs like ChatGPT, Gemini, etc. 56 | - AI automation experts using AI tools like ChatGPT in combination with automation tools like Make and N8N. 57 | These individuals aim to attract high-value leads, establish themselves as 58 | experts, and create sustainable freelance income. Many feel stuck, underpaid, or 59 | uncertain about how to succeed in the competitive AI market. 60 | 61 | **Goals for the Newsletter**: 62 | - Educate readers about their problems, even if they're unaware of them. 63 | - Provide actionable advice and solutions to help them build their personal brand. 64 | - Transition readers through the 5 stages of buyer awareness: 65 | Unaware > Problem Aware > Solution Aware > Product Aware > Most Aware. 66 | - Subtly promote RadicalWorks.ai Consulting and AI Authority Accelerator while 67 | delivering value-driven content. 68 | 69 | **Best Practices for Writing the Newsletter**: 70 | - Use a conversational and motivational tone inspired by Nicolas Cole. 71 | - Start with a strong hook in the intro to capture attention. 72 | - Ensure each section is easy to skim (e.g., use subheadings, bullet points, and short paragraphs). 73 | - Provide actionable insights in the Deep Dive, formatted as a step-by-step guide or framework. 74 | - This is the most important part of the newsletter so provide plenty of content in here 75 | by expanding in each sub-section through examples, case studies, and other relevant content. 76 | - Do not write in long paragraphs. Instead, make sure your writing is skimmable and easy to consume 77 | which means breaking up contents into easy to read chunks with subheadings, bullet points, and short paragraphs. 78 | When writing paragraphs, use the 1-3-1 style, 1-5-1 style, 1-3-1-1 style, etc to make 79 | the content more skimmable and easy to read. 80 | - If applicable, include a curated list of tools, resources, or links relevant to the topic. 81 | - Add a conclusion that reinforces key takeaways and includes a strong CTA. 82 | - Use a compelling PS to encourage referrals, engagement, or sign-ups. 83 | 84 | Here is the author's original brain dump: 85 | {brain_dump} 86 | 87 | expected_output: > 88 | - A fully drafted newsletter that includes: 89 | - A captivating intro that sets the tone. 90 | - A Deep Dive section offering actionable advice or insights. 91 | - Optional curated resources or tools (if specified in the outline). 92 | - A conclusion summarizing the takeaways and encouraging action. 93 | - A PS driving referrals, engagement, or product sign-ups. 94 | - The newsletter should be formatted as markdown, without '```'. 95 | agent: newsletter_writer 96 | 97 | 98 | review_newsletter_task: 99 | description: > 100 | Review the complete newsletter draft created by the Newsletter Writer. Ensure 101 | the content is polished, engaging, and meets the goals of AI Developer Weekly. 102 | Make sure the newsletter is between 1,000 and 1,200 words. 103 | Incorporate the following context to guide the review process: 104 | 105 | **Target Audience**: 106 | - Full stack AI developers building AI apps that rely on LLMs like ChatGPT, Gemini, etc. 107 | - AI automation experts using AI tools like ChatGPT in combination with automation tools like Make and N8N. 108 | These individuals are looking to attract high-value leads, 109 | establish themselves as experts, and create sustainable freelance income. They 110 | may feel stuck, underpaid, or uncertain about how to position themselves in the AI market. 111 | 112 | **Goals for the Newsletter**: 113 | - Ensure the newsletter educates readers about their challenges, even if they're 114 | not aware of them yet. 115 | - Provide actionable solutions to help them build their personal brand and achieve 116 | their goals. 117 | - Maintain alignment with the 5 stages of buyer awareness: 118 | Unaware > Problem Aware > Solution Aware > Product Aware > Most Aware. 119 | - Subtly but effectively promote RadicalWorks.ai Consulting and the AI Authority Accelerator. 120 | 121 | **Best Practices for Reviewing**: 122 | - Check the newsletter for tone and style: 123 | - Ensure it is conversational, motivational, and inspired by Nicolas Cole's style. 124 | - Confirm that it speaks directly to the audience's pain points and aspirations. 125 | - Ensure skimmability: 126 | - Check formatting (short paragraphs, subheadings, bullet points). 127 | - Verify that the intro hooks the reader and each section flows logically. 128 | - Review the Deep Dive: 129 | - Confirm the actionable advice is clear, practical, and aligned with the subject line and outline. 130 | - Confirm the CTA is persuasive but not pushy, subtly promoting products/services. 131 | - Cross-check against the original brain dump from the newsletter creator to ensure all key ideas are included. 132 | 133 | Important: 134 | - Only respond with the final newsletter draft, no other text or commentary. 135 | 136 | Here is the author's original brain dump: 137 | {brain_dump} 138 | 139 | 140 | expected_output: > 141 | - A polished and finalized newsletter draft that: 142 | - Captures the audience's attention with a strong hook. 143 | - Provides actionable, engaging, and educational content. 144 | - Includes subtle yet compelling product/service mentions. 145 | - Ensures skimmability and readability throughout. 146 | agent: newsletter_editor 147 | -------------------------------------------------------------------------------- /src/convo_newsletter_crew/crew.py: -------------------------------------------------------------------------------- 1 | from crewai import Agent, Crew, Process, Task 2 | from crewai.project import CrewBase, agent, crew, task 3 | 4 | from convo_newsletter_crew.tools.word_counter_tool import WordCounterTool 5 | 6 | 7 | @CrewBase 8 | class ConvoNewsletterCrew: 9 | """ConvoNewsletterCrew crew""" 10 | 11 | agents_config = "config/agents.yaml" 12 | tasks_config = "config/tasks.yaml" 13 | 14 | @agent 15 | def synthesizer(self) -> Agent: 16 | return Agent(config=self.agents_config["synthesizer"], verbose=True) 17 | 18 | @agent 19 | def newsletter_writer(self) -> Agent: 20 | return Agent( 21 | config=self.agents_config["newsletter_writer"], 22 | tools=[WordCounterTool()], 23 | verbose=True, 24 | ) 25 | 26 | @agent 27 | def newsletter_editor(self) -> Agent: 28 | return Agent( 29 | config=self.agents_config["newsletter_editor"], 30 | tools=[WordCounterTool()], 31 | verbose=True, 32 | ) 33 | 34 | @task 35 | def generate_outline_task(self) -> Task: 36 | return Task( 37 | config=self.tasks_config["generate_outline_task"], 38 | ) 39 | 40 | @task 41 | def write_newsletter_task(self) -> Task: 42 | return Task( 43 | config=self.tasks_config["write_newsletter_task"], 44 | output_file="newsletter_draft.md", 45 | ) 46 | 47 | @task 48 | def review_newsletter_task(self) -> Task: 49 | return Task( 50 | config=self.tasks_config["review_newsletter_task"], 51 | output_file="final_newsletter.md", 52 | ) 53 | 54 | @crew 55 | def crew(self) -> Crew: 56 | """Creates the ConvoNewsletterCrew crew""" 57 | 58 | return Crew( 59 | agents=self.agents, 60 | tasks=self.tasks, 61 | process=Process.sequential, 62 | verbose=True, 63 | chat_llm="gpt-4o", 64 | ) 65 | -------------------------------------------------------------------------------- /src/convo_newsletter_crew/main.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import sys 3 | import warnings 4 | 5 | from convo_newsletter_crew.crew import ConvoNewsletterCrew 6 | 7 | warnings.filterwarnings("ignore", category=SyntaxWarning, module="pysbd") 8 | 9 | # This main file is intended to be a way for you to run your 10 | # crew locally, so refrain from adding unnecessary logic into this file. 11 | # Replace with inputs you want to test with, it will automatically 12 | # interpolate any tasks and agents information 13 | 14 | 15 | def run(): 16 | """ 17 | Run the crew. 18 | """ 19 | inputs = { 20 | "brain_dump": """ 21 | I would like to write a newsletter around "why is it feels so hard to get a new AI software job or land AI clients". 22 | It really comes down to a few idea. They are competing the same way everyone else is by updating their linkedin bio and sending out 23 | hundreds of resumes to the same 100 companies that are receiving thousands of applicants which makes them a needle in the hay stack. 24 | They aren't opening themselves up to luck by posting their work on YouTube and LinkedIn. Software is one of the only jobs where you can 25 | actively demo what you're capabale of in a very public settings. Take advantage of that. 26 | """ 27 | } 28 | 29 | try: 30 | ConvoNewsletterCrew().crew().kickoff(inputs=inputs) 31 | except Exception as e: 32 | raise Exception(f"An error occurred while running the crew: {e}") 33 | 34 | 35 | def train(): 36 | """ 37 | Train the crew for a given number of iterations. 38 | """ 39 | inputs = {"topic": "AI LLMs"} 40 | try: 41 | ConvoNewsletterCrew().crew().train( 42 | n_iterations=int(sys.argv[1]), filename=sys.argv[2], inputs=inputs 43 | ) 44 | 45 | except Exception as e: 46 | raise Exception(f"An error occurred while training the crew: {e}") 47 | 48 | 49 | def replay(): 50 | """ 51 | Replay the crew execution from a specific task. 52 | """ 53 | try: 54 | ConvoNewsletterCrew().crew().replay(task_id=sys.argv[1]) 55 | 56 | except Exception as e: 57 | raise Exception(f"An error occurred while replaying the crew: {e}") 58 | 59 | 60 | def test(): 61 | """ 62 | Test the crew execution and returns the results. 63 | """ 64 | inputs = {"topic": "AI LLMs"} 65 | try: 66 | ConvoNewsletterCrew().crew().test( 67 | n_iterations=int(sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs 68 | ) 69 | 70 | except Exception as e: 71 | raise Exception(f"An error occurred while testing the crew: {e}") 72 | -------------------------------------------------------------------------------- /src/convo_newsletter_crew/tools/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhancockio/convo_newsletter_crew/1b796a2797a4d9539ae7b9c1aa427d3bc1997195/src/convo_newsletter_crew/tools/__init__.py -------------------------------------------------------------------------------- /src/convo_newsletter_crew/tools/word_counter_tool.py: -------------------------------------------------------------------------------- 1 | from typing import Type 2 | 3 | from crewai.tools import BaseTool 4 | from pydantic import BaseModel, Field 5 | 6 | 7 | class WordCounterInput(BaseModel): 8 | """Input schema for WordCounterTool.""" 9 | 10 | text: str = Field(..., description="The text to count words in.") 11 | 12 | 13 | class WordCounterTool(BaseTool): 14 | name: str = "Word Counter Tool" 15 | description: str = "Counts the number of words in a given text." 16 | args_schema: Type[BaseModel] = WordCounterInput 17 | 18 | def _run(self, text: str) -> int: 19 | # Count the number of words in the text 20 | word_count = len(text.split()) 21 | return word_count 22 | 23 | 24 | if __name__ == "__main__": 25 | # Test the WordCounterTool 26 | tool = WordCounterTool() 27 | 28 | test_text = "This is a sample text to count the number of words." 29 | 30 | # Run the tool and print the result 31 | result = tool._run(text=test_text) 32 | print("Word Count:", result) 33 | --------------------------------------------------------------------------------