DEV Community

Cici Yu for Momen

Posted on

Rajeevdaz Built an App That Scores Your Resume Against Any Job Before You Apply

Rajeevdaz, who covers AI tools for non-technical builders, built ResumeFit: upload a resume and a job description, and an AI agent scores the match, lists missing keywords and skills, and emails the report. The app has real accounts, a free-to-paid upgrade path through Stripe, and outbound email — the pieces that usually stall a non-technical builder once the frontend looks done.

His split: Momen holds the database, the AI agent, the Stripe and email integrations, and the logic that ties them together. Claude Code, connected to that backend through the Momen no-code plugin, writes the React and Vite frontend against it. He didn't touch the backend by hand — he wrote a structured prompt describing the app and the plugin let Claude Code create the tables, the agent, and the Actionflows directly inside the Momen project.

The finished backend is public: open it in the Momen editor / clone the project.

What the app does

  • Upload a resume and a job description — a resume file plus a job title and job description text
  • Get an ATS match score — an AI agent compares the two and returns a score out of 100
  • See strengths, weaknesses, and missing keywords — the same agent returns a structured breakdown, not just a number
  • Get the report by email — each completed analysis is also sent to the account's inbox
  • Free tier with a paid upgrade — a fixed number of free checks, then a Stripe subscription for unlimited checks

The data model: five app tables plus the built-in account

Momen's built-in account table was extended with free_checks_used, is_pro, and stripe_customer_id — the three fields the free-to-paid gate runs on. Claude Code added four more tables:

  • resume_upload — file_name, the uploaded file, and extracted_text pulled from it
  • job_description — title and content, the job posting being matched against
  • resume_analysis — ats_score, plus strengths, weaknesses, missing_keywords, missing_skills, and suggestions as JSON, a summary, a recommendation, and an email_sent flag, with foreign keys to the resume, the job description, and the account
  • subscription — status, plan, stripe_subscription_id, stripe_customer_id, and current_period_end

An AI agent that scores the match, not just summarizes it

The agent, resume_analyzer, runs on GPT-5.4 and takes two typed inputs: resume_text and job_description_text. Its system prompt instructs it to act as an ATS analyst and senior technical recruiter, scoring the match from 0–100 based on keyword overlap, required-skills coverage, and relevant experience, then returning the score alongside strengths, weaknesses, missing keywords, missing skills, and concrete suggestions — the same fields that land in the resume_analysis table. See Build AI Agents for how an agent like this is configured.

Three Actionflows: gate, checkout, and confirm

  • analyze_resume — checks the account's free-check status first. If checks remain, it runs the AI agent, increments the account's free_checks_used, saves the full analysis, and marks it emailed. If the free allowance is used up and the account isn't on the paid plan, the flow branches to a blocked path instead of calling the agent.
  • create_checkout — starts a Stripe subscription checkout session and returns the session URL the frontend redirects to.
  • confirm_subscription — looks up the account's completed Stripe session after checkout and activates the subscription, flipping is_pro and recording the Stripe subscription and customer IDs.

Momen's own Payment guide covers how a Stripe integration like this is wired into an Actionflow. Outbound email runs through a Resend integration configured as a third-party API that the analyze_resume flow calls after saving the report.

Authentication is Momen's built-in account system, with username, phone, and email sign-in all enabled — the video walks through creating an account with just an email.

Building the frontend with Claude Code

Rajeevdaz's advice here is specific: don't prompt with "build me an app." He wrote a structured prompt — the app's purpose, that Momen is the backend and a custom React and Vite app is the frontend, what the backend needs to handle (auth, AI resume analysis, free-usage tracking, Stripe subscriptions, email), and the user flow from login to running an analysis — and pasted the Momen project's editor link into it so Claude Code knew which backend to build against.

With the Momen plugin installed in Claude Code, that one prompt was enough for it to read the backend context, ask for authentication with the Momen account, and then build out the database, the AI agent, and the three Actionflows in a single pass — followed by the frontend against the live API. The step-by-step Claude Code setup guide covers the same install-and-connect flow.

The first working build used a generic default theme; Rajeevdaz then pulled a reference layout from a UI design site and had Claude Code restyle the frontend to match, in the same session that also wired up the Stripe upgrade button that hadn't been connected yet.

What this costs to run

Rajeevdaz picked Basic when he first created the project, before the subscription flow existed. Once the app has real subscription payments in it, though — which ResumeFit does — Momen's pricing calculator puts the minimum viable plan at Pro: subscription payments are gated to that tier. Sized against a small early-stage launch (1,000 registered users, the free-to-paid usage this app actually has), that comes out to about $111.92/month — the $99 Pro base plus a small object storage add-on and an AI points add-on, both driven by usage rather than by a feature unlock. You can estimate your own project's cost the same way with Momen's pricing calculator.

Rajeevdaz walks through the whole build — the structured prompt, Claude Code provisioning the Momen backend, the UI restyle, and testing the free-to-paid upgrade end to end — in his video. Open in Momen editor / Clone project.

Top comments (0)