Product Documentation · v1.0

AR Portfolio & Resume Builder

Build a professional profile once — education, experience, skills, projects, certificates and a short video intro — and let AI turn it into an ATS-optimised resume tailored to a target role and job description, a matching cover letter, and an ATS match-score analysis against any pasted job description. Then publish a public, QR-scannable AR portfolio: your projects and certificates render as a 3D "badge constellation" that recruiters can orbit, tap and, on supported devices, place in their room with WebXR AR. The resume AI only rephrases your truthful input — it never invents employers, degrees or dates.

Archana Info Solutions Pvt Ltd Prefix APB_ ₹199 / month Scannable 3D AR portfolio
01 · Overview

One profile, two heroes: an AI resume and a scannable AR portfolio

AR Portfolio & Resume Builder is a job-application toolkit for students and early-career professionals. A student signs in, builds a structured profile (a summary, skills, education, experience, projects, certificates and a 60-second video intro), and the product delivers two things. First, an AI writer produces an ATS-optimised resume tailored to a specific target role and job description, a matching cover letter, and an ATS match-score analysis that compares a resume against a pasted job description with matched and missing keywords plus suggestions. Second, the student publishes a public, QR-scannable AR portfolio — a page with no login where their projects and certificates float as a Three.js "badge constellation" that a recruiter can orbit, tap for detail, and, on AR-capable browsers, place in real space with WebXR. The printed CV carries the QR; the QR opens the living 3D portfolio.

AI resume, cover letter and project polishing — truthful input only ATS match-score analysis against a real job description Public, QR-scannable 3D AR portfolio with a universal orbit fallback
9
App pages
4
AI helper methods
3D
Badge constellation
₹199
per month

Build your profile once

Summary, skills, education, experience, projects, certificates and a short video intro — the single source of truth for everything the AI writes.

AI ATS resume

A clean, print-ready resume tailored to a target role and job description, phrased for applicant-tracking systems.

Matching cover letter

A tailored cover letter for a named company and role, generated from the same truthful profile.

ATS match score

Paste a job description and get a match score with matched and missing keywords and concrete suggestions.

3D AR portfolio

Projects and certificates rendered as an orbit-controlled 3D badge constellation recruiters can scan and explore.

Scannable and shareable

A stable public link and QR code, ready for a printed CV, an email signature or a LinkedIn profile.

The tenant in this product is the individual student — there is no separate organisation layer. Authentication is handled by the shared AIS kit, and every profile, project, certificate, resume, cover letter, ATS scan and subscription row is scoped to StudentID, all under the prefix APB_.
02 · Who it's for

Built for people applying for their next role

Students & final-year graduates

Anyone preparing for campus placements or their first job who needs a strong, role-tailored resume fast.

Early-career professionals

People a few years in who want a cleaner resume and a memorable portfolio for their next move.

Developers & designers

Portfolio-driven candidates who want their projects presented as an interactive 3D showcase, not a flat list.

Career switchers

Anyone re-framing existing, truthful experience toward a new target role and matching it to real job descriptions.

It suits anyone who wants a resume that is tailored to a specific role and a portfolio that stands out when a recruiter scans it. It is a writing and presentation aid — it rephrases and organises the student's own truthful information; it does not fabricate experience, and it is not a guarantee of an interview or an offer.

03 · Business model

Simple flat monthly subscription

AR Portfolio & Resume Builder is billed as a flat monthly subscription per student — one price covers resume generation, cover letters, ATS match scoring, project enhancement and the public AR portfolio. Payment is via Razorpay from the Subscription area, and a successful charge keeps the plan active for one month from the payment date.

₹199
per student / month
Monthly
billing cycle
FREE
default tier on sign-up
One flat fee — generate resumes and cover letters, run ATS scans, enhance project descriptions and keep a live public AR portfolio. No per-document or per-generation charges.
04 · Every page

The page map

PageWhoPurpose
APB_Default.aspxPublic landingMarketing landing page and sign-in entry point; explains the two heroes — the AI ATS resume and the scannable AR portfolio — and links into the shared AIS sign-in flow.
APB_Dashboard.aspxAll signed-inThe post-login home: student name, headline, target role and tier, a profile-completeness meter, stat cards (projects, certificates, resumes, cover letters, ATS scans, best ATS score, whether a video intro exists), quick CTAs into the profile, resume generator and AR portfolio, and a public-portfolio link + QR card.
APB_ProfileBuilder.aspxAll signed-inEdit the profile: summary, skills (as chips), phone, location, LinkedIn/GitHub/Website links, repeatable education and experience rows, plus the headline, target role and a public on/off toggle for the AR portfolio.
APB_ProjectUpload.aspxAll signed-inManage projects (title, description, tech stack, URL, optional image) with a per-project "Enhance with AI" action that polishes rough text into strong resume bullets, and manage certificates (title, issuer, issue date, credential URL) in a second section.
APB_VideoRecorder.aspxAll signed-inRecord a 60-second video intro in the browser via WebRTC with a live countdown and auto-stop, preview it, and upload it to the video handler; shows the current active intro with a re-record option.
APB_ResumeGenerator.aspxAll signed-in heroConfirm a target role, optionally paste a target job description, and generate an ATS-optimised resume rendered in a clean, print-ready layout; reopen past resumes; and run the ATS match-score panel (paste a job description, analyse, see the score with matched/missing keyword chips and suggestions).
APB_CoverLetterGen.aspxAll signed-inEnter a company name, role title and job description and generate a tailored cover letter with copy and print buttons and a highlights list; reopen past cover letters.
APB_ARPortfolio.aspxPublic / preview heroThe public, no-login AR portfolio resolved by a public token — a Three.js 3D badge constellation of the student's projects and certificates with orbit controls, tap-for-detail, the header/summary/skills/video intro, and a WebXR "View in AR" option on supported devices; also runs in a logged-in preview mode.
APB_Analytics.aspxAll signed-inChart.js visualisations of the student's activity — counts of projects, certificates, resumes, cover letters and ATS scans, the best ATS score, and a profile-completeness checklist.
APB_Subscription.aspxSettings capabilityCurrent plan, expiry and days remaining, and a Razorpay checkout to subscribe or renew.
APB_Master.masterLayoutThe shared master page — sidebar navigation, topbar and mobile hamburger menu — every APB_ page renders inside it.
05 · End-to-end flow

From a blank profile to a resume and a scannable portfolio

1

Build your profile

On APB_ProfileBuilder.aspx the student enters a summary, skills, education and experience — all truthful.

2

Add projects & certs

APB_ProjectUpload.aspx collects projects and certificates; "Enhance with AI" polishes rough text into bullets.

3

Record a video intro

An optional 60-second WebRTC intro is captured and uploaded via APB_VideoUploadHandler.ashx.

4

Generate the resume

GenerateResume builds an ATS resume for a target role; GenerateCoverLetter writes a matching letter.

5

Check the ATS score

PredictATSScore compares the resume to a pasted job description and lists matched and missing keywords.

6

Publish & share

Toggle the portfolio public, share the QR from APB_ARPortfolio.aspx, and recruiters explore it in 3D.

Every AI call is defensive: if generation or analysis fails or returns malformed output, the page shows a clear message rather than a raw error, and nothing is saved half-complete. Raw JSON arrays returned by the AI (experience, projects, matched/missing keyword lists) are parsed defensively.
06 · The AI helpers

Four focused AI passes, all routed through APB_ClaudeHelper

All AI calls are routed through APB_ClaudeHelper and never throw — on any error or malformed reply, the calling page shows a clear message instead of a raw exception. Crucially, every prompt instructs the model to rephrase and organise only the student's supplied, truthful information and to never invent employers, degrees, dates or achievements.

GenerateResume — an ATS-optimised, role-tailored resume

You are a professional resume writer. Using ONLY the truthful profile
data provided (never inventing employers, degrees, dates or achievements),
write an ATS-optimised resume for the target role "{{target_role}}" and,
if provided, tailored to this job description:
{{target_job_description}}
Profile data (JSON): {{profile_json}}
Return STRICT JSON only: { "summary": "...", "skills": ["..."],
  "experience": [ { "title":"...", "org":"...", "period":"...",
    "bullets":["..."] } ], "education": [ { "degree":"...",
    "institution":"...", "period":"...", "detail":"..." } ],
  "projects": [ { "title":"...", "tech":"...", "bullets":["..."] } ],
  "certifications": ["..."] }
Rephrase for clarity and keyword coverage. No emojis, no superlatives,
no invented facts.

GenerateCoverLetter — a matching cover letter

Write a concise, professional cover letter for the role "{{role_title}}"
at "{{company_name}}", using ONLY the truthful profile provided and, if
present, tailoring to this job description:
{{job_description}}
Profile data (JSON): {{profile_json}}
Return STRICT JSON: { "greeting":"...", "body":["paragraph 1",
  "paragraph 2", "paragraph 3"], "closing":"...",
  "highlights":["a short highlight","another"] }
Keep it honest, specific and free of invented claims. No emojis, no
superlatives.

PredictATSScore — the ATS match-score analysis

Compare this resume text to the job description and estimate how well an
applicant-tracking system would match them.
Resume: {{resume_text}}
Job description: {{job_description}}
Return STRICT JSON: { "score": 0-100, "matchedKeywords":["..."],
  "missingKeywords":["..."], "suggestions":["specific, actionable
  suggestion", "another"] }
Base the score only on genuine overlap of skills, tools and responsibilities.
Be honest; do not inflate. No emojis, no superlatives.

EnhanceProjectDescription — polish rough project text into bullets

Rewrite this rough project description into a strong, concise summary and
2-4 resume bullet points aimed at a "{{role}}" role, using ONLY the facts
given (never inventing metrics or outcomes that are not implied).
Raw description: {{raw_description}}
Return STRICT JSON: { "summary":"one clear sentence",
  "bullets":["action + result bullet","another"] }
Keep it factual and specific. No emojis, no superlatives, no invented
numbers.
Generated resumes, cover letters and ATS scans are saved to the student's account (via APB_usp_SaveResume, APB_usp_SaveCoverLetter and APB_usp_SaveResumeScan) so they can be reopened later, and each can be regenerated for a different target role or job description.
07 · ATS match scoring

An honest read on how a job description matches your resume

Applicant-tracking systems (ATS) rank resumes by how well they match a job description's keywords and requirements. The ATS panel on the Resume Generator lets a student paste a target job description alongside their resume text and get an estimated match score from 0 to 100, a list of keywords that are matched, a list of important keywords that appear to be missing, and specific, actionable suggestions to close the gap. The score is an estimate based on genuine skill, tool and responsibility overlap — it is a guide for improving a resume, not a promise of how any specific employer's ATS will actually rank it.

A clear 0–100 score

A single gauge showing overall alignment between the resume and the pasted job description.

Matched keywords

The skills, tools and responsibilities the resume already covers, shown as chips.

Missing keywords & fixes

Important terms the resume lacks, plus concrete suggestions — add only what is genuinely true of you.

Honesty guardrail: the suggestions may point out missing keywords, but a student should only add a skill or keyword if it genuinely reflects their real experience. The tool exists to surface truthful gaps, not to encourage padding a resume with things the applicant cannot back up in an interview.
08 · The AR portfolio — please read this section

A universal 3D constellation, with WebXR AR where the device supports it

The public AR portfolio always works as an orbit-controlled 3D "badge constellation" in the browser. The optional "View in AR" placement uses the WebXR Device API's immersive-ar mode, which is only available on AR-capable Android/Chrome browsers. When WebXR immersive-ar is not available — notably on iOS Safari and most desktop browsers — the page shows an honest note and keeps the fully-working 3D orbit view as the universal fallback. This is a deliberate, honest design choice.

  • The constellation is rendered with Three.js (ESM importmap, three@0.160.0 from a CDN); each project and certificate becomes a glowing badge/node orbiting a central name/headline card.
  • Everyone gets OrbitControls — drag to rotate, scroll to zoom, tap a badge to open a detail panel (project title/description/tech/link, or certificate title/issuer/date/link).
  • The "View in AR" button appears only after navigator.xr && await navigator.xr.isSessionSupported('immersive-ar') returns true; it hit-tests a surface and places the constellation group in real space.
  • Because the 3D orbit view needs no special hardware, the portfolio opens on essentially any modern browser from a QR scan — the AR placement is a bonus for supported devices, not a requirement.

Marketing and in-app copy describe this accurately — "scan the QR to explore a 3D portfolio, and place it in your room in AR on supported devices" — never implying AR placement works everywhere.

Three.js badge constellation

Projects and certificates float as interactive 3D badges with a gentle idle rotation, orbit controls and tap-for-detail.

QR-scannable, no login

A stable public token resolves the portfolio server-side; recruiters open it straight from a scan with no account needed.

WebXR where supported

On AR-capable Android/Chrome, a "View in AR" button hit-tests a surface and places the constellation in the room.

Public toggle & graceful states

A student can turn the public portfolio off; an invalid or private token shows a gentle "not available" message.

If a recruiter on iPhone or a laptop cannot see a "View in AR" button, that is expected — immersive-ar is not available on those browsers. The 3D orbit view they do see is the intended universal experience, not a degraded one.
09 · Architecture & stack

The stack

Backend

ASP.NET Web Forms, VB.NET, .NET Framework 4.7.2. AJAX via page <WebMethod> PageMethods returning JSON. No full-page postbacks for data operations.

Database

SQL Server (shared db_9b0fff_aiscompany). Parameterised CDATA SQL and stored procedures via APB_DBHelper, soft delete (IsDeleted), audit columns. Prefix-scoped to APB_.

Frontend

Tailwind CDN, purple/teal glassmorphism, Font Awesome 6.5.1, Three.js (ESM importmap) with OrbitControls and the WebXR AR button for the 3D portfolio, WebRTC (getUserMedia + MediaRecorder) for the video intro, QRCode.js for the share QR, and Chart.js for analytics. Master page APB_Master.master.

Integrations

Groq/Claude AI routing (resume, cover letter, ATS scoring, project enhancement), Razorpay (subscription checkout + webhook), WhatsApp (1msg.io) portfolio-share notices, Telegram build/activity alerts.

Shared helpers referenced across the pages: APB_DBHelper (GetTable / GetTableSP / GetTableSPSet / Execute / ExecuteSP / Scalar / P), APB_ClaudeHelper (GenerateResume, GenerateCoverLetter, PredictATSScore, EnhanceProjectDescription), APB_WhatsApp, and the shared AIS RBAC/auth kit for sign-in, since there is no separate APB_Auth table — the student's identity comes from the shared kit and StudentID is the OrgId.

10 · Data model

A student-scoped data model

Tables

APB_Students

The tenant student — name, contact details, headline, target role, public token, public flag, subscription tier and expiry. StudentID is the OrgId.

APB_Profiles

The one profile per student — summary, skills, phone, location, LinkedIn/GitHub/Website URLs, plus education and experience stored as JSON.

APB_Projects

The student's projects — title, description, tech stack, project URL and optional image, with sort order and soft delete.

APB_Certificates

The student's certificates — title, issuer, issue date and credential URL.

APB_VideoIntros

The 60-second video intro — stored URL, duration in seconds and an optional transcript, with an active flag.

APB_Resumes

Generated resumes — target role, job description, the structured resume JSON and a created timestamp for reopening.

APB_CoverLetters

Generated cover letters — company, role, job description and the generated letter content.

APB_ResumeScans

ATS match-score analyses — the score, matched/missing keyword lists and suggestions against a pasted job description.

APB_Subscriptions

Razorpay subscription/order rows — plan, amount, dates, status, webhook payload.

APB_WhatsAppLog

Outbound WhatsApp message log — mobile number, message type, body, status.

APB_error_log

Page/method-level error log for Try-Catch reporting.

APB_activity_log

Activity trail — tenant StudentID and acting kit-user UserID kept distinct.

Key stored procedures

APB_usp_GetStudentResolve the active student row plus a profile-completeness percentage.
APB_usp_GetProfile / APB_usp_SaveProfileRead or upsert the student's profile (summary, skills, links, education/experience JSON).
APB_usp_SaveProject / APB_usp_GetProjects / APB_usp_DeleteProjectAdd or edit a project (returns its id), list projects, or soft-delete one.
APB_usp_SaveCertificate / APB_usp_GetCertificates / APB_usp_DeleteCertificateAdd or edit a certificate, list certificates, or soft-delete one.
APB_usp_SaveVideoIntro / APB_usp_GetActiveVideoIntroStore the uploaded video intro; fetch the current active intro.
APB_usp_SaveResume / APB_usp_GetResumes / APB_usp_GetResumeSave a generated resume, list past resumes, reopen a single resume.
APB_usp_SaveCoverLetter / APB_usp_GetCoverLettersSave a generated cover letter and list past cover letters.
APB_usp_SaveResumeScan / APB_usp_GetResumeScansSave an ATS match-score analysis and list past scans.
APB_usp_GetPortfolioByTokenPublic: resolve a public portfolio by token in three result sets — header/profile/video, projects, certificates.
APB_usp_GetAnalyticsHeadline counts for the dashboard and analytics view.
APB_usp_SaveSubscriptionRecord a subscription/order row; extends the student's plan on a paid/active/charged webhook event.
11 · Setup & deploy

Deploy via sqlcmd

Apply the product schema directly to the shared SQL Server instance, then verify object counts. The script is idempotent and prefix-scoped — it never touches other products' objects.

sqlcmd -S sql5083.site4now.net -U db_user -P ****** -d db_9b0fff_aiscompany ^
       -i C:\asp.net\CompanyProjects\AIAis\ArProjects\ARPortfolioBuilder\APB_Database.sql

-- verify
SELECT COUNT(*) FROM sys.tables     WHERE name LIKE 'APB_%';     -- the product tables
SELECT COUNT(*) FROM sys.procedures WHERE name LIKE 'APB_usp_%'; -- the proc layer

Serve the site over HTTPS at /ArProjects/ARPortfolioBuilder/ — required for getUserMedia video-intro capture and for WebXR. Set the Groq/Claude and Razorpay credentials in the shared config. Sign in, build a profile, add a project and enhance it, record a short video intro, generate a resume for a target role, run an ATS scan against a job description, generate a cover letter, toggle the portfolio public, and open the public AR portfolio link to confirm the 3D constellation and QR both work.

12 · Credentials

Demo & review accounts

Account
Username
Password
Demo student (admin)
admin@demo.apb
Demo@123
Demo student (manager)
manager@demo.apb
Demo@123
Module Super Admin
apb.super@archanainfo.com
Apb@2026
Students sign in through the shared AIS kit via the APB_Default login. The demo student "Demo Student" is seeded with a complete profile, three sample projects, two certificates, a video intro row, a generated resume and an ATS scan, and a fixed public portfolio token (44444444-4444-4444-4444-444444444444) so the AR-portfolio demo URL is stable. The reviewer/demo account is granted full, non-expiring access so every feature unlocks without hitting a paywall or checkout — important for app-store and Play-review access checks.
13 · Privacy & safety

How your profile, resume text and video intro are handled

Video intro, plainly stated: the device camera and microphone are used only while the student is recording their intro on the Video Recorder page. The recording is captured in the browser via getUserMedia and uploaded, at the student's choice, to their own account; nothing is recorded or uploaded until the student chooses to save. A student can skip the video entirely and still use every other feature.

Server-side gating

Every authenticated page and PageMethod re-checks sign-in and the calling student's own StudentID — never trusting the client.

Student scoping

All profiles, projects, certificates, resumes, cover letters, scans and subscription rows are filtered by the signed-in student's StudentID, so one student never sees another's data.

Public only when chosen

The AR portfolio is reachable by token only when the student sets it public; the public procedure returns nothing for a private or invalid token.

Defensive AI parsing

AI responses for resumes, cover letters and ATS scoring are parsed defensively; malformed output surfaces as a clear on-screen message rather than a raw error or a corrupted save.

Payment verification

Razorpay orders are created server-side; webhook events are HMAC-verified before a subscription is marked paid.

Truthful-input guardrail

Every AI prompt instructs the model to rephrase only the student's supplied facts and to never invent employers, degrees, dates or metrics.

Profile data, projects, certificates, generated resumes, cover letters and scans are stored against the student's own account to support reopening and reuse; they are not used to train any model. A public AR portfolio deliberately shows only what the student chose to publish.
14 · Future ideas / roadmap — as on today, 2026-07-02

Where AR Portfolio & Resume Builder goes next

  • Multiple resume templates: a choice of clean, print-ready resume layouts and colour themes beyond the current default.
  • Recruiter view analytics: anonymous counts of how many times a public AR portfolio was opened and which projects were tapped, for the student's own dashboard.
  • LinkedIn / GitHub import: an optional import to pre-fill the profile from a public LinkedIn or GitHub URL, still fully editable and truthful before use.
  • Interview question prep: AI-generated likely interview questions drawn from the target job description and the student's own truthful projects.
  • Video intro transcription: automatic transcription and a short AI summary of the 60-second intro, stored alongside the recording.
  • Custom domains for portfolios: a friendly public URL or custom sub-path for a student's AR portfolio beyond the token link.
  • Richer AR scenes: optional layouts for the badge constellation (timeline, grid, orbit) and a downloadable model for offline AR viewers.