2. Candidate guide
This is the complete reference for everything a candidate (job-seeker, freelancer, mentor, learner) can do on Ditto Up. Everything in this section assumes you are signed in unless stated otherwise.
In this section
- 2.1 Building your candidate profile
- 2.2 Profile setup wizard
- 2.3 Adding skills, credentials, licenses and certifications (terms)
- 2.4 Uploading documents and parsing your résumé
- 2.5 Profile photo and basic details
- 2.6 The four candidate videos
- 2.7 Profile visibility (public / unlisted / private)
- 2.8 Searching and applying for jobs
- 2.9 The application form
- 2.10 Saved jobs and email alerts
- 2.11 Job recommendations
- 2.12 Candidate settings (everything in
/candidate-settings)- 2.13 Receiving feedback / testimonials
- 2.14 Removing your candidate profile
2.1 Building your candidate profile
Your candidate profile is your public-facing identity on Ditto Up. It is what employers see when you apply for a job, what comes up in search results, and what is linked from any post or message you send.
A complete profile contains:
- Identity — name, headline, profile photo, location.
- About me — short biography (a paragraph or two).
- Terms — the skills, licenses, certifications, credentials and degrees you claim. Each one links to the marketplace term page and acts as a search keyword.
- Documents — résumé, LinkedIn profile copy, certificates and any supporting PDFs.
- Videos — intro video, VBQ skill demonstrations, "what I'm looking for" and "what I can help with" (see section 2.6).
- Pay & availability — minimum acceptable pay, willingness to relocate, working hours.
- Contact preferences — whether your phone/email is visible on the public profile, and how strangers can message you.
- Visibility setting — Public / Unlisted / Private (see section 2.7).
You can edit your profile at any time at /profile.
2.2 Profile setup wizard
Right after the one-time signup payment, you land on the wizard at /accounts/setup-profile/. It walks you through the minimum required to be visible to employers:
- Step 1 — Basic info: confirm your name and add a headline (one line, e.g. "Industrial electrician — IBEW Local 11").
- Step 2 — Location: type your city/zip in the autocomplete field. The platform uses our internal locality database first (instant), falling back to Google if needed (see 5.4 Radius & location autocomplete).
- Step 3 — Add at least one term: search for a skill or credential (e.g. plasma arc welding, journeyman electrician license) and click Add. You need at least one term for any employer to find you.
- Step 4 — Record an intro video (optional but strongly recommended): a 30–90 second self-introduction. See 4.2 Recording an intro video.
- Step 5 — Pick a visibility level: defaults to Unlisted until you finish; flip to Public to enter the directory.
You can skip the wizard, but unfinished profiles stay Unlisted by design.
2.3 Adding skills, credentials, licenses and certifications (terms)
A term in Ditto Up is anything in the platform's marketplace dictionary. Terms come in several types:
| Type | Examples |
|---|---|
occupational_skill |
Python programming, MIG welding, patient triage |
license |
California Class C driver's license, RN nursing license |
certification |
AWS Certified Solutions Architect, PMP, OSHA 30 |
credential (W3C Verifiable Credentials) |
Open Badge — Forklift Operator, signed industry credentials |
education_degree |
Bachelor's in Mechanical Engineering |
equipment |
Caterpillar 320 excavator, Bridgeport milling machine |
title |
Senior Site Reliability Engineer, Charge Nurse |
To add terms to your profile:
- Open
/candidate-settings(or use the Skills section on/profile). - Type in the Add term search box. As you type, an autocomplete shows matches from the marketplace — first from internal data, then from external sources (Credential Engine, O*NET).
- Click a result to add it. It appears as a chip with the term's name and type.
- To remove a term, click the × on the chip.
The list is saved automatically (AJAX to /update-Users-Terms). To pull the current list programmatically, call /get-Users-Terms.
Why terms matter Every term you add becomes a discovery channel:
- Employers searching for that skill/license will see you.
- You can record a VBQ video against the term (a 30–120 second answer to a term-specific question) and have it AI-graded.
- The term's marketplace page (
/<term_type>/<term_name>/<term_ctid>/) lists you as one of the candidates posting it.
2.3.1 Term tooltips and definitions
Hover the small i icon next to any term anywhere on the site to see the definition, hierarchy and marketplace stats served from /tooltip.
If a term has no definition, the platform attempts to auto-generate one via LLM (/get-llm-term-definition) — the result is cached and shown next time. If you spot a wrong definition, use the Report link on the term detail page.
2.4 Uploading documents and parsing your résumé
You can attach any number of supporting documents to your profile. Supported formats: PDF, DOCX, DOC, TXT.
2.4.1 Resume upload (with auto-parsing)
- Go to
/candidate-settings→ Documents → Upload résumé, or use the dedicated/resume-uploadendpoint. - Drag-and-drop or browse to your résumé file (max 10 MB; nginx upload cap is 55 MB but we recommend keeping résumés under 5 MB).
- The file is uploaded to S3 and the text is extracted server-side.
- Recognised skills, licenses and degrees are auto-added to your terms list. You can always remove the ones you didn't want.
- The parsed text is stored so search engines can match your profile against it.
You can re-upload at any time — the new résumé replaces the old one. To remove your résumé entirely use Remove résumé on the same page (POST to /remove-candidate-resume).
2.4.2 Generic document upload
For non-résumé files (certificates, transcripts, LinkedIn export, work samples):
- Open
/document-upload. - Choose a document type (
resume,linkedin,certificate,other). - Optionally add a label like "OSHA 30 — issued 2024-08-12".
- Upload.
- The file appears under
/document-listand is shown on your profile (subject to your visibility settings). - To remove a document, open
/document-listand click Delete, or POST to/document-delete.
2.4.3 Parsing résumé text without uploading
The endpoint /resume-parser/ (template resume_parser.html) lets you paste résumé text into a form and see what terms the parser would extract — useful for previewing before you upload.
To programmatically retrieve the parsed result of an already-uploaded résumé, call /get-resume.
2.5 Profile photo and basic details
On /profile you can edit:
| Field | Notes |
|---|---|
| First / Last name | Used everywhere. |
| Headline | One line summary, ~80 chars. |
| Profile photo | Square image, JPG/PNG/GIF, ~512×512 recommended; the platform crops to circle. |
| About me | Free text, no length cap but ~3 paragraphs is the sweet spot. |
| Location | City + state + zip; powered by autocomplete. |
| Email visibility | Tick to show your email on the public profile. |
| Phone visibility | Tick to show your phone number on the public profile. |
| Willing to relocate | Tick if yes; influences which jobs match you. |
These are all saved on the same form and reflect immediately.
2.6 The four candidate videos
Ditto Up supports four distinct video slots on each candidate profile. They all use the same recorder (powered by getUserMedia) and all four route through the same DinoCloud / AWS Transcribe pipeline that performs speech-to-text and stores the file on S3. Full details are in Section 4 — Videos & VBQ; the candidate-side summary is:
| Slot | Length | Purpose | Endpoints |
|---|---|---|---|
| Intro video | 30–90 s | Personal introduction shown at the top of your profile. | upload /intro-video-upload/, view /intro-video-url/, delete /intro-video-delete/ |
| VBQ video (one per term) | 30–120 s | Term-specific spoken answer that the platform grades with AI on a 5-dimension rubric. | start /start-video-qa/, fetch /get-video-qa/, status /video-qa-status/, result /video-qa-result/, publish /video-qa-publish/, toggle publish /VBQ/toggle-publish/, refresh URL /VBQ/fresh-url/, edit /edit-video-qa/, delete /delete-video-qa/ |
| What I'm looking for | 30–90 s | What roles, industries or types of work you want. | upload /looking-for-video-upload/, delete /looking-for-video-delete/ |
| What I can help with | 30–90 s | What you can offer to others (mentoring, advice, collaboration). | upload /can-help-with-video-upload/, delete /can-help-with-video-delete/ |
Recording tips
- Use a quiet environment with a well-lit face.
- Speak — recordings with no audible voice fail the AWS Transcribe step and the system reports "Failed to transcribe". The recorder warns you in advance if your microphone level is near silent.
- 60 seconds is the sweet spot for VBQ; longer doesn't improve scoring.
- All videos are stored privately in S3 by default. They become publicly accessible only when you click Publish (for VBQ) or when your profile visibility allows it (for intro / looking-for / can-help-with).
2.7 Profile visibility (public / unlisted / private)
Your profile has three visibility states. Set this on /candidate-settings → Visibility.
| State | Who can see your profile | Where you appear |
|---|---|---|
| Public | Anyone, signed in or not. | Search results, /all_candidates directory, term marketplace pages. |
| Unlisted (default for new accounts) | Only people who have a direct link, or who you have messaged. | Not in search; not in the directory. |
| Private | Only people you follow back, or who you have approved. | Not in search; messages from strangers go through extra screening (see 6.13 AI screening). |
Even on Public, individual fields obey their own toggles (e.g. you can be Public but hide your email). Switching to Private also hides your published VBQ videos from non-connections.
You start on Unlisted until you (a) verify your email and (b) complete a minimum profile (name + at least one term + intro video or about-me). Run backfill_profile_visibility --apply is an admin command — it doesn't affect end users.
2.8 Searching and applying for jobs
Job search is fully covered in Section 5 — Search & discovery. The candidate-side highlights:
- Browse all jobs at
/all_jobs(paginated, sortable by date, salary, remote/hybrid/onsite). - Search at
/search?q=<keyword>&location=<city-or-zip>&radius=<miles>&work_type=<remote|hybrid|onsite>. - Click any result to open the job detail page at
/job/<job_title>/<id>. - Each detail page has a green Apply button that opens the application form.
2.9 The application form
Clicking Apply on a job posting opens /job/<job_title>/<id>/apply. The form has these sections (employers can show or hide each):
| Section | Fields |
|---|---|
| Compensation | Expected total pay (low/high), currency, whether you'll consider equity. |
| Availability | Start date, hours per week, full-time / part-time / contract. |
| Résumé | Either upload a fresh PDF/DOCX, or pick one of your already-uploaded documents from the dropdown, or paste a URL. |
| Cover message | Free text, 0–2000 characters. |
| Job-specific questions | The employer may have configured structured questions (yes/no, multiple choice, scale 1–5) and open-ended questions. Answer each one. |
| VBQ video answers | If the employer requires a video answer for a term, you'll see a Record button that opens the same VBQ recorder described in Section 4. Your existing public VBQ videos for the same term are auto-attached if available. |
Click Submit application. You are redirected to /job/<job_title>/<id>/marketplace_report which shows similar jobs, the salary band for that title and the in-demand skills — useful while you wait for a response.
The employer is notified immediately by email and in their dashboard. They can review your videos in-line and reply through the messaging system; their reply lands in your /messages/ inbox.
2.9.1 What employers see when you apply
- Your profile (subject to visibility settings).
- The fields above.
- Your published VBQ videos for any term that overlaps with the job's required skills.
- Your testimonials / feedback (only the ones marked Public).
They cannot see your unpublished VBQ videos, your private documents or your saved jobs.
2.10 Saved jobs and email alerts
To save a job for later or to subscribe to alerts for similar postings:
- On any job detail page, click the ⭐ Save button. Internally this hits
/subs. - The job appears under the Saved jobs section of your dashboard.
- The platform sends you an email whenever a new job is posted with overlapping skills/location.
To stop alerts for a saved job:
- Either click ⭐ Saved again on the job page, or
- Use the Unsubscribe link at the bottom of any alert email — it leads to
/unsubscribe/and removes the saved entry.
2.11 Job recommendations
If you have automated recommendations consent enabled (set during signup or in /candidate-settings), Ditto Up sends you a periodic email called JobRecommend with a hand-picked list of jobs that match your profile.
- The matching engine uses your terms, your "what I'm looking for" video transcript, your minimum pay, your location and your relocation preference.
- Each link is wrapped in tracking pixels (
/JobRecommend-email-open,/JobRecommend-email-click) so we can measure relevance — no personally-identifying info leaves the platform. - The unsubscribe link in every email leads to
/JobRecommend-email-responseand turns off recommendations.
You can also receive mail-style replies through /JobRecommend-email-response — replying "more like this" / "not interested" is parsed by the system and feeds back into the recommendation model.
2.12 Candidate settings (everything in /candidate-settings)
The single most important page on the candidate side is /candidate-settings. It exposes:
| Section | What you control |
|---|---|
| Profile basics | Same fields as /profile (name, photo, location, headline, about me). |
| Terms | Add / remove terms. |
| Documents | Upload / delete résumé and supporting files. |
| Videos | Open the recorder for the four video slots. |
| Visibility | Public / Unlisted / Private. |
| Contact privacy | Show email? Show phone? Show LinkedIn URL? |
| Minimum pay | Sets a floor for job recommendations. Endpoint: /minimum-pay-candidate. |
| What I'm looking for | Free-text version of the same idea — used by the recommender if no video is provided. |
| What I can help with | Same idea for mentorship/help offers. |
| Messaging privacy | Choose whether strangers can DM you, only people you follow, or nobody. See 6.13. |
| Email notifications | Toggle every category — new messages, job recommendations, post reactions, follows, mentions, candidate alerts. |
| Activity notifications | Per-user override (/toggle-activity-notifications/) — turn off notifications for a specific noisy user without unfollowing. |
| Featured profile (premium) | Boost your profile in the directory; toggle at /feature-candidate-settings. |
There are dedicated sub-endpoints for each section, so deep-links and AJAX updates work without reloading the whole page (e.g. /about-candidate for just the bio).
2.13 Receiving feedback / testimonials
Employers, mentors or peers who've worked with you can leave feedback at /candidate_feedback/<your_name>/<their_business>/<id>/. Feedback fields are:
- Star rating (1–5)
- Free-text testimonial
- Job title / role context
- Employment dates
- Public or Private flag
When the feedback is marked Public it appears on your profile under Testimonials. Private feedback is visible only to you. You can request the writer to flip a private testimonial to public via /publish-feedback.
2.14 Removing your candidate profile
If you want to delete your candidate side without closing your whole account:
- Go to
/candidate-settings→ bottom of page → Remove candidate profile. - Confirm.
- The system POSTs to
/remove-candidate-profileand:- Deletes your profile photo, intro video, looking-for video, can-help-with video and any unpublished VBQ videos from S3.
- Removes you from the
/all_candidatesdirectory. - Detaches you from every term you had claimed.
- Keeps your business profile and your messages.
To delete the whole account (candidate + business + messages + posts), see 9.6 Deleting your account.
Next: 3. Business / employer guide covers the other half of the platform.