Build a Simple Invoice & PO Matching Tool
Your job: Build a tool that reads invoices and purchase orders, finds the important information, and checks if they match. Think of it like a smart assistant that spots mistakes!
Deadline
Submit by October 9, 2025 at 11:59 PM
Perfect for Learning
Use agent-style steps to automate a real finance task with plenty of guidance.
Solo-friendly build plan
Tackle one mission at a time: explore the documents, craft extraction prompts, wire up comparisons, then polish the review UI. Document each win to showcase your individual craftsmanship.
Starter kit checklist
- • Sample invoices & POs
- • Extraction prompt template
- • Matching pseudocode
What You'll Build (Simple 3 Steps!)
Step 1: Read Documents
Your tool reads invoices and POs to extract key information like invoice number, vendor, items, and total amount.
Step 2: Compare & Match
Compare the invoice with the purchase order. Do the numbers match? Is the vendor the same? Are the items correct?
Step 3: Show Results
Display the results in a simple way: "✓ Match" or "✗ Mismatch" with clear explanations of any problems found.
Sample Documents - See What You'll Work With!
Here are examples of an Invoice and Purchase Order. Your tool should extract data from documents like these:
INVOICE
Invoice #: INV-2024-001
Date: March 15, 2024
Vendor:
TechSupply Co.
vendor@techsupply.com
Items:
Total: $1,295.00
PURCHASE ORDER
PO #: PO-2024-001
Date: March 10, 2024
Vendor:
TechSupply Co.
vendor@techsupply.com
Ordered Items:
Total: $1,295.00
✓ Perfect Match! Here's what your tool should show:
- • Invoice #INV-2024-001 matches PO #PO-2024-001
- • Vendor matches: TechSupply Co. ✓
- • Total amount matches: $1,295.00 ✓
- • All items match ✓
- → Status: APPROVED - No issues found!
✗ Mismatch Example - When things don't match:
Imagine this scenario:
- • Invoice total: $1,295.00
- • PO total: $1,295.00
- • PO total: $1,250.00
- → Status: NEEDS REVIEW - Price difference of $45!
- → Your tool should flag this for the finance team to check.
Download Practice Documents
Download 3 invoices and 3 purchase orders below. Use these to test your Invoice & PO matching tool:
Invoices
💡 How to use: Use these documents to test your matching tool. Try matching different invoice and PO combinations to see how your tool handles various scenarios.
What Your Tool Must Do (4 Simple Parts)
1. Upload Documents
Let users upload 3 invoices and 3 purchase orders (PDF or image files).
💡 Example: User clicks "Upload Invoice" → Selects file → Tool shows "Invoice uploaded: INV-2024-001.pdf"
2. Extract Information
Read each document and pull out the important details automatically.
💡 Example: From the invoice, extract → Invoice #: INV-2024-001, Vendor: TechSupply Co., Total: $1,295.00
3. Compare & Match
Check if the invoice matches its purchase order. Flag any differences.
💡 Example: Invoice total ($1,295) matches PO total ($1,295) ✓ → Show "Match!" in green
4. Display Results
Show results clearly with colors: Green = Match, Red = Problem found.
💡 Example: "✓ 2 invoices matched perfectly" and "⚠️ 1 invoice needs review (price difference)"
Quick-Start Resources
Mini briefs
Use the included problem statement and persona notes to keep your UI human and helpful.
Prompt library
Start from polished extraction prompts, then remix them as you learn what works best.
Starter code
Grab snippets for file uploads, JSON cleaning, and agent status updates so you never start from zero.
Technologies You Can Use (Pick What You Know!)
Important: The tech stacks shown below are just sample suggestions to give you ideas. You're free to use any technology stack you're comfortable with — whether it's Vue, Angular, Django, Ruby, or anything else. These examples are simply here to help guide you if you're unsure where to start!
For the User Interface (Frontend):
React or Next.js
Use whichever you're comfortable with
Simple styling
Tailwind CSS or regular CSS - your choice!
Clear buttons & forms
Upload button, "Run Matching" button, results display
For Processing (Backend):
Node.js OR Python
Express (Node) or FastAPI/Flask (Python)
PDF reading library
pdfplumber (Python) or pdf-parse (Node.js)
Optional: AI for extraction
ChatGPT API or Claude API to read documents
Tip: Start Simple, Then Add AI!
Option 1 (Easier): Start with simple text extraction using libraries. Compare text directly.
Option 2 (More Advanced): Use AI (ChatGPT/Claude) to read the documents and extract information smartly. AI can understand the document even if the format varies!
Evaluation Criteria (100 Points)
Minimum Passing Score: 70 / 100
Solo Mastery Tips
Set personal checkpoints
Break the build into daily goals so you can clearly show how you progressed on your own.
Keep a learning log
Capture prompt tweaks, errors, and breakthroughs in a private journal—you’ll reference it when presenting.
Record solo demos
Film quick screen recordings after each milestone to prove every piece was crafted by you.
How to Submit Your Project
📦 What to submit:
- • Your code (GitHub link)
- • Sample invoice and PO files (the ones you tested with)
- • A video showing your tool working (3-5 minutes)
- • Brief explanation of how you built it
- 1
Upload your code to GitHub
Create a public repository. Include a README with instructions on how to run your project.
- 2
Include sample documents
Add the sample invoice and PO you used for testing (or tell us how to create them).
- 3
Record a demo video
Show: 1) Uploading documents, 2) Running the tool, 3) Viewing results. Use Loom or phone camera!
- 4
Write a short reflection
What worked well? What was challenging? Did you use AI tools to help? (Just 3-5 sentences)
- 5
Email everything to us
Send to: hr@aifirelab.com with all your links
📧 Email Subject Line:
Invoice Matcher Challenge - [Your Name] ([Your ID])
✅ What to include in email:
- • GitHub repository link
- • Video demo link (YouTube, Loom, or Google Drive)
- • Your reflection (in email body or Google Doc link)
Helpful Tips to Get Started
- 1Start by drawing the flow on paper: Upload files → Read them → Compare → Show results. Then code each step one by one.
- 2Test with the sample Invoice and PO shown above first! Make sure your code can extract "INV-2024-001" and "$1,295.00" correctly.
- 3Build the UI first with fake data (just type in some example numbers). Once the display works, add the real document reading.
- 4Use AI tools like ChatGPT to help write code! Ask it: "How do I read a PDF file in Python?" or "How do I compare two numbers in JavaScript?"
- 5Add comments in your code explaining what each part does. This helps you remember and helps others learn from your work!