Short answer: You can ship a real, working AI project in a weekend using a small LLM API call, a simple frontend, and a free hosting tier. The five projects below, a Taglish customer-reply helper, a receipt categorizer, a study-buddy quiz generator, a barangay FAQ chatbot, and a job-post summarizer, each cost single-digit pesos per hundred uses on models like GPT-5 mini or Claude Haiku 4.5, and each deploys for free on Vercel.
Most "learn AI" tutorials end at a chatbot that says hello. That doesn't get you hired or get you a client. These five projects are scoped to be finishable in a weekend, each solves a problem a Filipino actually has, and each one is portfolio-worthy because it does something specific instead of "chat with AI about anything."
Before you start: one API key, one pattern
All five projects use the same basic pattern: take some input, send it to an LLM with a clear instruction, return the structured result. Pick one provider to start:
- OpenAI, using the Responses API with the
openainpm package. - Anthropic (Claude), using the Messages API with the
@anthropic-ai/sdknpm package.
Both work fine for everything below. This guide shows OpenAI's SDK for most examples and Anthropic's for one, so you see both shapes. Get your API key from platform.openai.com or console.anthropic.com, and always load it from an environment variable, never hardcoded. Check each provider's current signup terms yourself before assuming any starting credit; free trial credit offers change and shouldn't be the reason you pick one over the other for a weekend project this size.
# .env
OPENAI_API_KEY=YOUR_OPENAI_KEY
ANTHROPIC_API_KEY=YOUR_ANTHROPIC_KEY
Project 1: Taglish customer-reply helper for online sellers
What it does: An online seller (Shopee, Lazada, Facebook Marketplace) pastes a buyer's message, picks a tone, and gets a polite Taglish reply drafted for them. Huge time-saver for anyone juggling dozens of chats a day.
Stack: Next.js frontend, one API route, OpenAI's Responses API.
// app/api/reply/route.ts
import OpenAI from "openai";
const client = new OpenAI(); // reads OPENAI_API_KEY from env
export async function POST(req: Request) {
const { buyerMessage, tone } = await req.json();
const response = await client.responses.create({
model: "gpt-5-mini",
input: `You are a helpful assistant for a Filipino online seller. Write a ${tone} Taglish reply to this buyer message. Keep it short and natural, the way a real seller would type it.\n\nBuyer message: "${buyerMessage}"`,
});
return Response.json({ reply: response.output_text });
}
Cost estimate: At GPT-5 mini's published rate of $0.25 per million input tokens and $2.00 per million output tokens, a typical reply (roughly 150 input tokens, 80 output tokens) costs a small fraction of a centavo. Even a seller running 500 replies a day stays well under a dollar a month in API cost.
Deploy: Push to GitHub, import the repo into Vercel, add your API key as an environment variable in the project settings, deploy.
Make it portfolio-worthy: Add a "tone" selector (formal, friendly, apologetic-for-delay), log a handful of before/after examples on your portfolio page, and write one paragraph about the prompt design decisions you made.
Project 2: Receipt and expense categorizer
What it does: Upload a photo of a receipt, or type in the line items, and get them automatically sorted into expense categories (food, transport, supplies, utilities) for budgeting or small-business bookkeeping.
Stack: For a weekend build, skip OCR complexity and let the user paste receipt text; ask the model to both extract and categorize in one structured call.
import OpenAI from "openai";
const client = new OpenAI();
const response = await client.responses.create({
model: "gpt-5-mini",
input: `Extract line items from this receipt text and categorize each as one of: Food, Transport, Supplies, Utilities, Other. Return a JSON array of objects with "item", "amount", and "category".\n\nReceipt text:\n${receiptText}`,
});
const categorized = JSON.parse(response.output_text);
Cost estimate: A typical receipt (under 300 tokens of text in, similar out) costs a fraction of a centavo per receipt at GPT-5 mini pricing. Even a small business logging 20 receipts a day spends well under ₱50 a month.
Deploy: Same Vercel path. Store results in a free-tier Supabase table if you want persistence across sessions, with Row Level Security enabled so each user only sees their own expenses.
Make it portfolio-worthy: Add a monthly total chart. A receipt scanner is common; a receipt scanner with a spending dashboard is a product.
Project 3: Study-buddy quiz generator from notes
What it does: A student pastes their notes (reviewer, lecture transcript, textbook excerpt), and the app generates a short quiz with an answer key, useful for board exam reviewees, senior high schoolers, and college students during exam week.
Stack: This one benefits from a longer, more capable model since notes can be dense. Anthropic's Claude Haiku 4.5 is a good cost-to-quality fit here.
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic(); // reads ANTHROPIC_API_KEY from env
const message = await client.messages.create({
model: "claude-haiku-4-5",
max_tokens: 1024,
messages: [
{
role: "user",
content: `Generate a 5-question quiz (mix of multiple choice and short answer) from these notes, with an answer key at the end. Notes:\n\n${notesText}`,
},
],
});
const quiz = message.content;
Cost estimate: At Claude Haiku 4.5's published rate of $1 per million input tokens and $5 per million output tokens, a typical set of notes (around 1,500 input tokens) plus a generated quiz (around 500 output tokens) costs well under a centavo per generation.
Deploy: Vercel again. If you want students to save quiz history, add Supabase auth so each student's quizzes stay private to their account.
Make it portfolio-worthy: Support difficulty levels (easy/medium/hard) and let users export the quiz as a printable page. Review-center-style tools have real demand around board exam season in the Philippines.
Project 4: Barangay FAQ chatbot over a small document
What it does: A barangay, homeowners' association, or small local office uploads their FAQ document (requirements for a barangay clearance, office hours, fees) and residents can ask questions in natural language instead of calling or scrolling a long PDF.
Stack: For a weekend build, skip a full vector database. Paste the FAQ document directly into the prompt (it's small enough), and let the model answer strictly from that content.
import OpenAI from "openai";
const client = new OpenAI();
const response = await client.responses.create({
model: "gpt-5-mini",
input: `You are a helpful assistant for a barangay office. Answer the resident's question using ONLY the information in the FAQ document below. If the answer isn't in the document, say you're not sure and suggest they visit the barangay hall directly.\n\nFAQ document:\n${faqDocument}\n\nResident's question: ${userQuestion}`,
});
Cost estimate: If the FAQ document is around 2,000 tokens and gets included in every request, that's still under half a centavo per question at GPT-5 mini rates. If the office expects heavier traffic (thousands of questions a month), that's the point to move to a proper retrieval setup, which our MCP guide touches on for connecting tools and data sources more efficiently.
Deploy: Vercel, with the FAQ document stored as a static file or a single Supabase row you can update without redeploying.
Make it portfolio-worthy: This is a genuinely useful civic tool. Reach out to your own barangay or a local organization and offer to actually deploy it for them; a real user beats a demo every time on a resume.
Project 5: Job-post summarizer
What it does: Paste a long job posting (common on OnlineJobs.ph and LinkedIn, often padded with boilerplate) and get back the essentials: role, required skills, pay range if stated, red flags (vague pay, "fast-paced environment" as the only culture description, unusually broad scope for the title).
Stack: Straightforward single-call structured extraction.
import OpenAI from "openai";
const client = new OpenAI();
const response = await client.responses.create({
model: "gpt-5-mini",
input: `Summarize this job posting into: Role, Key requirements (max 5 bullets), Stated pay (or "not stated"), and Notable red flags (or "none noticed"). Job posting:\n\n${jobPostText}`,
});
Cost estimate: A typical job post (500 to 1,500 tokens) costs a small fraction of a centavo per summary at GPT-5 mini rates. Even summarizing hundreds of postings while job hunting costs pennies total.
Deploy: Vercel. Add a browser bookmarklet or a simple paste-box UI; you don't need a browser extension for a weekend build.
Make it portfolio-worthy: Track which red flags come up most often across postings you've summarized and turn that into a short blog post or LinkedIn write-up. That's a second portfolio piece from the same project.
Rate limits and timeouts to know about
At weekend-project traffic, you're unlikely to hit either provider's rate limits, but it's worth knowing they exist before you're debugging a mysterious 429 error at 2am.
- OpenAI rate-limits by usage tier, based on cumulative spend, across metrics like requests per minute (RPM) and tokens per minute (TPM). A new Tier 1 account (reached after roughly $5 in payments) gets meaningfully lower RPM and TPM ceilings than higher tiers, which only matters once a project gets real, sustained traffic. See OpenAI's own rate limits guide for your account's current tier and numbers.
- Anthropic rate-limits per organization across requests per minute, input tokens per minute, and output tokens per minute, also scaled by usage tier. See Anthropic's rate limits documentation for current tier thresholds.
- Timeouts matter more than rate limits for these five projects. If you deploy your API route to Vercel's free Hobby plan, functions can run up to 300 seconds before timing out, more than enough for a single LLM call, but design your frontend to show a loading state rather than assuming a response in under a second, since generation time varies with prompt and response length.
If a project you build here ever gets real traffic, that's the point to check your actual tier and limits directly in your provider dashboard rather than assuming the numbers above still apply to your account.
Cost estimates, side by side
| Project | Model used | Typical cost per use | Realistic monthly cost |
|---|---|---|---|
| Taglish reply helper | GPT-5 mini | Under ₱0.01 | Under ₱50 at 500 replies/day |
| Receipt categorizer | GPT-5 mini | Under ₱0.01 | Under ₱50 at 20 receipts/day |
| Study-buddy quiz generator | Claude Haiku 4.5 | Under ₱0.05 | Under ₱150 at moderate student use |
| Barangay FAQ chatbot | GPT-5 mini | Under ₱0.05 | Depends heavily on traffic volume |
| Job-post summarizer | GPT-5 mini | Under ₱0.01 | Under ₱30 for personal job hunting |
These are rough estimates based on published per-token pricing and typical prompt sizes, not guarantees. Actual cost scales with how long your prompts and responses are, so test with your real inputs before assuming a number.
How to actually ship these this weekend
- Pick one, not all five. A finished small project beats five half-built ones on a portfolio.
- Use Claude Code, Cursor, or your AI tool of choice to scaffold the Next.js app and the API route, then read the code it writes, especially anywhere the API key gets used, to make sure it's not accidentally hardcoded or exposed to the browser.
- Deploy to Vercel the same day you get it working locally. A live link is worth more than a screenshot.
- Write two paragraphs about it for your portfolio: what problem it solves, and one specific technical decision you made and why.
- Share it in our Discord. Feedback from people who'll actually try to break it is worth more than launching into silence.
Frequently asked questions
Which LLM API should a beginner start with?
Either OpenAI or Anthropic works fine for these projects; both have simple SDKs. Check each provider's current signup page for any trial credit, since those offers change. Pick whichever one a friend or community member already uses, so you have someone to ask when you get stuck on setup.
How much does it actually cost to run one of these projects?
Based on published per-token pricing (GPT-5 mini at $0.25/$2.00 per million input/output tokens, Claude Haiku 4.5 at $1/$5 per million), a single request for any of these five projects typically costs well under a centavo to a few centavos. Costs only become meaningful at high volume, hundreds or thousands of requests a day.
Do I need to know machine learning to build these?
No. All five projects call an existing LLM through its API; you're writing normal application code (a form, an API route, a database call), not training or fine-tuning a model. The skill here is prompt design and basic full-stack development, not ML research.
Where should I host these projects for free?
Vercel's free Hobby tier comfortably handles all five projects at hobby-project traffic levels. Just remember its terms restrict the Hobby plan to personal, non-commercial use, so move to a paid tier if a project starts generating revenue.
How do I keep my API key safe when deploying?
Never hardcode it in your source files or commit it to a public GitHub repo. Set it as an environment variable in your hosting provider's dashboard (Vercel's Project Settings has an Environment Variables section), and only reference it from server-side code (API routes), never from client-side code that ships to the browser.