{"slug": "i-built-an-ai-proposal-writer-in-2-weeks-here-s-the-exact-prompt-architecture-it", "title": "I Built an AI Proposal Writer in 2 Weeks. Here's the Exact Prompt Architecture That Made It Work.", "summary": "A freelance Next.js developer built ProposalAI, a tool that generates tailored Upwork proposals using a two-stage prompt architecture. Instead of a single large prompt, the system first extracts structured data from job posts, then generates proposals based on that data, producing more specific and effective output.", "body_md": "I'm a freelance Next.js developer. Last month I built ProposalAI — a tool\n\nthat reads Upwork job posts and generates tailored proposals. Here's the\n\ntechnical breakdown of what I learned.\n\n**The Problem With Existing AI Proposal Tools**\n\nMost tools on the market use a single large prompt:\n\n\"Write a proposal for this job post: [POST]. Skills: [SKILLS]. Make it professional.\"\n\nPlain Text\n\nThe result? Generic garbage. It starts with \"Hi, I'm interested,\" talks\n\nabout your skills, and ends with \"I look forward to hearing from you.\"\n\n90% of freelancers on Upwork write exactly this.\n\n**My First Attempt (And Why It Failed)**\n\nI started with the same single-prompt approach. The output was indistinguishable\n\nfrom every other AI tool. I almost gave up until I had an insight:\n\n**The problem isn't the model. It's the prompt architecture.**\n\n**The Solution: Two-Stage Prompting**\n\nInstead of one big prompt, I split it into two stages: Extraction and Generation.\n\n**Stage 1: Signal Extraction**\n\n``` js\nconst extractionPrompt = ` You are analyzing a freelance job posting. Extract ONLY these fields as JSON:\n\n{ \"client_company\": \"string | null\", \"specific_problem\": \"string - the exact pain point described\", \"desired_outcome\": \"string - what success looks like\", \"tone\": \"formal | casual | urgent\", \"budget_signal\": \"string | null - any rate mentioned\" }\n\nJob Post: ${jobPost} `;\n\nPlain Text\n\nThis pass just pulls structured data. No generation. No creativity. Just facts.\n\n**Stage 2: Proposal Generation**\n```\n\ntypescript\n\nconst proposalPrompt = ` Write an Upwork proposal using this EXACT structure:\n\nOPEN with: \"${extracted.specific_problem || 'Your project sounds interesting'}\"\n\nReference their SPECIFIC problem, not your skills\n\nDo NOT start with \"Hi\" or \"I read your post\"\n\nPROVE with one quantified result\n\nExample format: \"I helped a client [do X] which resulted in [Y]\"\n\nKeep it specific, not generic\n\nMATCH their tone: ${extracted.tone}\n\nEND with a specific question about their current setup\n\nExample: \"Are you currently using [tool]?\"\n\nKeep total word count under 200\n\nNEVER start sentences with \"I am,\" \"I have,\" or \"I am a\"\n\nClient: ${extracted.client_company || 'not mentioned'} `;\n\nPlain Text\n\n**Why This Works**\n\n**The Tech Stack**\n\n**What I'd Do Differently**\n\n**Conclusion**\n\nThe quality difference between a single-prompt tool and a two-stage extraction\n\nIf you're building something that needs to produce **specific, tailored output**\n\nfrom unstructured input, the two-stage pattern is the single biggest lever\n\nI found.\n\nCheck out the live tool at proposalai.top (free tier available).", "url": "https://wpnews.pro/news/i-built-an-ai-proposal-writer-in-2-weeks-here-s-the-exact-prompt-architecture-it", "canonical_source": "https://dev.to/yan_yan_096c6a71b7657ec65/i-built-an-ai-proposal-writer-in-2-weeks-heres-the-exact-prompt-architecture-that-made-it-286k", "published_at": "2026-07-28 14:18:50+00:00", "updated_at": "2026-07-28 14:36:28.663194+00:00", "lang": "en", "topics": ["artificial-intelligence", "developer-tools", "large-language-models"], "entities": ["ProposalAI", "Upwork", "Next.js"], "alternates": {"html": "https://wpnews.pro/news/i-built-an-ai-proposal-writer-in-2-weeks-here-s-the-exact-prompt-architecture-it", "markdown": "https://wpnews.pro/news/i-built-an-ai-proposal-writer-in-2-weeks-here-s-the-exact-prompt-architecture-it.md", "text": "https://wpnews.pro/news/i-built-an-ai-proposal-writer-in-2-weeks-here-s-the-exact-prompt-architecture-it.txt", "jsonld": "https://wpnews.pro/news/i-built-an-ai-proposal-writer-in-2-weeks-here-s-the-exact-prompt-architecture-it.jsonld"}}