What is Lujo?
Automated candidate nurture that keeps placed candidates engaged for 36 months.
Lujo automates the post-placement follow-up process that most recruitment agencies struggle to maintain. After a successful placement, Lujo sends carefully timed, personalised emails to candidates over months or years, protecting relationships and generating repeat business.
12
touchpoints per candidate
How It Works
Consultant enrols a placed candidate
From the Lujo portal, CRM screen via Chrome extension, or automated API trigger. One click, 30 seconds.
Lujo creates the nurture journey
12 scheduled emails over 36 months. Templates are customisable and rendered at send time.
Emails go out automatically
Lujo checks unsubscribe status, sends via your chosen method (CRM, M365, Gmail, SMTP), logs results, handles bounces.
Relationships stay warm
Candidates receive professional follow-ups. Consultants get notified of replies. Relationships convert to repeat placements.
Key Features
- ✓CRM Integration - Works with Vincere, Bullhorn, and JobAdder. Enrol candidates without leaving your CRM.
- ✓Flexible Email Sending - Send through CRM, Microsoft 365, Gmail, or SMTP. Emails appear from the consultant's address.
- ✓Template Management - Customisable templates with merge fields. Edit wording anytime before send.
- ✓Compliance Built-in - HMAC-signed unsubscribe links, bounce handling, audit trail, GDPR-ready.
- ✓Multi-tenant - Separate client workspaces with isolated data, users, and branding.
ROI & Business Benefits
Quantifiable value from automated candidate nurture.
The Problem Lujo Solves
Most recruitment agencies lose touch with placed candidates after 90 days. By month 12, relationships have cooled. By month 24, the candidate has moved on and the agency has lost the repeat placement opportunity.
Measurable Outcomes
+40%
repeat placement rate
-85%
manual follow-up time
+25%
candidate response rate
100%
follow-up consistency
Cost-Benefit Analysis
| Factor | Without Lujo | With Lujo |
| Consultant time per candidate (36 months) | 4-6 hours manual | 30 seconds enrolment |
| Follow-up consistency | 20-30% complete | 100% complete |
| Admin staff for follow-ups | 0.5-1 FTE | Not required |
| Candidate relationship quality at 24 months | Cold | Warm, engaged |
Example: 50-Consultant Agency
Annual Impact
With 50 consultants placing 10 candidates each per year = 500 placed candidates annually. At an average placement fee of £8,000 and a 15% repeat rate improvement, Lujo generates approximately £60,000 in additional annual revenue while saving 2,000+ hours of consultant time.
Soft Benefits
- Brand consistency - Every candidate receives the same professional experience
- Consultant discipline - No more forgotten follow-ups or inconsistent communication
- Management visibility - Dashboard shows nurture status, upcoming sends, failures
- Compliance confidence - Audit trail, unsubscribe handling, data controls
Pricing Guide
Transparent pricing based on usage.
Pricing Model
Lujo is priced per active enrolment per month. An "active enrolment" is a candidate currently in a nurture flow with scheduled future emails.
What's Included
- ✓Unlimited users - No per-seat charges. Add consultants and admins freely.
- ✓All CRM integrations - Vincere, Bullhorn, JobAdder included.
- ✓All email methods - CRM, M365, Gmail, SMTP all available.
- ✓Chrome extension - Included for all users.
- ✓Support & updates - Ongoing support and feature updates.
Implementation
One-time setup fee covers:
- CRM integration configuration
- Email method setup and testing
- Template customisation (up to 12 templates)
- User training sessions
- Chrome extension deployment assistance
Get a Quote
Contact your account manager for pricing based on your expected enrolment volume and specific requirements.
Implementation Timeline
From kickoff to go-live in 2-4 weeks.
Week 1: Discovery & Setup
Kickoff call, CRM access, email method selection, stakeholder identification. IT provides credentials and approves OAuth applications.
Week 2: Configuration
CRM integration tested, email sending configured, templates customised, user accounts created. Extension deployed to pilot users.
Week 3: Testing & Training
End-to-end testing with test candidates. Training sessions for admins and consultants. Documentation reviewed.
Week 4: Go-Live
Soft launch with real candidates. Dashboard monitoring. Fine-tuning based on feedback. Full rollout.
Stakeholders Required
| Role | Involvement | Time Required |
| Commercial Sponsor | Kickoff, sign-off, success criteria | 2-3 hours total |
| Operations Lead | Workflow decisions, template approval, training | 4-6 hours total |
| IT Contact | CRM credentials, OAuth approval, extension deployment | 3-4 hours total |
| Compliance/Brand | Template wording approval, unsubscribe text | 1-2 hours total |
Success Criteria
Recommended Targets
Within 3 months: 80% of new placements enrolled. Bounce rate under 5%. Zero missed scheduled sends. At least one re-engagement attributed to Lujo.
Daily Workflow
How consultants use Lujo day-to-day.
Key Principle
Lujo works around your existing CRM workflow. You don't learn a new system. You add one step after placement: enrol the candidate.
The Enrolment Process
Make a placement in your CRM
Complete your normal placement process in Vincere, Bullhorn, or JobAdder.
Enrol the candidate
Click the Lujo extension button on the candidate page, or use the Lujo portal. Select the nurture flow.
Continue working
Lujo handles everything else. Scheduled emails go out automatically over the next 36 months.
What Happens After Enrolment
- Day 0: Congratulations email sent (if enabled)
- Month 3: First check-in - "How's the new role going?"
- Month 6, 9, 12: Periodic touchpoints - career pulse, relationship maintenance
- Month 18, 24, 30, 36: Long-term nurture - "Thinking about your next move?"
Checking Your Enrolments
The Lujo portal shows:
- Dashboard: Overview of active enrolments, upcoming sends, recent activity
- Enrolments: Full list with status (active, paused, completed, cancelled)
- Activity: Log of sent emails, opens, clicks, replies
Handling Exceptions
| Situation | What Lujo Does | What You Do |
| Email bounces | Marks as bounced, pauses future sends | Update email address if known |
| Candidate unsubscribes | Stops all future emails for that candidate | Nothing - it's handled automatically |
| Candidate leaves role early | You can pause or cancel the enrolment | Click Pause/Cancel in portal |
| Candidate replies | Logged in activity feed | Reply personally from your email |
Chrome Extension Guide
One-click candidate enrolment from your CRM.
Installation
Install from Chrome Web Store
Search "Lujo Enrol" or use the direct link provided by your administrator.
Configure Settings
Click the extension icon, then Settings. Enter your Lujo server URL and API key.
Test on a CRM Page
Navigate to a candidate page in your CRM. Click the extension icon. You should see the candidate's details pre-filled.
Configuration
Supported CRM Pages
| CRM | Supported Page Types | Data Extracted |
| Vincere | *.vincere.io candidate pages | Name, email, phone, current company |
| Bullhorn | *.bullhornstaffing.com, cls*.bullhorn.com | Name, email, phone |
| JobAdder | *.jobadder.com candidate pages | Name, email, phone |
Using the Extension
- Open a candidate page in your CRM
- Click the Lujo extension icon in Chrome toolbar
- Verify the candidate details are correct
- Select the nurture flow (usually "Default 36-month")
- Click "Enrol"
- Confirmation appears - you're done
If Details Don't Load
Make sure you're on a candidate detail page (not a list view). Try refreshing the page. If still not working, contact your administrator - the CRM page structure may have changed.
Email Templates
Writing effective nurture emails.
Tone Principle
Lujo emails should feel like they're from a real person checking in, not marketing automation. Short, friendly, conversational.
Available Merge Fields
| Field | Description | Example Output |
{{firstName}} | Candidate's first name | Sarah |
{{lastName}} | Candidate's last name | Chen |
{{email}} | Candidate's email | sarah@company.com |
{{company}} | Placed company name | Acme Corp |
{{consultantName}} | Consultant's full name | James Miller |
{{consultantEmail}} | Consultant's email | james@agency.com |
{{placementDate}} | Date of placement | 15 Jan 2024 |
{{monthsSincePlacement}} | Months since start | 6 |
Example Templates
3-Month Check-in
Hi {{firstName}},
It's been about 3 months since you started at {{company}} - hope all is going well!
Just wanted to check in and see how you're settling in. If there's anything I can help with, let me know.
Best,
{{consultantName}}
12-Month Anniversary
Hi {{firstName}},
Happy 1-year anniversary at {{company}}! Time flies.
I hope the role has been everything you hoped for. If you're ever thinking about your next move, or know someone who might be looking, I'd love to catch up.
Cheers,
{{consultantName}}
Best Practices
- Keep it short - 3-4 sentences maximum
- Be personal - Use first names, reference the company
- No sales language - "Exciting opportunity" and "touch base" are banned
- Clear call to action - What should they do? Reply? Nothing?
- Consistent signature - Match your normal email signature
Troubleshooting
Common issues and solutions.
Extension Issues
| Problem | Cause | Solution |
| Extension doesn't load candidate | Wrong page type | Navigate to candidate detail page, not list view |
| "Not connected" error | Invalid API key | Check API key in extension settings |
| Extension not visible | Not installed/enabled | Check Chrome extensions page |
| Wrong data extracted | CRM page changed | Report to administrator |
Email Issues
| Problem | Cause | Solution |
| Email bounced | Invalid email address | Update candidate email in CRM |
| Email went to spam | Sender reputation | Check SPF/DKIM with IT |
| Email not sent | Candidate unsubscribed | Check enrolment status in portal |
| Wrong template content | Template was edited | Review template in admin panel |
Getting Help
Support Contacts
For technical issues, contact your Lujo administrator. For CRM access issues, contact your IT team. For template or process questions, contact your operations lead.
Admin Portal Guide
Complete guide to the Lujo admin interface.
Portal Overview
The Lujo portal at https://lujo.blunek.services is the central management interface. Administrators have full access; consultants see a limited view focused on their own enrolments.
Main Sections
| Section | Purpose | Access |
| Dashboard | Overview stats, upcoming sends, recent activity | All users |
| Enrolments | List of all candidate enrolments with status | All users (own only for consultants) |
| Flows | Email sequence templates and timing | Admins only |
| Bounces | Failed deliveries requiring attention | Admins only |
| Activity | Audit log of all system actions | Admins only |
| Settings | Users, clients, integrations | Admins only |
Dashboard Metrics
- Active Enrolments: Candidates currently in nurture flows
- Upcoming (7 days): Emails scheduled for the next week
- Sent (30 days): Emails sent in the last month
- Bounce Rate: Percentage of failed deliveries
- Unsubscribe Rate: Percentage who opted out
Quick Actions
- New Enrolment: Manually enrol a candidate without the extension
- Pause Enrolment: Temporarily stop emails for a candidate
- Cancel Enrolment: Permanently stop and remove from nurture
- Export Data: Download enrolment data as CSV
User Management
Creating and managing portal users.
User Roles
| Role | Permissions | Typical Users |
| Admin | Full access: users, templates, settings, all enrolments | Operations managers, system admins |
| Consultant | View/create own enrolments, view own activity | Recruiters, account managers |
Creating a User
Navigate to Settings > Users
Click "Add User" button in the top right.
Enter User Details
Name, email, role. Email will receive login credentials.
Set Initial Password
Either set manually or send password reset email.
Assign to Client (if multi-tenant)
Select which client workspace they belong to.
Deactivating Users
Users can be deactivated rather than deleted to preserve audit history. Deactivated users cannot log in but their past activity remains visible.
API Keys
Each user can generate an API key for extension use. If a user leaves, remember to regenerate keys or deactivate their account.
Flows & Templates
Managing email sequences and content.
What is a Flow?
A flow is a sequence of emails sent over time. The default flow sends 12 emails over 36 months. You can create custom flows for different candidate types or industries.
Default Flow Timing
| Step | Timing | Purpose |
| 1 | Day 0 | Welcome / congratulations |
| 2 | Month 3 | Settling-in check |
| 3 | Month 6 | Career pulse |
| 4 | Month 9 | Relationship touch |
| 5 | Month 12 | Anniversary |
| 6-12 | Every 6 months | Long-term nurture |
Editing Templates
- Go to Flows section
- Select the flow to edit
- Click on a step to edit its template
- Modify subject and body
- Save changes
Templates Render at Send Time
If you edit a template, future sends will use the new version. Already-sent emails are not affected.
Creating a Custom Flow
Click "New Flow" and define:
- Flow name and description
- Number of steps
- Timing for each step (days after enrolment)
- Template for each step
Monitoring & Reports
Tracking performance and handling issues.
Key Metrics to Watch
Healthy Indicators
Bounce rate under 5%. Unsubscribe rate under 2%. All scheduled sends completing. No stuck jobs.
Warning Signs
Rising bounce rate. Sends not completing. Error spikes in activity log. Unusual unsubscribe patterns.
Bounce Management
The Bounces section shows all failed deliveries. For each bounce:
- Review the reason (invalid address, mailbox full, blocked)
- Update the email address if you have a correct one
- Mark as resolved or permanently failed
Activity Log
The Activity section shows all system events:
- Email sends (successful and failed)
- Enrolment changes (created, paused, cancelled)
- User logins and actions
- Template changes
- System errors
Exporting Data
Export enrolment data for reporting:
- Go to Enrolments
- Apply filters (date range, status, consultant)
- Click Export CSV
- Open in Excel/Sheets for analysis
Security Overview
Technical security controls and architecture.
Authentication & Access
- ✓Session-based authentication - Secure tokens with configurable expiry
- ✓Password hashing - bcrypt with appropriate cost factor
- ✓Role-based access - Admin and consultant roles with distinct permissions
- ✓API key authentication - For extension and API access
- ✓Rate limiting - Applied to authentication and sensitive endpoints
Data Protection
- ✓Encryption at rest - CRM credentials and email secrets encrypted (AES-256)
- ✓TLS in transit - All connections over HTTPS (TLS 1.2+)
- ✓Token hashing - Session tokens stored as hashes, not plaintext
- ✓Audit logging - All significant actions logged with timestamps
Unsubscribe Security
- Unsubscribe links are HMAC-signed to prevent tampering
- Optional expiry on unsubscribe links
- One-click unsubscribe support for email clients
- Unsubscribe events logged with full audit trail
Infrastructure
| Component | Detail |
| Hosting | Hetzner Cloud (Germany/EU) |
| Database | SQLite with WAL mode (or PostgreSQL for larger deployments) |
| Runtime | Node.js with Fastify |
| Reverse Proxy | Caddy with automatic TLS |
CRM Integrations
Technical details for Vincere, Bullhorn, and JobAdder.
Vincere
| Item | Value |
| Auth Method | OAuth 2.0 |
| Authorize URL | /auth/vincere/authorize?clientId=... |
| Callback URL | https://[your-domain]/auth/vincere/callback |
| Required Permissions | Integration Manager or Administrator |
| Token Storage | Encrypted refresh tokens, auto-refresh on expiry |
Setup Steps
Create API Credentials
Vincere Settings > Developer Hub > API Credentials. Note Client ID and API Key.
Add Redirect URI
Add your Lujo callback URL to the authorized redirect URIs.
Authorize in Lujo
Admin triggers OAuth flow from Lujo settings. Approve in Vincere.
Bullhorn
| Item | Value |
| Auth Method | OAuth 2.0 |
| Required Access | REST API access enabled for user |
| Callback URL | https://[your-domain]/auth/bullhorn/callback |
JobAdder
| Item | Value |
| Auth Method | OAuth 2.0 |
| Required Access | API access enabled |
| Callback URL | https://[your-domain]/auth/jobadder/callback |
Production URLs
Before go-live, ensure your production domain is added to all OAuth redirect URI configurations. Development URLs will not work in production.
Email Configuration
Setting up email sending methods.
Available Methods
| Method | Pros | Cons | Best For |
| Vincere Email | Appears in CRM timeline, no extra auth | Requires Vincere integration | Vincere users who want CRM logging |
| Microsoft 365 | Best deliverability, consultant's address | Each user authorizes separately | M365 environments |
| Gmail | Consultant's address, good deliverability | Each user authorizes separately | Google Workspace |
| SMTP | Works with any mail server | May need SPF/DKIM setup | Custom mail infrastructure |
Microsoft 365 Setup
Register Azure AD Application
Create app registration with Mail.Send permission. Add redirect URI.
Configure in Lujo
Enter Client ID and Client Secret in Lujo settings.
Users Authorize
Each consultant clicks "Connect M365" and approves access to their mailbox.
SMTP Configuration
Email Deliverability
DNS Records
For best deliverability, ensure your sending domain has correct SPF, DKIM, and DMARC records. Your IT team should verify these are configured.
Data & Privacy
GDPR compliance and data handling.
Data Processed
| Category | Data Fields | Retention |
| Candidate PII | Name, email, phone, placed company | Duration of enrolment + 12 months |
| Placement Context | Placement date, consultant, flow | Duration of enrolment + 12 months |
| Email Activity | Send status, opens, clicks, bounces | 36 months |
| Audit Logs | User actions, timestamps, IP addresses | 24 months |
GDPR Compliance
- ✓Lawful Basis - Legitimate interest (maintaining business relationships)
- ✓Right to Object - One-click unsubscribe in every email
- ✓Right to Erasure - Candidate data can be deleted on request
- ✓Data Portability - Export available in standard formats
- ✓Data Minimization - Only necessary fields collected
Data Location
EU Hosting
Default deployment is on Hetzner Cloud in Germany. All data remains within the EU. For specific data residency requirements, contact your account manager.
Data Deletion
To delete a candidate's data:
- Cancel their enrolment in the portal
- Use the "Delete Candidate Data" option in Settings
- Confirm deletion - this is irreversible
Deletion removes: candidate PII, email history, activity logs. Aggregate statistics (send counts, bounce rates) are retained but de-identified.
API Reference
Programmatic access to Lujo.
Authentication
API requests require an API key in the header:
X-API-Key: your-api-key-here
Or use Bearer token authentication for portal session access:
Authorization: Bearer your-session-token
Base URL
https://lujo.blunek.services/api
Key Endpoints
| Endpoint | Method | Description |
/api/enrolments | GET | List enrolments (paginated) |
/api/enrolments | POST | Create new enrolment |
/api/enrolments/:id | GET | Get enrolment details |
/api/enrolments/:id | PUT | Update enrolment (pause, cancel) |
/api/flows | GET | List available flows |
/api/activity | GET | Get activity log |
Create Enrolment
POST /api/enrolments
Content-Type: application/json
X-API-Key: your-api-key
{
"candidateEmail": "sarah@example.com",
"candidateFirstName": "Sarah",
"candidateLastName": "Chen",
"candidatePhone": "+44 7700 900123",
"placedCompany": "Acme Corp",
"flowId": "default-36-month",
"consultantId": "consultant-uuid"
}
Response Format
{
"success": true,
"data": {
"id": "enrolment-uuid",
"status": "active",
"createdAt": "2024-06-09T12:00:00Z"
}
}
Error Handling
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "candidateEmail is required"
}
}