HomeHelp › Candidate guide

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

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:

  1. Identity — name, headline, profile photo, location.
  2. About me — short biography (a paragraph or two).
  3. Terms — the skills, licenses, certifications, credentials and degrees you claim. Each one links to the marketplace term page and acts as a search keyword.
  4. Documents — résumé, LinkedIn profile copy, certificates and any supporting PDFs.
  5. Videos — intro video, VBQ skill demonstrations, "what I'm looking for" and "what I can help with" (see section 2.6).
  6. Pay & availability — minimum acceptable pay, willingness to relocate, working hours.
  7. Contact preferences — whether your phone/email is visible on the public profile, and how strangers can message you.
  8. 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:

  1. Step 1 — Basic info: confirm your name and add a headline (one line, e.g. "Industrial electrician — IBEW Local 11").
  2. 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).
  3. 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.
  4. Step 4 — Record an intro video (optional but strongly recommended): a 30–90 second self-introduction. See 4.2 Recording an intro video.
  5. 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:

  1. Open /candidate-settings (or use the Skills section on /profile).
  2. 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).
  3. Click a result to add it. It appears as a chip with the term's name and type.
  4. 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)

  1. Go to /candidate-settingsDocumentsUpload résumé, or use the dedicated /resume-upload endpoint.
  2. 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).
  3. The file is uploaded to S3 and the text is extracted server-side.
  4. Recognised skills, licenses and degrees are auto-added to your terms list. You can always remove the ones you didn't want.
  5. 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):

  1. Open /document-upload.
  2. Choose a document type (resume, linkedin, certificate, other).
  3. Optionally add a label like "OSHA 30 — issued 2024-08-12".
  4. Upload.
  5. The file appears under /document-list and is shown on your profile (subject to your visibility settings).
  6. To remove a document, open /document-list and 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-settingsVisibility.

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:

  1. On any job detail page, click the ⭐ Save button. Internally this hits /subs.
  2. The job appears under the Saved jobs section of your dashboard.
  3. The platform sends you an email whenever a new job is posted with overlapping skills/location.

To stop alerts for a saved job:

  1. Either click ⭐ Saved again on the job page, or
  2. 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-response and 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:

  1. Go to /candidate-settings → bottom of page → Remove candidate profile.
  2. Confirm.
  3. The system POSTs to /remove-candidate-profile and:
    • 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_candidates directory.
    • 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.

Help
How can we help?
Pick one — both reach our team.
FeedbackShare a suggestion or idea Raise a ticketReport a bug or problem