DEV Community

Abdul Ali
Abdul Ali

Posted on

Luna API buit with Xano Backend

Xano AI-Powered Backend Challenge: Public API Submission

How I Built a Developer Opportunity API in 3 Days with Xano + AI

Cover Image

An AI-powered API that matches developers with hackathons, jobs, and grants - built for the Xano Challenge


The Problem

I was tired of manually searching 10+ platforms every week:

  • DevPost for hackathons
  • LinkedIn for jobs
  • Various grant databases
  • Twitter for announcements

Why isn't there ONE API that aggregates all of this and tells me what's actually relevant to MY skills?

So I built one. In 3 days.


What I Built

The Developer Opportunity Aggregator API is a RESTful API that:

  1. Aggregates hackathons, jobs, grants, scholarships, and learning resources
  2. Matches opportunities to your developer profile using an intelligent algorithm
  3. Ranks results by how well they fit YOUR skills, experience, and interests

First AI Prompt used to almost fully build out the whole api backend

Build this API in Xano exactly as specified in this plan. Start with the database schema, then build endpoints in this order:[attached the plan thats in the project root]. Use XanoScript for the matching algorithm logic.

The Magic: Smart Matching

Instead of just filtering, the API calculates a match score (0-100) for each opportunity:

{
  "title": "AI Hackathon 2025",
  "match_score": 92,
  "match_reasons": [
    "Matches 3/4 required skills (TypeScript, Python, AI/ML)",
    "Experience level is perfect fit (Advanced)",
    "Aligns with 2/3 interests (AI, Backend)"
  ]
}
Enter fullscreen mode Exit fullscreen mode

The algorithm weights:

  • Skills Match (40%) - Do your skills match the requirements?
  • Experience Level (30%) - Are you qualified?
  • Interest Alignment (20%) - Does it match what you're looking for?
  • Location (10%) - Remote-friendly? Relocation works?

The Tech Stack

  • Xano - No-code backend for database + API
  • AI-Assisted Development - Generated initial endpoint logic
  • OpenAPI 3.1 - Full documentation spec

Why Xano?

I needed to ship fast. Xano let me:

  • Design database schema visually
  • Build REST endpoints without writing server code
  • Focus on business logic (the matching algorithm)

Key Endpoints

1. Register Developer Profile

curl -X POST "https://api.example.com/api:v1/developers_register" \
  -d '{
    "email": "dev@example.com",
    "skills": ["TypeScript", "React", "Python"],
    "experience_level": "advanced",
    "interests": ["AI", "Backend"]
  }'
Enter fullscreen mode Exit fullscreen mode

2. Get Personalized Matches

curl "https://api.example.com/api:v1/opportunities_matching?developer_id=YOUR_ID"
Enter fullscreen mode Exit fullscreen mode

Returns opportunities sorted by match score!

3. Search with Filters

curl "https://api.example.com/api:v1/opportunities_search?type=hackathon&skills=Python"
Enter fullscreen mode Exit fullscreen mode

The Matching Algorithm

Here's the core logic (simplified):

function calculateMatchScore(developer, opportunity) {
  let score = 0;

  // Skills (40% weight)
  const matchedSkills = intersection(
    developer.skills,
    opportunity.required_skills
  );
  score += (matchedSkills.length / opportunity.required_skills.length) * 40;

  // Experience (30% weight)
  if (developer.level >= opportunity.required_level) {
    score += 30;
  } else {
    score += 15; // partial credit
  }

  // Interests (20% weight)
  const matchedInterests = intersection(
    developer.interests,
    opportunity.category
  );
  score += (matchedInterests.length / opportunity.category.length) * 20;

  // Location (10% weight)
  if (opportunity.remote || developer.willing_to_relocate) {
    score += 10;
  }

  // Deadline bonus
  if (daysUntilDeadline < 3) {
    score += 5;
  }

  return Math.min(score, 100);
}
Enter fullscreen mode Exit fullscreen mode

What I Learned

1. Data modeling is everything

Spent the first day just designing the schema. Worth it.

2. Test as you build

Created a Postman collection alongside development. Caught bugs early.

3. AI accelerates, doesn't replace

AI helped generate boilerplate. I still had to:

  • Fix edge cases
  • Handle null values properly
  • Debug UUID parsing errors

What's Next?

  • [ ] Connect real data sources (DevPost API, GitHub Jobs)
  • [ ] Add email notifications for high-match opportunities
  • [ ] Build a simple frontend

Try It Yourself

API Documentation: Documentation

Live API: https://xmsx-hkkx-nz6p.n7e.xano.io/api:v1

GitHub: Github

Postman Collection: Postman


Thanks for Reading!

If you're building something similar or have questions about the Xano + AI workflow, drop a comment below!


Built for the Xano AI-Powered Backend Challenge 2025

xano #api #ai #hackathon #buildingpublic

Top comments (0)